# Untron > Stablecoin rails for builders: a stable Bridge API, a raw V3 API, and protocol reference docs. ## How V3 Works This page explains the core ideas behind V3 at a high level: the nouns you’ll see in the API, how they relate, and how to reason about system state. ### Mental model Think in terms of: * **intent-like actions** (what the user wants) * **deterministic settlement** (what the system guarantees) * **observability** (what you can prove from data) ### Core entities * **Lease:** a long-lived “session” that groups activity and state over time. * **Claim:** a unit of work/value that is created, tracked, and eventually settled (or expires). * **Controller / executor:** the system components responsible for progressing state and performing execution. * **Deposits / fills:** events and balances that connect external payment rails to on-chain or protocol settlement. The exact shapes of these objects are defined by the API schema; the goal of this section is to help you understand how they fit together. ### Lifecycle (conceptual) At a high level, flows look like: * **Create:** a lease (and/or claim) is created. * **Attribute:** deposits and other inputs are linked to protocol state. * **Execute:** controllers/executors progress state and perform the required actions. * **Settle:** outcomes are finalized and made observable via the API. * **Expire / recover:** timeouts and recovery paths handle incomplete flows. ### Observability For integrations and analytics, treat the API as the source of truth for the protocol’s current view of state, and prefer querying views/endpoints designed for aggregation (rather than reconstructing state from raw events). ### Next * Read the V3 API overview: [V3 API](/v3-api) * Start with the curated endpoint guides: [V3 API Endpoints](/v3-api/endpoints) ## V3 Reference This section is for people who want to understand **how Untron V3 works**, not just how to call an endpoint. What you’ll find here: * protocol architecture & data flow * intents / execution model * invariants, failure modes, and safety properties * token rails (USDT variants, CCTP, etc.) and how they’re normalized ### Next * Start here: [How V3 Works](/v3-reference/how-it-works) ## V3 API The **V3 API** is the direct interface to the Untron V3 protocol: more powerful, more granular, and **intentionally not as stable** as the Bridge API. Use it when you want to build on V3 primitives, run analytics, or integrate deeply with how the protocol actually works — and you’re comfortable tracking schema changes over time. :::warning[Expect change] If you want a stable surface for stablecoin swapping/bridging, use **Bridge API**. V3 API is for builders who want the raw protocol surface area. ::: ### What it is (and isn’t) * **Is:** the protocol’s evolving API surface (tables, views, endpoints) * **Isn’t:** a compatibility layer — breaking changes can happen as V3 evolves ### Endpoint docs We document a small subset of endpoints as “docs-first” pages (with examples and gotchas), and use Scalar’s API Client for interactive requests. * Start here: [V3 API Endpoints](/v3-api/endpoints) ### Next * Head to the API reference: [V3 API Reference](/v3-api/reference) ## V3 API Reference :::info[Note] We intentionally keep the docs pages “native” and use Scalar’s API Client for interactive “Try it”. If you want to inspect the raw spec directly, use the link below. ::: * Raw spec: `https://api.untron.finance/v3/openapi.json` import { EndpointLayout } from '../../../components/EndpointLayout' import { EndpointAside } from '../../../components/EndpointAside' } > ### What it does Creates a lease and returns deterministic receiver addresses to fund, plus a `userop_hash` for tracking. ### Request :::code-group ```bash [cURL] curl -sS -X POST 'https://api.untron.finance/v3/realtor' \ -H 'content-type: application/json' \ -d '{ "lessee": "T…", "beneficiary": "T…", "target_chain_id": "eip155:42161", "target_token": "usdc", "duration_seconds": 86400, "receiver_salt": "0x…" }' ``` ```json [Body] { "lessee": "T…", "beneficiary": "T…", "target_chain_id": "eip155:42161", "target_token": "usdc", "duration_seconds": 86400, "receiver_salt": "0x…" } ``` ::: ### Response (200) ```json { "receiver_salt": "0x…", "receiver_address_tron": "T…", "receiver_address_evm": "0x…", "nukeable_after": "2026-01-29T00:00:00.000Z", "userop_hash": "0x…" } ``` :::info[Example] Example response. Values shown are illustrative; field names match the API schema. ::: import { EndpointLayout } from '../../../components/EndpointLayout' import { EndpointAside } from '../../../components/EndpointAside' } > ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/health' ``` ::: ### Response (200) ```json [{ "status": "ok" }] ``` :::info[Note] Response shape may change over time. This page is a convenience, not a contract. ::: import { EndpointLayout } from '../../../components/EndpointLayout' import { EndpointAside } from '../../../components/EndpointAside' } > ### What it does Returns hub-indexed lease rows (current registry + some metadata). ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/hub_leases?order=lease_id.desc&limit=10' ``` ::: ### Response (200) ```json [ { "lease_id": "123", "lease_number": "1", "lessee": "T…", "realtor": "T…", "receiver_salt": "0x…", "start_time": "2026-01-29T00:00:00.000Z", "nukeable_after": "2026-01-29T00:00:00.000Z", "lease_fee_ppm": "1500", "flat_fee": "0", "valid_from_seq": "0", "valid_to_seq": "0" } ] ``` :::info[Example] Example response. Values shown are illustrative; field names match the API schema. ::: ## V3 API Endpoints These pages are intentionally “docs-first”: we explain what to query, how filtering works, and what to expect back. Use the **Try it** panel on each endpoint to open Scalar’s API Client modal. :::info[Spec source] `https://api.untron.finance/v3/openapi.json` ::: ### Query style (high level) Many V3 endpoints behave like database views: * most endpoints are `GET` and return arrays * you can filter via query params (and some endpoints support `select`, `order`, `limit`, `offset`) When in doubt, open the endpoint in the client and let it generate a working request. ### Realtor endpoints * Overview: [Realtor module](/v3-api/endpoints/realtor-module) * [GET /realtor](/v3-api/endpoints/realtor) * [POST /realtor](/v3-api/endpoints/create-lease) * [POST /payout\_config](/v3-api/endpoints/payout-config) * [`GET /leases/{lease_id}`](/v3-api/endpoints/lease-by-id) ### Indexer endpoints * Overview: [Indexer endpoints](/v3-api/endpoints/indexer) * Auto-generated coverage for every endpoint: [Generated endpoints](/v3-api/endpoints/generated) ## Indexer endpoints Most V3 endpoints are **PostgREST-style views** over the indexer database. They’re powerful for analytics and dashboards, but they’re not as “product-stable” as the Bridge API. ### What to expect * Most endpoints are `GET` and return **arrays**. * Filtering is done via query parameters. * Many endpoints support common PostgREST-style params like `select`, `order`, `limit`, `offset` (and headers like `Range`). ### Where to start * Aggregated lease state: [GET /lease\_view](/v3-api/endpoints/lease-view) * Raw hub registry: [GET /hub\_leases](/v3-api/endpoints/hub-leases) * USDT deposit timeline: [GET /usdt\_deposit\_txs](/v3-api/endpoints/usdt-deposit-txs) ### Full coverage We also ship auto-generated pages for every endpoint, linked in the sidebar under **Indexer endpoints → All endpoints**: * [Generated endpoints](/v3-api/endpoints/generated) import { EndpointLayout } from '../../../components/EndpointLayout' import { EndpointAside } from '../../../components/EndpointAside' } > ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/leases/123' ``` ::: ### Response (200) ```json { "lease_id": "123", "lease_nonce": "0", "lessee": "T…", "realtor": "T…", "receiver_salt": "0x…", "receiver_address_tron": "T…", "receiver_address_evm": "0x…", "start_time": "2026-01-29T00:00:00.000Z", "nukeable_after": "2026-01-29T00:00:00.000Z", "lease_fee_ppm": "1500", "flat_fee": "0", "claims_total": "0", "claims_filled": "0", "claims": "0", "pending_usdt_deposits_total": "0", "pending_usdt_deposits_amount": "0", "pending_usdt_deposits": "0" } ``` :::info[Example] Example response. Values shown are illustrative; field names match the API schema. ::: import { EndpointLayout } from '../../../components/EndpointLayout' import { EndpointAside } from '../../../components/EndpointAside' } > ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/lease_view?order=lease_id.desc&limit=25' ``` ::: ### Response (200) ```json [ { "lease_id": "123", "lease_number": "1", "lease_nonce": "0", "lessee": "T…", "realtor": "T…", "receiver_address_tron": "T…", "receiver_address_evm": "0x…", "receiver_salt": "0x…", "start_time": "2026-01-29T00:00:00.000Z", "nukeable_after": "2026-01-29T00:00:00.000Z", "lease_fee_ppm": "1500", "flat_fee": "0", "claims_total": "0", "claims_filled": "0", "claims": "0", "pending_usdt_deposits_total": "0", "pending_usdt_deposits_amount": "0", "pending_usdt_deposits": "0" } ] ``` :::info[Example] Example response. Values shown are illustrative; field names match the API schema. ::: import { EndpointLayout } from '../../../components/EndpointLayout' import { EndpointAside } from '../../../components/EndpointAside' } > ### What it does Submits a signed payout config update and returns a `userop_hash` you can track. ### Request :::code-group ```bash [cURL] curl -sS -X POST 'https://api.untron.finance/v3/payout_config' \ -H 'content-type: application/json' \ -d '{ "lease_id": "123", "beneficiary": "T…", "target_chain_id": "eip155:42161", "target_token": "usdc", "deadline": "2026-01-29T00:00:00.000Z", "signature": "0x…" }' ``` ```json [Body] { "lease_id": "123", "beneficiary": "T…", "target_chain_id": "eip155:42161", "target_token": "usdc", "deadline": "2026-01-29T00:00:00.000Z", "signature": "0x…" } ``` ::: ### Response (200) ```json { "userop_hash": "0x…" } ``` :::info[Example] Example response. Values shown are illustrative; field names match the API schema. ::: ## Realtor endpoints The **Realtor module** is the “active” part of the V3 API — the endpoints you call to **manage leases**. Unlike most V3 endpoints (which are PostgREST views over the indexer DB), these endpoints behave more like an application API: * They create/update protocol state (via relayed / gasless operations). * They return tracking identifiers (e.g. `userop_hash`) and computed addresses. * They are the endpoints most likely to have product-level semantics (and therefore the ones we prioritize in docs). ### Core endpoints * `GET /realtor` – fetch realtor terms, limits, and supported pairs. * `POST /realtor` – create a lease (returns receiver addresses + `userop_hash`). * `POST /payout_config` – update payout configuration (gasless relay; returns `userop_hash`). * `GET /leases/{lease_id}` – fetch the aggregated lease view for a single lease id. ### Typical flow 1. Call `GET /realtor` to confirm you’re allowed and to read terms. 2. Call `POST /realtor` to create a lease and get receiver addresses. 3. Watch the lease/indexer state via `GET /leases/{lease_id}` (and/or indexer views). 4. Update payout config via `POST /payout_config` when needed. import { EndpointLayout } from '../../../components/EndpointLayout' import { EndpointAside } from '../../../components/EndpointAside' } > ### What it does Returns the effective realtor configuration for the caller (and whether they’re allowed). ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/realtor' ``` ::: ### Response (200) ```json { "allowed": true, "realtor_address": "T…", "user": "…", "supported_pairs": [], "default_fee_ppm": 1500, "default_flat_fee": "0", "default_duration_seconds": 86400, "effective_duration_seconds": 86400, "lease_rate_window_seconds": 60, "lease_rate_max_leases": 10, "lease_rate_remaining": 10, "min_fee_ppm": 0, "min_flat_fee": "0", "max_duration_seconds": 2592000, "arbitrary_lessee_flat_fee": false, "untron_v3": "…" } ``` :::info[Example] Example response. Values shown are illustrative; field names match the API schema. ::: import { EndpointLayout } from '../../../components/EndpointLayout' import { EndpointAside } from '../../../components/EndpointAside' } > ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/usdt_deposit_txs?order=block_number.desc&limit=50' ``` ::: ### Response (200) ```json [ { "chain_id": "tron:0x2b6653dc", "block_number": "0", "block_timestamp": "2026-01-29T00:00:00.000Z", "log_index": "0", "sender": "T…", "recipient": "T…", "token": "T…", "amount": "0", "receiver_salt": "0x…", "recommended_action": "pending", "deposit_processed": false } ] ``` :::info[Example] Example response. Values shown are illustrative; field names match the API schema. ::: import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/active_leases_daily' ``` ::: ### Response ```json [ { "day": "…", "leases_active": 0, "leases_ended": 0, "leases_started": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/claim_fill_latency_daily' ``` ::: ### Response ```json [ { "avg_seconds": "…", "day": "…", "filled_claims_total": 0, "p50_seconds": 0, "p90_seconds": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/claim_usdt_deposit_attribution' ``` ::: ### Response ```json [ { "claim_id": "…", "lease_id": "…", "usdt_deposit_attribution": {} } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/claims_created_daily' ``` ::: ### Response ```json [ { "amount_usdt_total": "…", "claims_created_pre_entitle": 0, "claims_created_receiver_pull": 0, "claims_created_subjective_pre_entitle": 0, "claims_created_total": 0, "day": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/claims_filled_daily' ``` ::: ### Response ```json [ { "amount_usdt_total": "…", "claims_filled_total": 0, "day": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/controller_executor' ``` ::: ### Response ```json [ { "executor": "…", "valid_from_seq": 0, "valid_to_seq": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/controller_lp_exchange_rates' ``` ::: ### Response ```json [ { "exchange_rate": "…", "token": "…", "valid_from_seq": 0, "valid_to_seq": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/controller_lp' ``` ::: ### Response ```json [ { "lp": "…", "valid_from_seq": 0, "valid_to_seq": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/controller_lp_tokens_withdrawn' ``` ::: ### Response ```json [ { "amount": "…", "event_seq": 0, "token": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/controller_owner' ``` ::: ### Response ```json [ { "owner": "…", "valid_from_seq": 0, "valid_to_seq": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/controller_payloads' ``` ::: ### Response ```json [ { "payload": "…", "rebalancer": "…", "valid_from_seq": 0, "valid_to_seq": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/controller_pulled_from_receiver' ``` ::: ### Response ```json [ { "event_seq": 0, "exchange_rate": "…", "receiver_salt": "…", "token": "…", "token_amount": "…", "usdt_amount": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/controller_receivers' ``` ::: ### Response ```json [ { "receiver": "…", "receiver_salt": "…", "valid_from_seq": 0, "valid_to_seq": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/controller_tip_proofs' ``` ::: ### Response ```json [ { "block_hash": "…", "block_number": 0, "block_time": "…", "block_timestamp": 0, "caller": "…", "log_index": 0, "proved_tip": "…", "tx_hash": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/controller_usdt' ``` ::: ### Response ```json [ { "usdt": "…", "valid_from_seq": 0, "valid_to_seq": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/controller_usdt_rebalanced' ``` ::: ### Response ```json [ { "event_seq": 0, "in_amount": "…", "out_amount": "…", "rebalancer": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/controller_usdt_transfers' ``` ::: ### Response ```json [ { "amount": "…", "event_seq": 0, "recipient": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/event_appended' ``` ::: ### Response ```json [ { "abi_encoded_event_data": "…", "args": {}, "block_hash": "…", "block_number": 0, "block_time": "…", "block_timestamp": 0, "event_seq": 0, "event_signature": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/health' ``` ::: ### Response ```json [ { "status": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/hub_bridgers' ``` ::: ### Response ```json [ { "bridger": "…", "target_chain_id": 0, "target_token": "…", "valid_from_seq": 0, "valid_to_seq": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/hub_chains' ``` ::: ### Response ```json [ { "deprecated": false, "target_chain_id": 0, "valid_from_seq": 0, "valid_to_seq": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/hub_claim_first_versions' ``` ::: ### Response ```json [ { "amount_usdt": "…", "beneficiary": "…", "claim_id": "…", "created_from_seq": 0, "lease_id": "…", "origin": 0, "origin_timestamp": 0, "target_chain_id": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/hub_claims' ``` ::: ### Response ```json [ { "amount_usdt": "…", "beneficiary": "…", "claim_id": "…", "lease_id": "…", "origin": 0, "origin_actor": "…", "origin_id": "…", "origin_raw_amount": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/hub_controller_processed' ``` ::: ### Response ```json [ { "abi_encoded_event_data": "…", "block_number": 0, "block_timestamp": 0, "event_index": "…", "event_seq": 0, "event_signature": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/hub_controller_state' ``` ::: ### Response ```json [ { "last_controller_event_seq": "…", "last_controller_event_tip": "…", "next_controller_event_index": "…", "valid_from_seq": 0, "valid_to_seq": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/hub_controller_tip_updates' ``` ::: ### Response ```json [ { "abi_encoded_event_data": "…", "block_number": 0, "block_timestamp": 0, "event_seq": 0, "event_signature": "…", "previous_tip": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/hub_lease_nonces' ``` ::: ### Response ```json [ { "lease_id": "…", "nonce": "…", "valid_from_seq": 0, "valid_to_seq": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/hub_leases' ``` ::: ### Response ```json [ { "flat_fee": "…", "lease_fee_ppm": 0, "lease_id": "…", "lease_number": "…", "lessee": "…", "nukeable_after": 0, "realtor": "…", "receiver_salt": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/hub_lp_allowlist' ``` ::: ### Response ```json [ { "allowed": false, "lp": "…", "valid_from_seq": 0, "valid_to_seq": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/hub_lp_balances' ``` ::: ### Response ```json [ { "balance": "…", "lp": "…", "valid_from_seq": 0, "valid_to_seq": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/hub_lp_vault_events' ``` ::: ### Response ```json [ { "amount": "…", "event_seq": 0, "kind": "…", "lp": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/hub_ownership' ``` ::: ### Response ```json [ { "new_owner": "…", "old_owner": "…", "valid_from_seq": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/hub_payout_configs' ``` ::: ### Response ```json [ { "beneficiary": "…", "lease_id": "…", "target_chain_id": 0, "target_token": "…", "valid_from_seq": 0, "valid_to_seq": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/hub_protocol_config' ``` ::: ### Response ```json [ { "floor_flat_fee": "…", "floor_ppm": 0, "lessee_rate_max_updates": "…", "lessee_rate_window_seconds": "…", "max_lease_duration_seconds": 0, "tron_reader": "…", "tron_usdt": "…", "usdt": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/hub_protocol_pnl' ``` ::: ### Response ```json [ { "delta": "…", "pnl": "…", "reason": 0, "valid_from_seq": 0, "valid_to_seq": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/hub_realtors' ``` ::: ### Response ```json [ { "allowed": false, "lease_rate_max_leases": "…", "lease_rate_window_seconds": "…", "max_lease_duration_seconds": 0, "min_fee_ppm": 0, "min_flat_fee": "…", "realtor": "…", "valid_from_seq": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/hub_swap_rates' ``` ::: ### Response ```json [ { "rate_ppm": 0, "target_token": "…", "valid_from_seq": 0, "valid_to_seq": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/hub_tokens_rescued' ``` ::: ### Response ```json [ { "amount": "…", "event_seq": 0, "token": "…" } ] ``` ## Generated endpoints This section contains auto-generated pages for **every** V3 endpoint, generated from the published OpenAPI schema. They’re useful for discovery and quick schema lookups. For the key flows (Realtor module + leases), start with the curated pages in [V3 API Endpoints](/v3-api/endpoints). :::info[Spec source] `https://api.untron.finance/v3/openapi.json` ::: ### Realtor module (prioritized) * [GET /realtor](/v3-api/endpoints/realtor) * [POST /realtor](/v3-api/endpoints/create-lease) * [POST /payout\_config](/v3-api/endpoints/payout-config) * [`GET /leases/{lease_id}`](/v3-api/endpoints/lease-by-id) ### All endpoints Use the sidebar to browse the full list of generated endpoints. import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/lease_kpis' ``` ::: ### Response ```json [ { "claims_amount_total": "…", "claims_filled": 0, "claims_latest_origin_timestamp": 0, "claims_total": 0, "deposits_amount_total": "…", "deposits_latest_block_timestamp": 0, "deposits_total": 0, "lease_id": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/lease_view' ``` ::: ### Response ```json [ { "claims": {}, "claims_filled": 0, "claims_total": 0, "flat_fee": "…", "lease_fee_ppm": 0, "lease_id": "…", "lease_nonce": "…", "lease_number": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/leases_ending_daily' ``` ::: ### Response ```json [ { "day": "…", "leases_ending_total": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] Realtor module. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/leases/123' ``` ::: ### Response ```json { "claims": [], "claims_filled": 0, "claims_total": 0, "flat_fee": "0", "is_owned_by_this_realtor": true, "lease_fee_ppm": 10000, "lease_id": "1", "lease_nonce": "0" } ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/leases_started_daily' ``` ::: ### Response ```json [ { "day": "…", "leases_started_total": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] Realtor module. ::: ### Request :::code-group ```bash [cURL] curl -sS -X POST 'https://api.untron.finance/v3/payout_config' \\ -H 'content-type: application/json' \\ -d '{ "beneficiary": "0x0000000000000000000000000000000000000003", "deadline": 1700000000, "lease_id": 1, "signature": "0x", "target_chain_id": 1, "target_token": "0x0000000000000000000000000000000000000002" }' ``` ```json [Body] { "beneficiary": "0x0000000000000000000000000000000000000003", "deadline": 1700000000, "lease_id": 1, "signature": "0x", "target_chain_id": 1, "target_token": "0x0000000000000000000000000000000000000002" } ``` ::: ### Response ```json { "userop_hash": "0x0000000000000000000000000000000000000000000000000000000000000000" } ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/protocol_pnl_timeseries' ``` ::: ### Response ```json [ { "block_time": "…", "block_timestamp": 0, "delta": "…", "pnl": "…", "reason": 0, "valid_from_seq": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/realtor_deposits_daily' ``` ::: ### Response ```json [ { "amount_total": "…", "day": "…", "deposits_total": 0, "leases_touched": 0, "realtor": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/realtor_effective_config' ``` ::: ### Response ```json [ { "allowed": false, "lease_rate_max_leases": "…", "lease_rate_remaining": "…", "lease_rate_window_seconds": "…", "max_duration_seconds": 0, "min_fee_ppm": 0, "min_flat_fee": "…", "realtor": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] Realtor module. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/realtor' ``` ::: ### Response ```json { "allowed": true, "arbitrary_lessee_flat_fee": 0, "default_duration_seconds": 2592000, "default_fee_ppm": 10000, "default_flat_fee": 0, "effective_duration_seconds": 2592000, "lease_rate_max_leases": 0, "lease_rate_remaining": 0 } ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] Realtor module. ::: ### Request :::code-group ```bash [cURL] curl -sS -X POST 'https://api.untron.finance/v3/realtor' \\ -H 'content-type: application/json' \\ -d '{ "beneficiary": "0x0000000000000000000000000000000000000003", "duration_seconds": 2592000, "lessee": "0x0000000000000000000000000000000000000001", "receiver_salt": "0x0000000000000000000000000000000000000000000000000000000000000000", "target_chain_id": 1, "target_token": "0x0000000000000000000000000000000000000002" }' ``` ```json [Body] { "beneficiary": "0x0000000000000000000000000000000000000003", "duration_seconds": 2592000, "lessee": "0x0000000000000000000000000000000000000001", "receiver_salt": "0x0000000000000000000000000000000000000000000000000000000000000000", "target_chain_id": 1, "target_token": "0x0000000000000000000000000000000000000002" } ``` ::: ### Response ```json { "nukeable_after": 1700000000, "receiver_address_evm": "0x0000000000000000000000000000000000000000", "receiver_address_tron": "TX9xZ4mV2h4h9qv7q8qXbW1d7m8m1y1y1y", "receiver_salt": "0x0000000000000000000000000000000000000000000000000000000000000000", "userop_hash": "0x0000000000000000000000000000000000000000000000000000000000000000" } ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/receiver_salt_candidates' ``` ::: ### Response ```json [ { "balance_amount": "…", "has_balance": false, "is_free": false, "nukeable_after": 0, "receiver": "…", "receiver_evm": "…", "receiver_salt": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/receiver_usdt_balances' ``` ::: ### Response ```json [ { "balance_amount": "…", "incoming_amount": "…", "pulled_amount": "…", "receiver": "…", "receiver_evm": "…", "receiver_salt": "…", "token": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/receiver_usdt_indexer_status' ``` ::: ### Response ```json [ { "backfill_pending_receivers": 0, "min_backfill_next_block": 0, "receiver_count": 0, "stream": "…", "tail_next_block": 0, "tail_updated_at": "…", "watchlist_updated_at": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/receiver_usdt_transfer_actionability' ``` ::: ### Response ```json [ { "amount": "…", "block_hash": "…", "block_number": 0, "block_time": "…", "block_timestamp": 0, "chain_id": 0, "claim_amount_usdt": "…", "claim_id": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/relayer_hub_state' ``` ::: ### Response ```json [ { "last_controller_event_seq": "…", "last_controller_event_tip": "…", "next_controller_event_index": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/stream_cursor' ``` ::: ### Response ```json [ { "applied_through_seq": 0, "stream": "…", "tip": "…", "updated_at": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/stream_ingest_summary' ``` ::: ### Response ```json [ { "applied_through_seq": 0, "is_projection_caught_up": false, "max_block_number": 0, "max_block_time": "…", "max_block_timestamp": 0, "max_event_seq": 0, "stream": "…", "tip": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/unaccounted_receiver_usdt_transfers' ``` ::: ### Response ```json [ { "amount": "…", "block_hash": "…", "block_number": 0, "block_time": "…", "block_timestamp": 0, "chain_id": 0, "expected_lease_id": "…", "log_index": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/usdt_deposit_backlog_age_buckets' ``` ::: ### Response ```json [ { "age_bucket": "…", "amount_total": "…", "deposits_total": 0, "recommended_action": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/usdt_deposit_backlog_summary' ``` ::: ### Response ```json [ { "amount_total": "…", "deposits_total": 0, "newest_block_timestamp": 0, "oldest_block_timestamp": 0, "recommended_action": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/usdt_deposit_funnel_daily' ``` ::: ### Response ```json [ { "amount_total": "…", "day": "…", "deposits_total": 0, "stage": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/usdt_deposit_txs' ``` ::: ### Response ```json [ { "amount": "…", "block_hash": "…", "block_number": 0, "block_time": "…", "block_timestamp": 0, "chain_id": 0, "claim_amount_usdt": "…", "claim_id": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/usdt_deposits_cumulative' ``` ::: ### Response ```json [ { "amount_total": "…", "amount_total_cum": "…", "day": "…", "deposits_total": 0, "deposits_total_cum": 0 } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/usdt_deposits_daily_by_action' ``` ::: ### Response ```json [ { "amount_total": "…", "day": "…", "deposits_total": 0, "recommended_action": "…" } ] ``` import { EndpointLayout } from '../../../../components/EndpointLayout' import { EndpointAside } from '../../../../components/EndpointAside' } > :::info[Category] PostgREST view. ::: ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/v3/usdt_deposits_daily' ``` ::: ### Response ```json [ { "amount_total": "…", "day": "…", "deposits_total": 0, "leases_touched": 0, "unique_receivers": 0, "unique_senders": 0 } ] ``` ## APIs & access ### Which API should I use? Use the **Untron Bridge API** if you want a stable, product-facing surface for stablecoin swapping and bridging: * Bridge API overview: [Bridge API](/bridge-api) * Bridge API reference: [Bridge API Reference](/bridge-api/reference) Use the **Untron V3 API** if you want the raw protocol surface (more power, more churn) for builders and analytics: * V3 API overview: [V3 API](/v3-api) * V3 API reference: [V3 API Reference](/v3-api/reference) * Curated guides: [V3 API Endpoints](/v3-api/endpoints) If you want the concepts behind the protocol (not just endpoints), start with: * [V3 Reference](/v3-reference) ### API keys Requests that **write** (for example `POST`, `PUT`, `PATCH`, `DELETE`) require an API key. One API key can be reused across Untron APIs. We don’t have a self-serve integration panel yet — to get an API key, contact us at [contact@untron.finance](mailto\:contact@untron.finance). ## Untron Untron is a set of stablecoin rails for builders. If you’re integrating “send / swap / bridge stablecoins”, the goal is simple: **ship once, stay stable**, even as tokens, routers, and chain quirks change underneath you. ### What we ship * **Untron Bridge API:** a stable, product-facing API for swapping and bridging stablecoins. * **Untron V3 API:** a lower-level API for protocol builders, analytics, and deep integrations. * **Untron V3 Reference:** conceptual docs for how the V3 protocol works. ### Where to go next * Build a stable integration: [Bridge API](/bridge-api) * Build on protocol primitives: [V3 API](/v3-api) * Learn how V3 works: [V3 Reference](/v3-reference) ## Bridge API Untron Bridge API is the boring part, done right: a **stable** interface for swapping and bridging stablecoins across chains and ecosystems — even as the underlying protocols, routers, and token standards keep changing. If you’ve ever shipped with USDT variants, CCTP, chain quirks, or “one-off” bridges, you already know the pattern: * Integrations break at the worst time. * Small differences in token behavior become big production incidents. * APIs drift, naming changes, semantics change — your code becomes a museum of exceptions. The Bridge API is our answer: a **trusted, intent-style API** (NEAR Intents vibes) that lets you build stablecoin experiences without tracking every implementation detail. :::tip[Think of it like…] **Stripe for stablecoins**: you integrate once, Untron absorbs the churn. ::: ### What you get :::steps #### Stable surface area Endpoints and semantics are designed to remain stable over time. #### Protocol-powered execution Behind the scenes, routing can use Untron V3, Untron Intents, and other mechanisms as they evolve. #### Stablecoin hygiene Convenient wrappers over messy realities (e.g. CCTP flows, USDT variants like USDT0), so your app can stay clean. ::: ### Who should use this * Apps that want a single integration for “send / swap / bridge stablecoins” * Teams optimizing for reliability and long-term maintenance * Anyone who’d rather not become an expert in every new stablecoin rail ### Next * Head to the API reference: [Bridge API Reference](/bridge-api/reference) ## Bridge API Reference :::info[Note] We intentionally keep the docs pages “native” and use Scalar’s API Client for interactive “Try it”. If you want to inspect the raw spec directly, use the links below. ::: * Raw spec (JSON): `https://api.untron.finance/bridge/v1/openapi.json` * Raw spec (YAML): `https://api.untron.finance/bridge/v1/openapi.yaml` import { EndpointLayout } from '../../../components/EndpointLayout' import { EndpointAside } from '../../../components/EndpointAside' } > ### What it does Creates an order from a quote. :::tip[Idempotency] Send an `Idempotency-Key` header so retries are safe. ::: ### Request :::code-group ```bash [cURL] curl -sS -X POST 'https://api.untron.finance/bridge/v1/orders' \ -H 'content-type: application/json' \ -H 'idempotency-key: 8b0f3d6b-1d2d-4a0c-9f05-quote-to-order-1' \ -d '{ "quoteId": "qt_01JEXAMPLE", "recipient": "eip155:42161:0xRecipientAddress" }' ``` ```json [Body] { "quoteId": "qt_01JEXAMPLE", "recipient": "eip155:42161:0xRecipientAddress" } ``` ::: ### Response (201) ```json { "orderId": "ord_01JEXAMPLE", "createdAt": "2026-01-29T00:00:10.000Z", "status": "requires_funding", "recipient": "eip155:42161:0xRecipientAddress", "fees": [ { "type": "ppm", "ppm": 1500, "chargedIn": "fromAsset", "appliesTo": "acceptedAmount", "proration": "proportional" } ], "refundPolicy": { "mode": "automatic_if_supported", "requiresRefundAddress": false, "supportedRefundDestinations": [ { "chainId": "eip155:1", "assetId": "eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" } ] }, "amounts": { "receivedAmount": "0", "acceptedAmount": "0", "remainingAmount": "1000000", "excessAmount": "0", "feePreview": { "feeTotal": "0", "effectiveInputAmount": "0" } }, "pollAfterSeconds": 2 } ``` ### Typical flow 1. `POST /v1/quotes` → get a quote 2. `POST /v1/orders` → create the order (idempotent) 3. Poll `GET /v1/orders/{orderId}` for status until complete import { EndpointLayout } from '../../../components/EndpointLayout' import { EndpointAside } from '../../../components/EndpointAside' } > ### What it does Creates a quote (“offer”) which: * selects the best route right now * has an expiry * fully defines expected fees and deposit expectations ### Request :::code-group ```bash [cURL] curl -sS -X POST 'https://api.untron.finance/bridge/v1/quotes' \ -H 'content-type: application/json' \ -d '{ "fromAssetId": "eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", "toAssetId": "eip155:42161/erc20:0xaf88d065e77c8cC2239327C5EDb3A432268e5831", "fromAmount": "1000000", "recipient": "eip155:42161:0xRecipientAddress", "refundTo": "eip155:1:0xRefundAddress", "slippageBps": 30 }' ``` ```json [Body] { "fromAssetId": "eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", "toAssetId": "eip155:42161/erc20:0xaf88d065e77c8cC2239327C5EDb3A432268e5831", "fromAmount": "1000000", "recipient": "eip155:42161:0xRecipientAddress", "refundTo": "eip155:1:0xRefundAddress", "slippageBps": 30 } ``` ::: ### Response (200) ```json { "quoteId": "qt_01JEXAMPLE", "expiresAt": "2026-01-29T00:10:00.000Z", "fromAssetId": "eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", "toAssetId": "eip155:42161/erc20:0xaf88d065e77c8cC2239327C5EDb3A432268e5831", "fromAmount": "1000000", "estimatedToAmount": "998500", "fees": [ { "type": "ppm", "ppm": 1500, "chargedIn": "fromAsset", "appliesTo": "acceptedAmount", "proration": "proportional" } ], "depositDefaults": { "minAcceptedAmount": "1000000", "maxAcceptedAmount": "1000000", "underpayBehavior": "await_remainder", "overpayBehavior": "refund_excess" }, "refundPolicyPreview": { "mode": "automatic_if_supported", "supportedRefundDestinations": [ { "chainId": "eip155:1", "assetId": "eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" } ] }, "route": { "kind": "bridge_then_swap", "opaque": "base64/or/whatever" } } ``` ### Typical flow 1. Call `POST /v1/quotes` 2. Display route + fees + expiry to the user 3. When accepted, call `POST /v1/orders` using the quote import { EndpointLayout } from '../../../components/EndpointLayout' import { EndpointAside } from '../../../components/EndpointAside' } > ### What it does Returns the live “graph” of what’s possible right now (chains, assets, routes). This endpoint is descriptive only and does not create commitments. ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/bridge/v1/capabilities' ``` ::: ### Response (200) ```json { "capabilitiesVersion": "2026-01-29T00:00:00.000Z", "assetFamilies": [ { "assetFamilyId": "usdc", "symbol": "USDC", "name": "USD Coin", "currency": "USD", "issuer": "circle", "representations": [ { "chainId": "eip155:1", "assetId": "eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", "decimals": 6 } ] } ], "routes": [ { "fromChainId": "eip155:1", "toChainId": "eip155:42161", "pairs": [{ "fromFamily": "usdc", "toFamily": "usdc" }], "features": { "partialFill": false, "overpayRefund": true, "refundDestinations": true } } ], "refundPolicyModes": ["automatic", "automatic_if_supported", "manual_required", "not_supported"] } ``` ### Common uses * Populate chain/asset selectors * Pre-validate a route before quoting * Cache “what’s possible” with a short TTL (ETag supported) import { EndpointLayout } from '../../../components/EndpointLayout' import { EndpointAside } from '../../../components/EndpointAside' } > ### What it does Fetches an order by id. ### Request :::code-group ```bash [cURL] curl -sS 'https://api.untron.finance/bridge/v1/orders/ord_01JEXAMPLE' ``` ::: ### Response (200) ```json { "orderId": "ord_01JEXAMPLE", "createdAt": "2026-01-29T00:00:10.000Z", "status": "executing", "recipient": "eip155:42161:0xRecipientAddress", "fees": [ { "type": "ppm", "ppm": 1500, "chargedIn": "fromAsset", "appliesTo": "acceptedAmount", "proration": "proportional" } ], "refundPolicy": { "mode": "automatic_if_supported", "requiresRefundAddress": false, "supportedRefundDestinations": [ { "chainId": "eip155:1", "assetId": "eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" } ] }, "amounts": { "receivedAmount": "1000000", "acceptedAmount": "1000000", "remainingAmount": "0", "excessAmount": "0", "feePreview": { "feeTotal": "1500", "effectiveInputAmount": "1000000" }, "estimatedToAmount": "998500" }, "pollAfterSeconds": 2 } ``` ### Notes * Treat this endpoint as canonical (status, deposit instructions, settlement details). * For long-running routes, poll with backoff. import { EndpointAside } from '../../../components/EndpointAside' ## Bridge API Endpoints These are Vocs-native endpoint pages with a **“Try it”** button that opens Scalar’s API Client modal. :::info[Spec source] These pages currently use `https://api.untron.finance/bridge/v1/openapi.json`. ::: ### Quick try-it #### GET /v1/capabilities