{"openapi":"3.1.0","info":{"title":"Production","version":"1.0.0"},"paths":{"/v0/auth/token":{"post":{"operationId":"auth_token","summary":"Create a Session Token","description":"Exchange your API key for a short-lived bearer JWT. Send the API key as `Authorization: Bearer <api_key>`; no request body is needed. The returned `sessionJwt` is valid for **15 minutes** (the TTL is not echoed in the response) and must be sent in the `Authorization` header on every subsequent authenticated request. Refresh by calling this endpoint again before expiry.\n\nSee [Authentication](../authentication) for more details.\n","tags":["Auth"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/auth_token_Response_200"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_401_unauthorized"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_429_rate_limit_exceeded"}}}},"500":{"description":"An unexpected error occurred.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_500_internal_error"}}}},"503":{"description":"An upstream service is temporarily unavailable. Please retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_503_service_unavailable"}}}}},"security":[{"accessKey":[]}]}},"/v0/metrics":{"get":{"operationId":"metrics_get","summary":"Get Aggregate and Per-Chain Metrics","description":"Returns aggregate and per-chain AUSD supply. A few response-shape details specific to this endpoint:\n\n- **`chainId` is a [CAIP-2](https://chainagnostic.org/CAIPs/caip-2) identifier.** Real values include `eip155:1` (Ethereum), `eip155:137` (Polygon), `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`, and `sui:mainnet`. Use it to cross-reference with DeFi Llama, CoinGecko, or onchain data.\n- **Aggregates are omitted on partial responses.** If one or more chains can't be reached, the response sets `partial: true` and **omits** the top-level `totalSupply` / `circulatingSupply` rather than publishing a silently-truncated figure. The omitted fields are absent — the keys are not present, not `null` — so guard with `'totalSupply' in response`, not `response.totalSupply != null`. The `chains[]` array still includes every chain with a recent cached value.\n- **Supply values are decimal strings** (see the API overview for the precision convention). The plain-text variants `/v0/metrics/total-supply` and `/v0/metrics/circulating-supply` return a single decimal string when you don't need the per-chain breakdown.\n","tags":["Metrics"],"responses":{"200":{"description":"Aggregate and per-chain AUSD supply breakdown. When one or more chains are temporarily unavailable, the response sets `partial: true` and omits aggregate `totalSupply` and `circulatingSupply` rather than publishing a silently-truncated figure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/metrics_get_Response_200"}}}},"404":{"description":"The requested route or resource does not exist. Verify the URL and method.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_404_not_found"}}}},"429":{"description":"Per-IP rate limit exceeded at the Cloudflare edge. The response includes a `Retry-After` header indicating the wait period in seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_429_rate_limit_exceeded"}}}},"500":{"description":"An unexpected server-side failure occurred. Retry with exponential backoff and capture the `Request-Id` header for support.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_500_internal_error"}}}}}}},"/v0/metrics/total-supply":{"get":{"operationId":"metrics_totalsupply","summary":"Get Aggregate Total Supply","tags":["Metrics"],"responses":{"200":{"description":"Aggregate total AUSD supply across all chains, returned as a plain-text decimal (e.g. `1234567890.123456`).","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"404":{"description":"The requested route or resource does not exist. Verify the URL and method.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_404_not_found"}}}},"429":{"description":"Per-IP rate limit exceeded at the Cloudflare edge. The response includes a `Retry-After` header indicating the wait period in seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_429_rate_limit_exceeded"}}}},"500":{"description":"An unexpected server-side failure occurred. Retry with exponential backoff and capture the `Request-Id` header for support.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_500_internal_error"}}}}}}},"/v0/metrics/circulating-supply":{"get":{"operationId":"metrics_circulatingsupply","summary":"Get Aggregate Circulating Supply","tags":["Metrics"],"responses":{"200":{"description":"Aggregate circulating AUSD supply across all chains, returned as a plain-text decimal (e.g. `987654321.654321`).","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"404":{"description":"The requested route or resource does not exist. Verify the URL and method.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_404_not_found"}}}},"429":{"description":"Per-IP rate limit exceeded at the Cloudflare edge. The response includes a `Retry-After` header indicating the wait period in seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_429_rate_limit_exceeded"}}}},"500":{"description":"An unexpected server-side failure occurred. Retry with exponential backoff and capture the `Request-Id` header for support.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_500_internal_error"}}}}}}},"/v0/accounts":{"get":{"operationId":"accounts_get","summary":"List Accounts","description":"List every account registered to the authenticated organization. An account is either a bank account (fiat source/destination) or a blockchain wallet (onchain source/destination); both appear in the same paginated list, distinguished by the `kind` discriminator.\n\nWallet accounts carry a `networks` array, one entry per network, each with its `entitlements` and their status (see [Wallet entitlements](../accounts/overview#wallet-entitlements)). Bank accounts return the full `accountNumber` alongside `routingNumber`, `bankName`, and the `beneficiary` name on the wire.\n\nNarrow the list with `kind`, `network`, and a `createdAt` range; every filter you send must hold (see [Filtering list endpoints](../#filtering-list-endpoints)). `network` matches wallets only, so pairing it with `kind=bank` returns an empty page.\n","tags":["Accounts"],"parameters":[{"name":"cursor","in":"query","description":"Opaque pagination cursor. Pass the `nextCursor` from the previous response; omit to fetch the first page.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Page size. Defaults to 50; capped at 200.","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"createdAt.gt","in":"query","description":"Exclusive lower bound on when the account was added, as an ISO-8601 timestamp.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"createdAt.gte","in":"query","description":"Inclusive lower bound on when the account was added, as an ISO-8601 timestamp.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"createdAt.lt","in":"query","description":"Exclusive upper bound on when the account was added, as an ISO-8601 timestamp. Pairs with `createdAt.gte` to select a period without depending on its last instant.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"createdAt.lte","in":"query","description":"Inclusive upper bound on when the account was added, as an ISO-8601 timestamp.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"kind","in":"query","description":"Return only accounts of this kind.","required":false,"schema":{"$ref":"#/components/schemas/V0AccountsGetParametersKind"}},{"name":"network","in":"query","description":"Return only wallets registered on any of these networks, comma-separated. Registration is independent of entitlement state, so a wallet whose entitlement on a network was rejected or removed still matches; read `networks[].entitlements` for the current state. Bank accounts carry no network and are never matched by this filter.","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/V0AccountsGetParametersNetworkSchemaItems"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounts_get_Response_200"}}}},"400":{"description":"One or more request parameters are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_400_parameter_invalid"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_401_unauthorized"}}}},"403":{"description":"- `account_not_eligible`: The account is not eligible for this request.\n- `account_not_provisioned`: The account is not provisioned for this product.\n- `account_verification_pending`: Account verification for this product is pending.\n- `forbidden`: Access to this resource is forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_403_account_not_eligible_account_not_provisioned_account_verification_pending_forbidden"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_404_not_found"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_429_rate_limit_exceeded"}}}},"500":{"description":"An unexpected error occurred.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_500_internal_error"}}}}},"security":[{"sessionJwt":[]}]},"post":{"operationId":"accounts_create","summary":"Register an Account","description":"Register a customer-owned account under the authenticated organization. Set `kind` to `wallet` to register a blockchain address (supply the `networks` it should be registered on; EVM hex is normalized to lowercase, Solana base58 is kept verbatim) or `bank` to register a fiat account.\n\nRegistering a wallet starts `mint` and (where supported) `instant_settlement` entitlements on the requested networks. See [Wallet entitlements](../accounts/overview#wallet-entitlements) for how they are approved and when the wallet is usable. Registering the same address on a network it already holds returns `409`.\n","tags":["Accounts"],"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounts_create_Response_201"}}}},"400":{"description":"One or more request parameters are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_400_parameter_invalid"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_401_unauthorized"}}}},"403":{"description":"- `account_not_eligible`: The account is not eligible for this request.\n- `account_not_provisioned`: The account is not provisioned for this product.\n- `account_verification_pending`: Account verification for this product is pending.\n- `forbidden`: Access to this resource is forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_403_account_not_eligible_account_not_provisioned_account_verification_pending_forbidden"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_404_not_found"}}}},"409":{"description":"An account with these details already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_409_account_already_exists"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_429_rate_limit_exceeded"}}}},"500":{"description":"An unexpected error occurred.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_500_internal_error"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounts_create_Request"}}}},"security":[{"sessionJwt":[]}]}},"/v0/accounts/{accountId}":{"get":{"operationId":"accounts_getbyid","summary":"Get an Account by ID","description":"Retrieve one account by its id. The response is identical to that account's entry in `GET /v0/accounts` (a wallet with its per-network `entitlements`, or a bank account with its full `accountNumber` and `beneficiary`), so you never need to reconcile the two shapes.\n\nAn id belonging to another organization returns `404 account_not_found`, the same as an id that exists nowhere. If your API key can read only one account kind, accounts of the other kind read as `404` too; a key that can read neither gets `403`.\n","tags":["Accounts"],"parameters":[{"name":"accountId","in":"path","description":"Id of the account to fetch; must belong to the caller's org.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounts_getbyid_Response_200"}}}},"400":{"description":"One or more request parameters are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_400_parameter_invalid"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_401_unauthorized"}}}},"403":{"description":"- `account_not_eligible`: The account is not eligible for this request.\n- `account_not_provisioned`: The account is not provisioned for this product.\n- `account_verification_pending`: Account verification for this product is pending.\n- `forbidden`: Access to this resource is forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_403_account_not_eligible_account_not_provisioned_account_verification_pending_forbidden"}}}},"404":{"description":"- `account_not_found`: Account not found.\n- `not_found`: Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_404_account_not_found_not_found"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_429_rate_limit_exceeded"}}}},"500":{"description":"An unexpected error occurred.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_500_internal_error"}}}}},"security":[{"sessionJwt":[]}]},"put":{"operationId":"accounts_update","summary":"Update an Account","description":"Apply a single change to an existing account, selected by `operation`:\n\n- **`setName`**: rename a wallet or bank account (send `name`).\n- **`addNetwork`**: register an existing wallet on an additional `network`, which starts a new `mint` entitlement there (see [Wallet entitlements](../accounts/overview#wallet-entitlements)). Rejected with `409` if the address is already registered there.\n- **`requestEntitlement`**: request an `entitlement` (currently `instant_settlement`) on an existing wallet `network`. Returns `400` if the entitlement isn't requestable for that network. See [Wallet entitlements](../accounts/overview#wallet-entitlements) for how requests are reviewed and approved.\n\nThe response is the full updated account, same shape as `GET /v0/accounts`.\n","tags":["Accounts"],"parameters":[{"name":"accountId","in":"path","description":"Id of the account to update; must belong to the caller's org.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounts_update_Response_200"}}}},"400":{"description":"- `entitlement_not_requestable`: This entitlement cannot be requested in its current state.\n- `parameter_invalid`: One or more request parameters are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_400_entitlement_not_requestable_parameter_invalid"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_401_unauthorized"}}}},"403":{"description":"- `account_not_eligible`: The account is not eligible for this request.\n- `account_not_provisioned`: The account is not provisioned for this product.\n- `account_verification_pending`: Account verification for this product is pending.\n- `forbidden`: Access to this resource is forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_403_account_not_eligible_account_not_provisioned_account_verification_pending_forbidden"}}}},"404":{"description":"- `account_not_found`: Account not found.\n- `not_found`: Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_404_account_not_found_not_found"}}}},"409":{"description":"An account with these details already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_409_account_already_exists"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_429_rate_limit_exceeded"}}}},"500":{"description":"An unexpected error occurred.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_500_internal_error"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"operation":{"$ref":"#/components/schemas/V0AccountsAccountIdPutRequestBodyContentApplicationJsonSchemaOperation"},"name":{"type":"string","maxLength":200,"description":"User-set label. Free-form; max 200 characters."},"network":{"$ref":"#/components/schemas/V0AccountsAccountIdPutRequestBodyContentApplicationJsonSchemaNetwork"},"entitlement":{"$ref":"#/components/schemas/V0AccountsAccountIdPutRequestBodyContentApplicationJsonSchemaEntitlement","description":"Entitlement to request. Moves to pending_approval; granting stays Agora-side."}},"required":["operation"]}}}},"security":[{"sessionJwt":[]}]}},"/v0/routes":{"get":{"operationId":"routes_get","summary":"List Routes","description":"Return every route on the authenticated organization. Each route includes the full `instructions` block so callers can resolve memos and mint/redeem addresses without an additional retrieve.\n\nNarrow the list with `fromCurrency`, `toCurrency`, `toChain`, `direction`, and `toAccountId`; every filter you send must hold (see [Filtering list endpoints](../#filtering-list-endpoints)). `toChain` matches onchain destinations only, so a redeem-to-fiat route never matches it. `direction` filters by flow without naming a currency pair — see the [Supported topologies](../routes/create#supported-topologies) table on `POST /v0/routes` for what each value means.\n","tags":["Routes"],"parameters":[{"name":"cursor","in":"query","description":"Opaque pagination cursor. Pass the `nextCursor` from the previous response; omit to fetch the first page.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Page size. Defaults to 50; capped at 200.","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"fromCurrency","in":"query","description":"Return only routes with this source currency.","required":false,"schema":{"$ref":"#/components/schemas/V0RoutesGetParametersFromCurrency"}},{"name":"direction","in":"query","description":"Return only routes in any of these directions, comma-separated. Omit for every direction the caller can read. This is how \"every redeem regardless of token\" is spelled: `direction=redeem-fiat,redeem-stablecoin`.","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/V0RoutesGetParametersDirectionSchemaItems"}}},{"name":"toAccountId","in":"query","description":"Return only routes pointing at this registered account. A well-formed id belonging to another organization, or to nothing, returns an empty page rather than an error.","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"toChain","in":"query","description":"Return only routes landing on any of these chains, comma-separated. Fiat and wire destinations carry no chain and are never matched by this filter.","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/V0RoutesGetParametersToChainSchemaItems"}}},{"name":"toCurrency","in":"query","description":"Return only routes with this destination currency.","required":false,"schema":{"$ref":"#/components/schemas/V0RoutesGetParametersToCurrency"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/routes_get_Response_200"}}}},"400":{"description":"One or more request parameters are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_400_parameter_invalid"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_401_unauthorized"}}}},"403":{"description":"- `account_not_eligible`: The account is not eligible for this request.\n- `account_not_provisioned`: The account is not provisioned for this product.\n- `account_verification_pending`: Account verification for this product is pending.\n- `forbidden`: Access to this resource is forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_403_account_not_eligible_account_not_provisioned_account_verification_pending_forbidden"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_404_not_found"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_429_rate_limit_exceeded"}}}},"500":{"description":"An unexpected error occurred.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_500_internal_error"}}}}},"security":[{"sessionJwt":[]}]},"post":{"operationId":"routes_create","summary":"Create a Route","description":"Create a persistent source → destination route. The response includes reusable settlement instructions — a wire memo for fiat sources, or one mint or redeem address per supported chain for blockchain sources — that the caller uses to initiate transfers. A single set of instructions is valid indefinitely; every inbound transfer matching them triggers a separate settlement to the route's destination.\n\n`from.currency`, `to.currency`, and the destination `to.chain` determine the route's topology, returned as `direction`. `to.accountId` references a registered account from `GET /v0/accounts`.\n\n<Callout intent=\"warning\">\n  **Fiat routes need the bank account on file first.** Add the bank account you'll *send from* (mint from `usd`) or *receive into* (redeem to `usd`) before you transact. If a wire arrives from — or a payout is owed to — a bank account Agora hasn't added and verified, settlement is held and processing is delayed until it's on file.\n</Callout>\n\n### Supported topologies\n\n| `from.currency` | `to.currency` (+ `to.chain`) | `direction` | Behavior |\n|---|---|---|---|\n| `usd` | `ausd` on a chain | `mint-fiat` | Mint: wire USD with the memo, receive AUSD at the destination |\n| `usdc` | `ausd` on a chain | `mint-stablecoin` | Mint from stablecoin: send USDC to the mint address, receive AUSD at the destination |\n| `ausd` | `usd` (bank account) | `redeem-fiat` | Redeem: send AUSD to the redeem address, receive a USD payout |\n| `ausd` | `usdc` on a chain | `redeem-stablecoin` | Redeem to tokens: send AUSD to the redeem address, receive USDC |\n\n### 200, 201, or 409\n\nRoute ids are deterministic from their canonical inputs (organization, destination account, chain, currency), so calling this endpoint again with the same inputs is safe:\n\n- **`201`** — no route existed for these inputs; one was created.\n- **`200`** — a route for these inputs already existed. Nothing was written; the response is that existing route, in the same shape a `201` would have returned.\n- **`409` `route_already_exists`** — the deterministic id is occupied by a route this call couldn't read back cleanly. This is an internal inconsistency, not an ordinary duplicate create; `context.routeId` names the id. Contact support rather than retrying.\n","tags":["Routes"],"responses":{"200":{"description":"The route already existed, so nothing was created and the stored route is returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/routes_create_Response_200"}}}},"400":{"description":"- `chain_unsupported`: The requested chain is not supported.\n- `currency_unsupported`: The requested currency is not supported.\n- `direction_unsupported`: The requested route direction is not supported.\n- `parameter_invalid`: One or more request parameters are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_400_chain_unsupported_currency_unsupported_direction_unsupported_parameter_invalid"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_401_unauthorized"}}}},"403":{"description":"- `account_not_eligible`: The account is not eligible for this request.\n- `account_not_provisioned`: The account is not provisioned for this product.\n- `account_verification_pending`: Account verification for this product is pending.\n- `forbidden`: Access to this resource is forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_403_account_not_eligible_account_not_provisioned_account_verification_pending_forbidden"}}}},"404":{"description":"- `account_not_found`: Account not found.\n- `not_found`: Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_404_account_not_found_not_found"}}}},"409":{"description":"A route with these parameters exists but cannot be served. Contact support.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_409_route_already_exists"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_429_rate_limit_exceeded"}}}},"500":{"description":"An unexpected error occurred.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_500_internal_error"}}}},"503":{"description":"Route creation temporarily unavailable. Please retry shortly.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_503_route_creation_unavailable"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":200},"from":{"$ref":"#/components/schemas/V0RoutesPostRequestBodyContentApplicationJsonSchemaFrom"},"to":{"$ref":"#/components/schemas/V0RoutesPostRequestBodyContentApplicationJsonSchemaTo"}},"required":["from","to"]}}}},"security":[{"sessionJwt":[]}]}},"/v0/routes/{routeId}":{"get":{"operationId":"routes_getbyid","summary":"Get a Route by ID","description":"Retrieve a single route by its id, including the full reusable `instructions` block. Route ids are deterministic — the same canonical inputs always derive the same id — so a `404` means no route with those parameters has been created for your organization.\n","tags":["Routes"],"parameters":[{"name":"routeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/routes_getbyid_Response_200"}}}},"400":{"description":"One or more request parameters are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_400_parameter_invalid"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_401_unauthorized"}}}},"403":{"description":"- `account_not_eligible`: The account is not eligible for this request.\n- `account_not_provisioned`: The account is not provisioned for this product.\n- `account_verification_pending`: Account verification for this product is pending.\n- `forbidden`: Access to this resource is forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_403_account_not_eligible_account_not_provisioned_account_verification_pending_forbidden"}}}},"404":{"description":"- `not_found`: Resource not found.\n- `route_not_found`: Route not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_404_not_found_route_not_found"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_429_rate_limit_exceeded"}}}},"500":{"description":"An unexpected error occurred.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_500_internal_error"}}}}},"security":[{"sessionJwt":[]}]}},"/v0/transactions":{"get":{"operationId":"transactions_list","summary":"List Transactions","description":"List your transactions, newest first, with cursor pagination. Each entry summarizes the `source` and `recipient`, the per-currency totals each side moved, and the `type` (`mint`, `redeem`, `bridge`, `reward`, `return`, `tokenConversion`). `type` and `status` are open enums; tolerate unknown values. Fetch one transaction's legs with [Get a Transaction by ID](../transactions/getbyid).\n\nNarrow the list with `type`, `sourceChain`, `recipientChain`, `isInstantSettlement`, and an `initiatedAt` range; every filter you send must hold (see [Filtering list endpoints](../#filtering-list-endpoints)). The chain filters match the `source` and `recipient` the response reports, so a mint funded by wire matches on `recipientChain` only.\n","tags":["Transactions"],"parameters":[{"name":"cursor","in":"query","description":"Opaque pagination cursor. Pass the `nextCursor` from the previous response; omit to fetch the first page.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Page size. Defaults to 50; capped at 200.","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"initiatedAt.gt","in":"query","description":"Exclusive lower bound on the transaction's initiation time, as an ISO-8601 timestamp.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"initiatedAt.gte","in":"query","description":"Inclusive lower bound on the transaction's initiation time, as an ISO-8601 timestamp.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"initiatedAt.lt","in":"query","description":"Exclusive upper bound on the transaction's initiation time, as an ISO-8601 timestamp. Pairs with `initiatedAt.gte` to select a period without depending on its last instant.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"initiatedAt.lte","in":"query","description":"Inclusive upper bound on the transaction's initiation time, as an ISO-8601 timestamp.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"isInstantSettlement","in":"query","description":"Return only transactions whose settlement path matches. `true` is the instant-settlement path; `false` is standard settlement, which includes movement types that have no settlement path of their own, such as rewards and returns.","required":false,"schema":{"$ref":"#/components/schemas/V0TransactionsGetParametersIsInstantSettlement"}},{"name":"recipientChain","in":"query","description":"Return only transactions whose recipient received value on these networks, comma-separated.","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/V0TransactionsGetParametersRecipientChainSchemaItems"}}},{"name":"sourceChain","in":"query","description":"Return only transactions whose source sent value on these networks, comma-separated.","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/V0TransactionsGetParametersSourceChainSchemaItems"}}},{"name":"type","in":"query","description":"Return only these movement types, comma-separated.","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/V0TransactionsGetParametersTypeSchemaItems"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/transactions_list_Response_200"}}}},"400":{"description":"One or more request parameters are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_400_parameter_invalid"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_401_unauthorized"}}}},"403":{"description":"- `account_not_eligible`: The account is not eligible for this request.\n- `account_not_provisioned`: The account is not provisioned for this product.\n- `account_verification_pending`: Account verification for this product is pending.\n- `forbidden`: Access to this resource is forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_403_account_not_eligible_account_not_provisioned_account_verification_pending_forbidden"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_404_not_found"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_429_rate_limit_exceeded"}}}},"500":{"description":"An unexpected error occurred.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_500_internal_error"}}}}},"security":[{"sessionJwt":[]}]}},"/v0/transactions/{txnId}":{"get":{"operationId":"transactions_getbyid","summary":"Get a Transaction by ID","description":"Retrieve one transaction by id, with its per-leg breakdown. Each leg carries a `direction` (`INBOUND` or `OUTBOUND`, relative to the customer; see [Legs](../transactions/overview#legs)) and a rail-specific `detail` keyed by `type`: `token` (`transactionHash`), `wire` (Fedwire `imad`), `bookTransfer`, or `instantPayment` (`confirmationNumber`). A `fee` leg is a manual accounting entry and carries no rail reference. A `404` means no such transaction exists for your organization.\n","tags":["Transactions"],"parameters":[{"name":"txnId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/transactions_getbyid_Response_200"}}}},"400":{"description":"One or more request parameters are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_400_parameter_invalid"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_401_unauthorized"}}}},"403":{"description":"- `account_not_eligible`: The account is not eligible for this request.\n- `account_not_provisioned`: The account is not provisioned for this product.\n- `account_verification_pending`: Account verification for this product is pending.\n- `forbidden`: Access to this resource is forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_403_account_not_eligible_account_not_provisioned_account_verification_pending_forbidden"}}}},"404":{"description":"- `not_found`: Resource not found.\n- `transaction_not_found`: Transaction not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_404_not_found_transaction_not_found"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_429_rate_limit_exceeded"}}}},"500":{"description":"An unexpected error occurred.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_500_internal_error"}}}}},"security":[{"sessionJwt":[]}]}},"/v0/quotes":{"post":{"operationId":"quotes_create","summary":"Create Quotes","description":"Quote a conversion between AUSD and USDC or USDT on one chain, in either direction. Requesting a quote moves no funds: it returns the provider's price and the `executionSteps` your user's wallet signs to accept it. The deposit must land onchain by the quote's `expiresAt`, 180 seconds after it's priced. `quotes` holds one quote per provider that can fill the request, so compare `fees` and `executionSteps` before picking one.\n\nSend exactly one of `senderAmount` or `receiverAmount`; the other side comes back computed on the quote. One side must be AUSD, both sides must be on the same chain, and USDT is offered on Ethereum only (see [Support](../guides/convert-stablecoins/overview#support)).\n\nWe screen both wallets before quoting, and a request that fails for any reason stores nothing:\n\n- `400 chain_unsupported`: `sender` and `receiver` are on different chains.\n- `400 currency_unsupported`: the pair doesn't have AUSD on exactly one side, or the chain doesn't offer the currency (USDT on Monad).\n- `403 wallet_blocked`: the sender or receiver wallet failed screening.\n- `503 service_unavailable`: no provider can quote right now. Retry later with a new request.\n\nNext, follow [Executing a quote](../quotes/overview#executing-a-quote) to run `executionSteps`, then poll `transactionId` through [`GET /v0/transactions/{txnId}`](../transactions/getbyid) as described in [Tracking execution](../guides/convert-stablecoins/overview#tracking-execution). [Fees](../quotes/overview#fees) explains the `fees` breakdown.\n\n<Footer>\n<aside className=\"legal-notice\" aria-label=\"Legal notice\">\n  <p className=\"legal-notice-title\">Legal notice</p>\n  <p>The Via API, including the <code>/v0/quotes</code> and <code>/v0/transactions</code> endpoints, is offered solely by <strong>Agora Blue Limited</strong>, a business company incorporated in the British Virgin Islands. The Via API is not offered by any other Agora entity.</p>\n  <p>By integrating the Via API and using the Services, you confirm that you have read and agree to the <a href=\"https://static.agora.finance/termsofuse.pdf\">Agora Blue Via API Terms of Use</a>. Your continued use of the Services constitutes your acceptance of such terms. If you do not agree with any such terms, your sole and exclusive remedy is to terminate your use of the Services.</p>\n  <p>Availability is subject to certain terms and conditions. Restrictions may apply.</p>\n</aside>\n</Footer>\n","tags":["Quotes"],"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/quotes_create_Response_201"}}}},"400":{"description":"- `chain_unsupported`: The requested chain is not supported.\n- `currency_unsupported`: The requested currency is not supported.\n- `parameter_invalid`: One or more request parameters are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_400_chain_unsupported_currency_unsupported_parameter_invalid"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_401_unauthorized"}}}},"403":{"description":"- `account_not_eligible`: The account is not eligible for this request.\n- `account_not_provisioned`: The account is not provisioned for this product.\n- `account_verification_pending`: Account verification for this product is pending.\n- `forbidden`: Access to this resource is forbidden.\n- `wallet_blocked`: Wallet blocked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_403_account_not_eligible_account_not_provisioned_account_verification_pending_forbidden_wallet_blocked"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_404_not_found"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_429_rate_limit_exceeded"}}}},"500":{"description":"An unexpected error occurred.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_500_internal_error"}}}},"503":{"description":"An upstream service is temporarily unavailable. Please retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_503_service_unavailable"}}}}},"requestBody":{"description":"One side must be `ausd` and the other must not. Both sides must be on the same chain. Currencies offered per chain: ethereum (ausd, usdc, usdt), monad (ausd, usdc).","content":{"application/json":{"schema":{"type":"object","properties":{"sender":{"$ref":"#/components/schemas/V0QuotesPostRequestBodyContentApplicationJsonSchemaSender"},"receiver":{"$ref":"#/components/schemas/V0QuotesPostRequestBodyContentApplicationJsonSchemaReceiver"},"senderAmount":{"type":"string","pattern":"^\\d+(\\.\\d+)?$","description":"Fixes the input side. Provide exactly one of `senderAmount` or `receiverAmount`; the other is computed on the quote."},"receiverAmount":{"type":"string","pattern":"^\\d+(\\.\\d+)?$","description":"Fixes the output side. Provide exactly one of `senderAmount` or `receiverAmount`; the other is computed on the quote."},"slippageBps":{"type":"integer","minimum":0,"description":"Basis points of allowed slippage from the quoted rate. Default and cap are set per chain; values above the cap are clamped rather than rejected. The effective value is echoed on the quote."}},"required":["sender","receiver"]}}}},"security":[{"sessionJwt":[]}]}},"/v0/quotes/{quoteId}":{"get":{"operationId":"quotes_getbyid","summary":"Get a Quote by ID","description":"Retrieve a quote exactly as [`POST /v0/quotes`](../quotes/create) returned it. Use it to recover a quote's `executionSteps`, `fees`, or `transactionId` after the fact, not to track progress: nothing on a quote changes after creation, `transactionId` included.\n\nAn expired quote is still returned, so check `expiresAt` before running its steps, and request a new quote once it has passed. To follow a conversion, poll [`GET /v0/transactions/{txnId}`](../transactions/getbyid) with the quote's `transactionId` instead (see [Tracking execution](../guides/convert-stablecoins/overview#tracking-execution)).\n\n`404 quote_not_found` covers both an unknown id and another organization's quote, so the response doesn't reveal whether a quote exists elsewhere.\n\n<Footer>\n<aside className=\"legal-notice\" aria-label=\"Legal notice\">\n  <p className=\"legal-notice-title\">Legal notice</p>\n  <p>The Via API, including the <code>/v0/quotes</code> and <code>/v0/transactions</code> endpoints, is offered solely by <strong>Agora Blue Limited</strong>, a business company incorporated in the British Virgin Islands. The Via API is not offered by any other Agora entity.</p>\n  <p>By integrating the Via API and using the Services, you confirm that you have read and agree to the <a href=\"https://static.agora.finance/termsofuse.pdf\">Agora Blue Via API Terms of Use</a>. Your continued use of the Services constitutes your acceptance of such terms. If you do not agree with any such terms, your sole and exclusive remedy is to terminate your use of the Services.</p>\n  <p>Availability is subject to certain terms and conditions. Restrictions may apply.</p>\n</aside>\n</Footer>\n","tags":["Quotes"],"parameters":[{"name":"quoteId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/quotes_getbyid_Response_200"}}}},"400":{"description":"One or more request parameters are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_400_parameter_invalid"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_401_unauthorized"}}}},"403":{"description":"- `account_not_eligible`: The account is not eligible for this request.\n- `account_not_provisioned`: The account is not provisioned for this product.\n- `account_verification_pending`: Account verification for this product is pending.\n- `forbidden`: Access to this resource is forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_403_account_not_eligible_account_not_provisioned_account_verification_pending_forbidden"}}}},"404":{"description":"- `not_found`: Resource not found.\n- `quote_not_found`: Quote not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_404_not_found_quote_not_found"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_429_rate_limit_exceeded"}}}},"500":{"description":"An unexpected error occurred.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_500_internal_error"}}}}},"security":[{"sessionJwt":[]}]}}},"tags":[{"name":"Auth"},{"name":"Metrics"},{"name":"Accounts"},{"name":"Routes"},{"name":"Transactions"},{"name":"Quotes"}],"servers":[{"url":"https://api.agora.finance","description":"Production"}],"components":{"schemas":{"auth_token_Response_200":{"type":"object","properties":{"sessionJwt":{"type":"string","description":"Short-lived session JWT. Send it as `Authorization: Bearer <sessionJwt>` on every authenticated endpoint."}},"required":["sessionJwt"],"title":"auth_token_Response_200"},"ErrorResponse401UnauthorizedCode":{"type":"string","enum":["unauthorized"],"title":"ErrorResponse401UnauthorizedCode"},"ErrorResponse401UnauthorizedContextReason":{"type":"string","enum":["invalid_token","key_not_provisioned","missing_claim","missing_header","token_expired","token_paused","token_revoked","unknown_tenant"],"title":"ErrorResponse401UnauthorizedContextReason"},"ErrorResponse401UnauthorizedContext":{"type":"object","properties":{"reason":{"$ref":"#/components/schemas/ErrorResponse401UnauthorizedContextReason"}},"required":["reason"],"title":"ErrorResponse401UnauthorizedContext"},"ErrorResponse_401_unauthorized":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/ErrorResponse401UnauthorizedCode"},"docs_url":{"type":"string"},"message":{"type":"string"},"context":{"$ref":"#/components/schemas/ErrorResponse401UnauthorizedContext"}},"required":["code","docs_url","message"],"title":"ErrorResponse_401_unauthorized"},"ErrorResponse429RateLimitExceededCode":{"type":"string","enum":["rate_limit_exceeded"],"title":"ErrorResponse429RateLimitExceededCode"},"ErrorResponse_429_rate_limit_exceeded":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/ErrorResponse429RateLimitExceededCode"},"docs_url":{"type":"string"},"message":{"type":"string"}},"required":["code","docs_url","message"],"title":"ErrorResponse_429_rate_limit_exceeded"},"ErrorResponse500InternalErrorCode":{"type":"string","enum":["internal_error"],"title":"ErrorResponse500InternalErrorCode"},"ErrorResponse_500_internal_error":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/ErrorResponse500InternalErrorCode"},"docs_url":{"type":"string"},"message":{"type":"string"}},"required":["code","docs_url","message"],"title":"ErrorResponse_500_internal_error"},"ErrorResponse503ServiceUnavailableCode":{"type":"string","enum":["service_unavailable"],"title":"ErrorResponse503ServiceUnavailableCode"},"ErrorResponse_503_service_unavailable":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/ErrorResponse503ServiceUnavailableCode"},"docs_url":{"type":"string"},"message":{"type":"string"}},"required":["code","docs_url","message"],"title":"ErrorResponse_503_service_unavailable"},"V0MetricsGetResponsesContentApplicationJsonSchemaChainsItemsNetwork":{"type":"string","enum":["arbitrum","avalanche","base","binance-smart-chain","core","ethereum","fraxtal","gnosis","immutable","injective","katana","mantle","monad","plume","polygon-pos","solana","sui"],"description":"Blockchain network identifier. Use this to filter or group supply data by chain. Values are stable; new networks may be added but existing ones will not be renamed.","title":"V0MetricsGetResponsesContentApplicationJsonSchemaChainsItemsNetwork"},"V0MetricsGetResponsesContentApplicationJsonSchemaChainsItems":{"type":"object","properties":{"chainId":{"type":"string","description":"CAIP-2 chain identifier (e.g. 'eip155:1' for Ethereum, 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' for Solana). Use this for cross-referencing with DeFi Llama, CoinGecko, or on-chain data."},"circulatingSupply":{"type":"string","description":"AUSD in public circulation on this chain (total minus premint reserves), as a decimal string (e.g. `400000000.000000`). Use this for market cap calculations and exchange integrations."},"network":{"$ref":"#/components/schemas/V0MetricsGetResponsesContentApplicationJsonSchemaChainsItemsNetwork","description":"Blockchain network identifier. Use this to filter or group supply data by chain. Values are stable; new networks may be added but existing ones will not be renamed."},"totalSupply":{"type":"string","description":"Total AUSD minted on this chain, as a decimal string in human-readable units (not raw on-chain units, e.g. `500000000.000000`, not `500000000000000`). Use this when you need the gross supply figure for a single chain."}},"required":["chainId","circulatingSupply","network","totalSupply"],"title":"V0MetricsGetResponsesContentApplicationJsonSchemaChainsItems"},"metrics_get_Response_200":{"type":"object","properties":{"chains":{"type":"array","items":{"$ref":"#/components/schemas/V0MetricsGetResponsesContentApplicationJsonSchemaChainsItems"},"description":"Per-chain supply breakdown. Only chains with a currently cached successful result are included; chains that have never succeeded (or are in a persistent outage on this pod) are omitted and cause `partial` to be true."},"circulatingSupply":{"type":"string","description":"Aggregate circulating AUSD supply across all chains, as a decimal string (e.g. `987654321.654321`). This is the sum of all per-chain circulatingSupply values. Omitted when `partial` is true."},"partial":{"type":"boolean","description":"True when one or more chains are missing from the response (cold start before a chain's first successful fetch, or a persistent chain outage). When true, aggregate `totalSupply` and `circulatingSupply` are **omitted**, since publishing a total that silently excludes chains would look like a large supply drop to market-data consumers."},"totalSupply":{"type":"string","description":"Aggregate total AUSD supply across all chains, as a decimal string (e.g. `1234567890.123456`). This is the sum of all per-chain totalSupply values. Omitted when `partial` is true."}},"required":["chains","partial"],"title":"metrics_get_Response_200"},"ErrorResponse404NotFoundCode":{"type":"string","enum":["not_found"],"title":"ErrorResponse404NotFoundCode"},"ErrorResponse_404_not_found":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/ErrorResponse404NotFoundCode"},"docs_url":{"type":"string"},"message":{"type":"string"}},"required":["code","docs_url","message"],"title":"ErrorResponse_404_not_found"},"V0AccountsGetParametersKind":{"type":"string","enum":["bank","wallet"],"description":"Return only accounts of this kind.","title":"V0AccountsGetParametersKind"},"V0AccountsGetParametersNetworkSchemaItems":{"type":"string","enum":["arbitrum","avalanche","base","ethereum","immutable","monad","polygon-pos","solana"],"title":"V0AccountsGetParametersNetworkSchemaItems"},"V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0AddressFormat":{"type":"string","enum":["ethereum","solana"],"description":"Address syntax family. `ethereum` covers every EVM chain (Ethereum, Base, Polygon, Arbitrum, etc.); per-chain authorization is enforced separately via the account's chain entitlements.","title":"V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0AddressFormat"},"V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0Kind":{"type":"string","enum":["wallet"],"description":"Discriminator: this is a customer-owned blockchain address.","title":"V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0Kind"},"V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0NetworksItemsChain":{"type":"string","enum":["arbitrum","avalanche","base","binance-smart-chain","core","ethereum","fraxtal","gnosis","immutable","injective","katana","mantle","monad","plume","polygon-pos","solana","sui"],"description":"Network the wallet is registered on (kebab-case public network id).","title":"V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0NetworksItemsChain"},"V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0NetworksItemsEntitlementsItemsType":{"type":"string","enum":["instant_settlement","mint","rewards"],"description":"Entitlement type. `mint` is the mint capability gated by the per-chain compliance scan; `instant_settlement` is the instant-settlement whitelist; `rewards` is rewards eligibility.","title":"V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0NetworksItemsEntitlementsItemsType"},"V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0NetworksItemsEntitlementsItemsStatus":{"type":"string","enum":["approved","conditionally_approved","pending_approval","pending_removal","rejected","removed"],"description":"Entitlement status. `pending_approval` is requested and under Agora review; `approved` is active. `conditionally_approved` applies to `mint` only: the address is usable now (screening and whitelisting are auto-initiated) while final approval is still pending internally. `instant_settlement` and `rewards` stay `pending_approval` until reviewed. The API never auto-approves.","title":"V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0NetworksItemsEntitlementsItemsStatus"},"V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0NetworksItemsEntitlementsItems":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0NetworksItemsEntitlementsItemsType","description":"Entitlement type. `mint` is the mint capability gated by the per-chain compliance scan; `instant_settlement` is the instant-settlement whitelist; `rewards` is rewards eligibility."},"status":{"$ref":"#/components/schemas/V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0NetworksItemsEntitlementsItemsStatus","description":"Entitlement status. `pending_approval` is requested and under Agora review; `approved` is active. `conditionally_approved` applies to `mint` only: the address is usable now (screening and whitelisting are auto-initiated) while final approval is still pending internally. `instant_settlement` and `rewards` stay `pending_approval` until reviewed. The API never auto-approves."}},"required":["type","status"],"title":"V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0NetworksItemsEntitlementsItems"},"V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0NetworksItems":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0NetworksItemsChain","description":"Network the wallet is registered on (kebab-case public network id)."},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0NetworksItemsEntitlementsItems"},"description":"Entitlement states on this network, one per type the wallet holds on the chain."}},"required":["chain","entitlements"],"description":"Per-network entitlement state for the wallet.","title":"V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0NetworksItems"},"V0AccountsGetResponsesContentApplicationJsonSchemaDataItems0":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Stable UUID identifying this account; safe to cache or display."},"address":{"type":"string","description":"On-chain address. EIP-55 checksummed for EVM (`ethereum`), base58 for Solana."},"addressFormat":{"$ref":"#/components/schemas/V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0AddressFormat","description":"Address syntax family. `ethereum` covers every EVM chain (Ethereum, Base, Polygon, Arbitrum, etc.); per-chain authorization is enforced separately via the account's chain entitlements."},"createdAt":{"type":"string","format":"date-time","description":"ISO-8601 UTC timestamp when this address was added to the org."},"kind":{"$ref":"#/components/schemas/V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0Kind","description":"Discriminator: this is a customer-owned blockchain address."},"name":{"type":"string","description":"User-set label. Free-form; may be empty if the user hasn't set one."},"networks":{"type":"array","items":{"$ref":"#/components/schemas/V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf0NetworksItems"},"description":"The networks this address is registered on, each with its per-type entitlement states."}},"required":["id","address","addressFormat","createdAt","kind","name","networks"],"description":"Customer-owned blockchain address (CustomerAddress).","title":"V0AccountsGetResponsesContentApplicationJsonSchemaDataItems0"},"V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf1Currency":{"type":"string","enum":["usd"],"description":"Settlement currency. Today only `usd`; will extend as new currencies launch.","title":"V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf1Currency"},"V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf1Kind":{"type":"string","enum":["bank"],"description":"Discriminator: this is a customer-owned bank account.","title":"V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf1Kind"},"V0AccountsGetResponsesContentApplicationJsonSchemaDataItems1":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Stable UUID identifying this account; safe to cache or display."},"accountNumber":{"type":"string","minLength":1,"description":"Full bank account number."},"bankName":{"type":"string","description":"Name of the receiving bank."},"beneficiary":{"type":"string","description":"Account-holder name on the wire. Part of the account's identity: distinguishes accounts that share a routing + account number (e.g. omnibus/custodian accounts holding several funds under one account number)."},"createdAt":{"type":"string","format":"date-time","description":"ISO-8601 UTC timestamp when this account was added to the org."},"currency":{"$ref":"#/components/schemas/V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf1Currency","description":"Settlement currency. Today only `usd`; will extend as new currencies launch."},"kind":{"$ref":"#/components/schemas/V0AccountsGetResponsesContentApplicationJsonSchemaDataItemsOneOf1Kind","description":"Discriminator: this is a customer-owned bank account."},"name":{"type":"string","description":"User-set label. Free-form; may be empty if the user hasn't set one."},"routingNumber":{"type":"string","description":"ABA routing number identifying the receiving bank. A public bank identifier, returned in full."}},"required":["id","accountNumber","bankName","beneficiary","createdAt","currency","kind","name","routingNumber"],"description":"Customer-owned bank account (WireDetail).","title":"V0AccountsGetResponsesContentApplicationJsonSchemaDataItems1"},"V0AccountsGetResponsesContentApplicationJsonSchemaDataItems":{"oneOf":[{"$ref":"#/components/schemas/V0AccountsGetResponsesContentApplicationJsonSchemaDataItems0"},{"$ref":"#/components/schemas/V0AccountsGetResponsesContentApplicationJsonSchemaDataItems1"}],"title":"V0AccountsGetResponsesContentApplicationJsonSchemaDataItems"},"accounts_get_Response_200":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/V0AccountsGetResponsesContentApplicationJsonSchemaDataItems"},"description":"Page of accounts, newest first, tie-broken by id."},"nextCursor":{"type":["string","null"],"description":"Opaque cursor for the next page. Pass back verbatim as the `cursor` query param to fetch the next page; null when no more results."}},"required":["data","nextCursor"],"title":"accounts_get_Response_200"},"ErrorResponse400ParameterInvalidCode":{"type":"string","enum":["parameter_invalid"],"title":"ErrorResponse400ParameterInvalidCode"},"ErrorResponse400ParameterInvalidContextIssuesItems":{"type":"object","properties":{"field":{"type":"string"},"message":{"type":"string"}},"required":["field","message"],"title":"ErrorResponse400ParameterInvalidContextIssuesItems"},"ErrorResponse400ParameterInvalidContext":{"type":"object","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ErrorResponse400ParameterInvalidContextIssuesItems"}}},"required":["issues"],"title":"ErrorResponse400ParameterInvalidContext"},"ErrorResponse_400_parameter_invalid":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/ErrorResponse400ParameterInvalidCode"},"docs_url":{"type":"string"},"message":{"type":"string"},"context":{"$ref":"#/components/schemas/ErrorResponse400ParameterInvalidContext"}},"required":["code","docs_url","message"],"title":"ErrorResponse_400_parameter_invalid"},"ErrorResponse403AccountNotEligibleAccountNotProvisionedAccountVerificationPendingForbiddenCode":{"type":"string","enum":["account_not_eligible","account_not_provisioned","account_verification_pending","forbidden"],"title":"ErrorResponse403AccountNotEligibleAccountNotProvisionedAccountVerificationPendingForbiddenCode"},"ErrorResponse_403_account_not_eligible_account_not_provisioned_account_verification_pending_forbidden":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/ErrorResponse403AccountNotEligibleAccountNotProvisionedAccountVerificationPendingForbiddenCode"},"docs_url":{"type":"string"},"message":{"type":"string"}},"required":["code","docs_url","message"],"title":"ErrorResponse_403_account_not_eligible_account_not_provisioned_account_verification_pending_forbidden"},"V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0AddressFormat":{"type":"string","enum":["ethereum","solana"],"description":"Address syntax family. `ethereum` covers every EVM chain (Ethereum, Base, Polygon, Arbitrum, etc.); per-chain authorization is enforced separately via the account's chain entitlements.","title":"V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0AddressFormat"},"V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0Kind":{"type":"string","enum":["wallet"],"description":"Discriminator: this is a customer-owned blockchain address.","title":"V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0Kind"},"V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0NetworksItemsChain":{"type":"string","enum":["arbitrum","avalanche","base","binance-smart-chain","core","ethereum","fraxtal","gnosis","immutable","injective","katana","mantle","monad","plume","polygon-pos","solana","sui"],"description":"Network the wallet is registered on (kebab-case public network id).","title":"V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0NetworksItemsChain"},"V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItemsType":{"type":"string","enum":["instant_settlement","mint","rewards"],"description":"Entitlement type. `mint` is the mint capability gated by the per-chain compliance scan; `instant_settlement` is the instant-settlement whitelist; `rewards` is rewards eligibility.","title":"V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItemsType"},"V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItemsStatus":{"type":"string","enum":["approved","conditionally_approved","pending_approval","pending_removal","rejected","removed"],"description":"Entitlement status. `pending_approval` is requested and under Agora review; `approved` is active. `conditionally_approved` applies to `mint` only: the address is usable now (screening and whitelisting are auto-initiated) while final approval is still pending internally. `instant_settlement` and `rewards` stay `pending_approval` until reviewed. The API never auto-approves.","title":"V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItemsStatus"},"V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItems":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItemsType","description":"Entitlement type. `mint` is the mint capability gated by the per-chain compliance scan; `instant_settlement` is the instant-settlement whitelist; `rewards` is rewards eligibility."},"status":{"$ref":"#/components/schemas/V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItemsStatus","description":"Entitlement status. `pending_approval` is requested and under Agora review; `approved` is active. `conditionally_approved` applies to `mint` only: the address is usable now (screening and whitelisting are auto-initiated) while final approval is still pending internally. `instant_settlement` and `rewards` stay `pending_approval` until reviewed. The API never auto-approves."}},"required":["type","status"],"title":"V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItems"},"V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0NetworksItems":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0NetworksItemsChain","description":"Network the wallet is registered on (kebab-case public network id)."},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItems"},"description":"Entitlement states on this network, one per type the wallet holds on the chain."}},"required":["chain","entitlements"],"description":"Per-network entitlement state for the wallet.","title":"V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0NetworksItems"},"AccountsGetbyidResponse2000":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Stable UUID identifying this account; safe to cache or display."},"address":{"type":"string","description":"On-chain address. EIP-55 checksummed for EVM (`ethereum`), base58 for Solana."},"addressFormat":{"$ref":"#/components/schemas/V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0AddressFormat","description":"Address syntax family. `ethereum` covers every EVM chain (Ethereum, Base, Polygon, Arbitrum, etc.); per-chain authorization is enforced separately via the account's chain entitlements."},"createdAt":{"type":"string","format":"date-time","description":"ISO-8601 UTC timestamp when this address was added to the org."},"kind":{"$ref":"#/components/schemas/V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0Kind","description":"Discriminator: this is a customer-owned blockchain address."},"name":{"type":"string","description":"User-set label. Free-form; may be empty if the user hasn't set one."},"networks":{"type":"array","items":{"$ref":"#/components/schemas/V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf0NetworksItems"},"description":"The networks this address is registered on, each with its per-type entitlement states."}},"required":["id","address","addressFormat","createdAt","kind","name","networks"],"description":"Customer-owned blockchain address (CustomerAddress).","title":"AccountsGetbyidResponse2000"},"V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf1Currency":{"type":"string","enum":["usd"],"description":"Settlement currency. Today only `usd`; will extend as new currencies launch.","title":"V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf1Currency"},"V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf1Kind":{"type":"string","enum":["bank"],"description":"Discriminator: this is a customer-owned bank account.","title":"V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf1Kind"},"AccountsGetbyidResponse2001":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Stable UUID identifying this account; safe to cache or display."},"accountNumber":{"type":"string","minLength":1,"description":"Full bank account number."},"bankName":{"type":"string","description":"Name of the receiving bank."},"beneficiary":{"type":"string","description":"Account-holder name on the wire. Part of the account's identity: distinguishes accounts that share a routing + account number (e.g. omnibus/custodian accounts holding several funds under one account number)."},"createdAt":{"type":"string","format":"date-time","description":"ISO-8601 UTC timestamp when this account was added to the org."},"currency":{"$ref":"#/components/schemas/V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf1Currency","description":"Settlement currency. Today only `usd`; will extend as new currencies launch."},"kind":{"$ref":"#/components/schemas/V0AccountsAccountIdGetResponsesContentApplicationJsonSchemaOneOf1Kind","description":"Discriminator: this is a customer-owned bank account."},"name":{"type":"string","description":"User-set label. Free-form; may be empty if the user hasn't set one."},"routingNumber":{"type":"string","description":"ABA routing number identifying the receiving bank. A public bank identifier, returned in full."}},"required":["id","accountNumber","bankName","beneficiary","createdAt","currency","kind","name","routingNumber"],"description":"Customer-owned bank account (WireDetail).","title":"AccountsGetbyidResponse2001"},"accounts_getbyid_Response_200":{"oneOf":[{"$ref":"#/components/schemas/AccountsGetbyidResponse2000"},{"$ref":"#/components/schemas/AccountsGetbyidResponse2001"}],"title":"accounts_getbyid_Response_200"},"ErrorResponse404AccountNotFoundNotFoundCode":{"type":"string","enum":["account_not_found","not_found"],"title":"ErrorResponse404AccountNotFoundNotFoundCode"},"ErrorResponse_404_account_not_found_not_found":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/ErrorResponse404AccountNotFoundNotFoundCode"},"docs_url":{"type":"string"},"message":{"type":"string"}},"required":["code","docs_url","message"],"title":"ErrorResponse_404_account_not_found_not_found"},"V0AccountsPostRequestBodyContentApplicationJsonSchemaOneOf0Kind":{"type":"string","enum":["wallet"],"description":"Discriminator: register a customer-owned blockchain address.","title":"V0AccountsPostRequestBodyContentApplicationJsonSchemaOneOf0Kind"},"V0AccountsPostRequestBodyContentApplicationJsonSchemaOneOf0NetworksItems":{"type":"string","enum":["arbitrum","avalanche","base","binance-smart-chain","core","ethereum","fraxtal","gnosis","immutable","injective","katana","mantle","monad","plume","polygon-pos","solana","sui"],"description":"Blockchain network identifier. Use this to filter or group supply data by chain. Values are stable; new networks may be added but existing ones will not be renamed.","title":"V0AccountsPostRequestBodyContentApplicationJsonSchemaOneOf0NetworksItems"},"AccountsCreateRequest0":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/V0AccountsPostRequestBodyContentApplicationJsonSchemaOneOf0Kind","description":"Discriminator: register a customer-owned blockchain address."},"address":{"type":"string","description":"On-chain address to register. EVM hex is normalized to lowercase; Solana base58 is kept verbatim."},"name":{"type":"string","maxLength":200,"description":"User-set label. Free-form; max 200 characters."},"networks":{"type":"array","items":{"$ref":"#/components/schemas/V0AccountsPostRequestBodyContentApplicationJsonSchemaOneOf0NetworksItems"},"description":"Networks to register this address on. Each must be compatible with the address format."}},"required":["kind","address","networks"],"title":"AccountsCreateRequest0"},"V0AccountsPostRequestBodyContentApplicationJsonSchemaOneOf1Kind":{"type":"string","enum":["bank"],"description":"Discriminator: register a customer-owned bank account.","title":"V0AccountsPostRequestBodyContentApplicationJsonSchemaOneOf1Kind"},"AccountsCreateRequest1":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/V0AccountsPostRequestBodyContentApplicationJsonSchemaOneOf1Kind","description":"Discriminator: register a customer-owned bank account."},"accountNumber":{"type":"string","pattern":"^[A-Z0-9\\s]+$","description":"Bank account number. 6-100 uppercase letters and digits; embedded spaces are ignored."},"bankName":{"type":"string","description":"Name of the receiving bank."},"beneficiary":{"type":"string","description":"Account-holder name on the wire. Part of the account's identity (with routing + account number): omnibus/custodian accounts share one account number across beneficiaries, so this disambiguates them."},"name":{"type":"string","maxLength":200,"description":"User-set label. Free-form; max 200 characters."},"routingNumber":{"type":"string","pattern":"^[A-Z0-9\\s]+$","description":"ABA routing number (US) or SWIFT/BIC (international). 6-100 uppercase letters and digits; embedded spaces are ignored."}},"required":["kind","accountNumber","bankName","beneficiary","routingNumber"],"title":"AccountsCreateRequest1"},"accounts_create_Request":{"oneOf":[{"$ref":"#/components/schemas/AccountsCreateRequest0"},{"$ref":"#/components/schemas/AccountsCreateRequest1"}],"title":"accounts_create_Request"},"V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0AddressFormat":{"type":"string","enum":["ethereum","solana"],"description":"Address syntax family. `ethereum` covers every EVM chain (Ethereum, Base, Polygon, Arbitrum, etc.); per-chain authorization is enforced separately via the account's chain entitlements.","title":"V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0AddressFormat"},"V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0Kind":{"type":"string","enum":["wallet"],"description":"Discriminator: this is a customer-owned blockchain address.","title":"V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0Kind"},"V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0NetworksItemsChain":{"type":"string","enum":["arbitrum","avalanche","base","binance-smart-chain","core","ethereum","fraxtal","gnosis","immutable","injective","katana","mantle","monad","plume","polygon-pos","solana","sui"],"description":"Network the wallet is registered on (kebab-case public network id).","title":"V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0NetworksItemsChain"},"V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItemsType":{"type":"string","enum":["instant_settlement","mint","rewards"],"description":"Entitlement type. `mint` is the mint capability gated by the per-chain compliance scan; `instant_settlement` is the instant-settlement whitelist; `rewards` is rewards eligibility.","title":"V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItemsType"},"V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItemsStatus":{"type":"string","enum":["approved","conditionally_approved","pending_approval","pending_removal","rejected","removed"],"description":"Entitlement status. `pending_approval` is requested and under Agora review; `approved` is active. `conditionally_approved` applies to `mint` only: the address is usable now (screening and whitelisting are auto-initiated) while final approval is still pending internally. `instant_settlement` and `rewards` stay `pending_approval` until reviewed. The API never auto-approves.","title":"V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItemsStatus"},"V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItems":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItemsType","description":"Entitlement type. `mint` is the mint capability gated by the per-chain compliance scan; `instant_settlement` is the instant-settlement whitelist; `rewards` is rewards eligibility."},"status":{"$ref":"#/components/schemas/V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItemsStatus","description":"Entitlement status. `pending_approval` is requested and under Agora review; `approved` is active. `conditionally_approved` applies to `mint` only: the address is usable now (screening and whitelisting are auto-initiated) while final approval is still pending internally. `instant_settlement` and `rewards` stay `pending_approval` until reviewed. The API never auto-approves."}},"required":["type","status"],"title":"V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItems"},"V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0NetworksItems":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0NetworksItemsChain","description":"Network the wallet is registered on (kebab-case public network id)."},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItems"},"description":"Entitlement states on this network, one per type the wallet holds on the chain."}},"required":["chain","entitlements"],"description":"Per-network entitlement state for the wallet.","title":"V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0NetworksItems"},"AccountsCreateResponse2010":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Stable UUID identifying this account; safe to cache or display."},"address":{"type":"string","description":"On-chain address. EIP-55 checksummed for EVM (`ethereum`), base58 for Solana."},"addressFormat":{"$ref":"#/components/schemas/V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0AddressFormat","description":"Address syntax family. `ethereum` covers every EVM chain (Ethereum, Base, Polygon, Arbitrum, etc.); per-chain authorization is enforced separately via the account's chain entitlements."},"createdAt":{"type":"string","format":"date-time","description":"ISO-8601 UTC timestamp when this address was added to the org."},"kind":{"$ref":"#/components/schemas/V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0Kind","description":"Discriminator: this is a customer-owned blockchain address."},"name":{"type":"string","description":"User-set label. Free-form; may be empty if the user hasn't set one."},"networks":{"type":"array","items":{"$ref":"#/components/schemas/V0AccountsPostResponsesContentApplicationJsonSchemaOneOf0NetworksItems"},"description":"The networks this address is registered on, each with its per-type entitlement states."}},"required":["id","address","addressFormat","createdAt","kind","name","networks"],"description":"Customer-owned blockchain address (CustomerAddress).","title":"AccountsCreateResponse2010"},"V0AccountsPostResponsesContentApplicationJsonSchemaOneOf1Currency":{"type":"string","enum":["usd"],"description":"Settlement currency. Today only `usd`; will extend as new currencies launch.","title":"V0AccountsPostResponsesContentApplicationJsonSchemaOneOf1Currency"},"V0AccountsPostResponsesContentApplicationJsonSchemaOneOf1Kind":{"type":"string","enum":["bank"],"description":"Discriminator: this is a customer-owned bank account.","title":"V0AccountsPostResponsesContentApplicationJsonSchemaOneOf1Kind"},"AccountsCreateResponse2011":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Stable UUID identifying this account; safe to cache or display."},"accountNumber":{"type":"string","minLength":1,"description":"Full bank account number."},"bankName":{"type":"string","description":"Name of the receiving bank."},"beneficiary":{"type":"string","description":"Account-holder name on the wire. Part of the account's identity: distinguishes accounts that share a routing + account number (e.g. omnibus/custodian accounts holding several funds under one account number)."},"createdAt":{"type":"string","format":"date-time","description":"ISO-8601 UTC timestamp when this account was added to the org."},"currency":{"$ref":"#/components/schemas/V0AccountsPostResponsesContentApplicationJsonSchemaOneOf1Currency","description":"Settlement currency. Today only `usd`; will extend as new currencies launch."},"kind":{"$ref":"#/components/schemas/V0AccountsPostResponsesContentApplicationJsonSchemaOneOf1Kind","description":"Discriminator: this is a customer-owned bank account."},"name":{"type":"string","description":"User-set label. Free-form; may be empty if the user hasn't set one."},"routingNumber":{"type":"string","description":"ABA routing number identifying the receiving bank. A public bank identifier, returned in full."}},"required":["id","accountNumber","bankName","beneficiary","createdAt","currency","kind","name","routingNumber"],"description":"Customer-owned bank account (WireDetail).","title":"AccountsCreateResponse2011"},"accounts_create_Response_201":{"oneOf":[{"$ref":"#/components/schemas/AccountsCreateResponse2010"},{"$ref":"#/components/schemas/AccountsCreateResponse2011"}],"title":"accounts_create_Response_201"},"ErrorResponse409AccountAlreadyExistsCode":{"type":"string","enum":["account_already_exists"],"title":"ErrorResponse409AccountAlreadyExistsCode"},"ErrorResponse_409_account_already_exists":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/ErrorResponse409AccountAlreadyExistsCode"},"docs_url":{"type":"string"},"message":{"type":"string"}},"required":["code","docs_url","message"],"title":"ErrorResponse_409_account_already_exists"},"V0AccountsAccountIdPutRequestBodyContentApplicationJsonSchemaOperation":{"type":"string","enum":["setName","addNetwork","requestEntitlement"],"title":"V0AccountsAccountIdPutRequestBodyContentApplicationJsonSchemaOperation"},"V0AccountsAccountIdPutRequestBodyContentApplicationJsonSchemaNetwork":{"type":"string","enum":["arbitrum","avalanche","base","binance-smart-chain","core","ethereum","fraxtal","gnosis","immutable","injective","katana","mantle","monad","plume","polygon-pos","solana","sui"],"title":"V0AccountsAccountIdPutRequestBodyContentApplicationJsonSchemaNetwork"},"V0AccountsAccountIdPutRequestBodyContentApplicationJsonSchemaEntitlement":{"type":"string","enum":["instant_settlement"],"description":"Entitlement to request. Moves to pending_approval; granting stays Agora-side.","title":"V0AccountsAccountIdPutRequestBodyContentApplicationJsonSchemaEntitlement"},"V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0AddressFormat":{"type":"string","enum":["ethereum","solana"],"description":"Address syntax family. `ethereum` covers every EVM chain (Ethereum, Base, Polygon, Arbitrum, etc.); per-chain authorization is enforced separately via the account's chain entitlements.","title":"V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0AddressFormat"},"V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0Kind":{"type":"string","enum":["wallet"],"description":"Discriminator: this is a customer-owned blockchain address.","title":"V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0Kind"},"V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0NetworksItemsChain":{"type":"string","enum":["arbitrum","avalanche","base","binance-smart-chain","core","ethereum","fraxtal","gnosis","immutable","injective","katana","mantle","monad","plume","polygon-pos","solana","sui"],"description":"Network the wallet is registered on (kebab-case public network id).","title":"V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0NetworksItemsChain"},"V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItemsType":{"type":"string","enum":["instant_settlement","mint","rewards"],"description":"Entitlement type. `mint` is the mint capability gated by the per-chain compliance scan; `instant_settlement` is the instant-settlement whitelist; `rewards` is rewards eligibility.","title":"V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItemsType"},"V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItemsStatus":{"type":"string","enum":["approved","conditionally_approved","pending_approval","pending_removal","rejected","removed"],"description":"Entitlement status. `pending_approval` is requested and under Agora review; `approved` is active. `conditionally_approved` applies to `mint` only: the address is usable now (screening and whitelisting are auto-initiated) while final approval is still pending internally. `instant_settlement` and `rewards` stay `pending_approval` until reviewed. The API never auto-approves.","title":"V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItemsStatus"},"V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItems":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItemsType","description":"Entitlement type. `mint` is the mint capability gated by the per-chain compliance scan; `instant_settlement` is the instant-settlement whitelist; `rewards` is rewards eligibility."},"status":{"$ref":"#/components/schemas/V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItemsStatus","description":"Entitlement status. `pending_approval` is requested and under Agora review; `approved` is active. `conditionally_approved` applies to `mint` only: the address is usable now (screening and whitelisting are auto-initiated) while final approval is still pending internally. `instant_settlement` and `rewards` stay `pending_approval` until reviewed. The API never auto-approves."}},"required":["type","status"],"title":"V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItems"},"V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0NetworksItems":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0NetworksItemsChain","description":"Network the wallet is registered on (kebab-case public network id)."},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0NetworksItemsEntitlementsItems"},"description":"Entitlement states on this network, one per type the wallet holds on the chain."}},"required":["chain","entitlements"],"description":"Per-network entitlement state for the wallet.","title":"V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0NetworksItems"},"AccountsUpdateResponse2000":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Stable UUID identifying this account; safe to cache or display."},"address":{"type":"string","description":"On-chain address. EIP-55 checksummed for EVM (`ethereum`), base58 for Solana."},"addressFormat":{"$ref":"#/components/schemas/V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0AddressFormat","description":"Address syntax family. `ethereum` covers every EVM chain (Ethereum, Base, Polygon, Arbitrum, etc.); per-chain authorization is enforced separately via the account's chain entitlements."},"createdAt":{"type":"string","format":"date-time","description":"ISO-8601 UTC timestamp when this address was added to the org."},"kind":{"$ref":"#/components/schemas/V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0Kind","description":"Discriminator: this is a customer-owned blockchain address."},"name":{"type":"string","description":"User-set label. Free-form; may be empty if the user hasn't set one."},"networks":{"type":"array","items":{"$ref":"#/components/schemas/V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf0NetworksItems"},"description":"The networks this address is registered on, each with its per-type entitlement states."}},"required":["id","address","addressFormat","createdAt","kind","name","networks"],"description":"Customer-owned blockchain address (CustomerAddress).","title":"AccountsUpdateResponse2000"},"V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf1Currency":{"type":"string","enum":["usd"],"description":"Settlement currency. Today only `usd`; will extend as new currencies launch.","title":"V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf1Currency"},"V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf1Kind":{"type":"string","enum":["bank"],"description":"Discriminator: this is a customer-owned bank account.","title":"V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf1Kind"},"AccountsUpdateResponse2001":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Stable UUID identifying this account; safe to cache or display."},"accountNumber":{"type":"string","minLength":1,"description":"Full bank account number."},"bankName":{"type":"string","description":"Name of the receiving bank."},"beneficiary":{"type":"string","description":"Account-holder name on the wire. Part of the account's identity: distinguishes accounts that share a routing + account number (e.g. omnibus/custodian accounts holding several funds under one account number)."},"createdAt":{"type":"string","format":"date-time","description":"ISO-8601 UTC timestamp when this account was added to the org."},"currency":{"$ref":"#/components/schemas/V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf1Currency","description":"Settlement currency. Today only `usd`; will extend as new currencies launch."},"kind":{"$ref":"#/components/schemas/V0AccountsAccountIdPutResponsesContentApplicationJsonSchemaOneOf1Kind","description":"Discriminator: this is a customer-owned bank account."},"name":{"type":"string","description":"User-set label. Free-form; may be empty if the user hasn't set one."},"routingNumber":{"type":"string","description":"ABA routing number identifying the receiving bank. A public bank identifier, returned in full."}},"required":["id","accountNumber","bankName","beneficiary","createdAt","currency","kind","name","routingNumber"],"description":"Customer-owned bank account (WireDetail).","title":"AccountsUpdateResponse2001"},"accounts_update_Response_200":{"oneOf":[{"$ref":"#/components/schemas/AccountsUpdateResponse2000"},{"$ref":"#/components/schemas/AccountsUpdateResponse2001"}],"title":"accounts_update_Response_200"},"ErrorResponse400EntitlementNotRequestableParameterInvalidCode":{"type":"string","enum":["entitlement_not_requestable","parameter_invalid"],"title":"ErrorResponse400EntitlementNotRequestableParameterInvalidCode"},"ErrorResponse400EntitlementNotRequestableParameterInvalidContextIssuesItems":{"type":"object","properties":{"field":{"type":"string"},"message":{"type":"string"}},"required":["field","message"],"title":"ErrorResponse400EntitlementNotRequestableParameterInvalidContextIssuesItems"},"ErrorResponse400EntitlementNotRequestableParameterInvalidContext":{"type":"object","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ErrorResponse400EntitlementNotRequestableParameterInvalidContextIssuesItems"}}},"required":["issues"],"title":"ErrorResponse400EntitlementNotRequestableParameterInvalidContext"},"ErrorResponse_400_entitlement_not_requestable_parameter_invalid":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/ErrorResponse400EntitlementNotRequestableParameterInvalidCode"},"docs_url":{"type":"string"},"message":{"type":"string"},"context":{"$ref":"#/components/schemas/ErrorResponse400EntitlementNotRequestableParameterInvalidContext"}},"required":["code","docs_url","message"],"title":"ErrorResponse_400_entitlement_not_requestable_parameter_invalid"},"V0RoutesGetParametersFromCurrency":{"type":"string","enum":["ausd","usd","usdc"],"description":"Return only routes that accept this currency on deposit, matched against the instructions' `supportedCurrencies`.","title":"V0RoutesGetParametersFromCurrency"},"V0RoutesGetParametersDirectionSchemaItems":{"type":"string","enum":["mint-fiat","mint-stablecoin","redeem-fiat","redeem-stablecoin"],"title":"V0RoutesGetParametersDirectionSchemaItems"},"V0RoutesGetParametersToChainSchemaItems":{"type":"string","enum":["arbitrum","avalanche","base","ethereum","immutable","monad","polygon-pos","solana"],"title":"V0RoutesGetParametersToChainSchemaItems"},"V0RoutesGetParametersToCurrency":{"type":"string","enum":["ausd","usd","usdc"],"description":"Return only routes with this destination currency.","title":"V0RoutesGetParametersToCurrency"},"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsDirection":{"type":"string","enum":["mint-fiat","mint-stablecoin","redeem-fiat","redeem-stablecoin"],"description":"Which of the four flows this route is.","title":"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsDirection"},"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsToCurrency":{"type":"string","enum":["ausd","usd","usdc"],"description":"Currency identifier.","title":"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsToCurrency"},"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsToChain":{"type":"string","enum":["arbitrum","avalanche","base","ethereum","immutable","monad","polygon-pos","solana"],"description":"Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana).","title":"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsToChain"},"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsTo":{"type":"object","properties":{"currency":{"$ref":"#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsToCurrency","description":"Currency identifier."},"accountId":{"type":"string","format":"uuid"},"chain":{"$ref":"#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsToChain","description":"Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana)."}},"required":["currency","accountId"],"title":"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsTo"},"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItemsOneOf0SupportedCurrenciesItems":{"type":"string","enum":["ausd","usd","usdc"],"description":"Currency identifier.","title":"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItemsOneOf0SupportedCurrenciesItems"},"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItems0":{"type":"object","properties":{"memo":{"type":"string","description":"Memo / reference field that uniquely identifies the route on the inbound wire."},"beneficiaryName":{"type":"string"},"beneficiaryAddress":{"type":"string"},"accountNumber":{"type":"string"},"bankName":{"type":"string"},"bankAddress":{"type":"string"},"swiftCode":{"type":"string"},"routingNumber":{"type":"string"},"supportedCurrencies":{"type":"array","items":{"$ref":"#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItemsOneOf0SupportedCurrenciesItems"},"description":"Currencies this wire instruction accepts"}},"required":["memo","beneficiaryName","beneficiaryAddress","accountNumber","bankName","bankAddress","routingNumber","supportedCurrencies"],"title":"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItems0"},"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItemsOneOf1Chain":{"type":"string","enum":["arbitrum","avalanche","base","ethereum","immutable","monad","polygon-pos","solana"],"description":"Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana).","title":"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItemsOneOf1Chain"},"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItemsOneOf1SupportedCurrenciesItems":{"type":"string","enum":["ausd","usd","usdc"],"description":"Currency identifier.","title":"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItemsOneOf1SupportedCurrenciesItems"},"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItems1":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItemsOneOf1Chain","description":"Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana)."},"depositAddress":{"type":"string"},"supportedCurrencies":{"type":"array","items":{"$ref":"#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItemsOneOf1SupportedCurrenciesItems"},"description":"Currencies the deposit address accepts"}},"required":["chain","depositAddress","supportedCurrencies"],"title":"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItems1"},"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItems":{"oneOf":[{"$ref":"#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItems0"},{"$ref":"#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItems1"}],"title":"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItems"},"V0RoutesGetResponsesContentApplicationJsonSchemaDataItems":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Deterministic route UUID; same canonical inputs always derive the same id."},"name":{"type":["string","null"],"description":"User-set label, or null when unset."},"createdAt":{"type":"string","format":"date-time"},"direction":{"$ref":"#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsDirection","description":"Which of the four flows this route is."},"to":{"$ref":"#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsTo"},"instructions":{"type":"array","items":{"$ref":"#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItems"},"description":"Next-step instructions. Mint-fiat: one wire instruction with memo + beneficiary. On-chain directions: one deposit address per supported chain, alphabetical by chain."}},"required":["id","createdAt","direction","to","instructions"],"title":"V0RoutesGetResponsesContentApplicationJsonSchemaDataItems"},"routes_get_Response_200":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItems"},"description":"Page of routes, newest first, tie-broken by id."},"nextCursor":{"type":["string","null"],"description":"Opaque cursor for the next page. Pass back verbatim as the `cursor` query param to fetch the next page; null when no more results."}},"required":["data","nextCursor"],"title":"routes_get_Response_200"},"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaDirection":{"type":"string","enum":["mint-fiat","mint-stablecoin","redeem-fiat","redeem-stablecoin"],"description":"Which of the four flows this route is.","title":"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaDirection"},"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaToCurrency":{"type":"string","enum":["ausd","usd","usdc"],"description":"Currency identifier.","title":"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaToCurrency"},"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaToChain":{"type":"string","enum":["arbitrum","avalanche","base","ethereum","immutable","monad","polygon-pos","solana"],"description":"Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana).","title":"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaToChain"},"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaTo":{"type":"object","properties":{"currency":{"$ref":"#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaToCurrency","description":"Currency identifier."},"accountId":{"type":"string","format":"uuid"},"chain":{"$ref":"#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaToChain","description":"Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana)."}},"required":["currency","accountId"],"title":"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaTo"},"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItemsOneOf0SupportedCurrenciesItems":{"type":"string","enum":["ausd","usd","usdc"],"description":"Currency identifier.","title":"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItemsOneOf0SupportedCurrenciesItems"},"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItems0":{"type":"object","properties":{"memo":{"type":"string","description":"Memo / reference field that uniquely identifies the route on the inbound wire."},"beneficiaryName":{"type":"string"},"beneficiaryAddress":{"type":"string"},"accountNumber":{"type":"string"},"bankName":{"type":"string"},"bankAddress":{"type":"string"},"swiftCode":{"type":"string"},"routingNumber":{"type":"string"},"supportedCurrencies":{"type":"array","items":{"$ref":"#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItemsOneOf0SupportedCurrenciesItems"},"description":"Currencies this wire instruction accepts"}},"required":["memo","beneficiaryName","beneficiaryAddress","accountNumber","bankName","bankAddress","routingNumber","supportedCurrencies"],"title":"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItems0"},"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1Chain":{"type":"string","enum":["arbitrum","avalanche","base","ethereum","immutable","monad","polygon-pos","solana"],"description":"Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana).","title":"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1Chain"},"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1SupportedCurrenciesItems":{"type":"string","enum":["ausd","usd","usdc"],"description":"Currency identifier.","title":"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1SupportedCurrenciesItems"},"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItems1":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1Chain","description":"Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana)."},"depositAddress":{"type":"string"},"supportedCurrencies":{"type":"array","items":{"$ref":"#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1SupportedCurrenciesItems"},"description":"Currencies the deposit address accepts"}},"required":["chain","depositAddress","supportedCurrencies"],"title":"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItems1"},"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItems":{"oneOf":[{"$ref":"#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItems0"},{"$ref":"#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItems1"}],"title":"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItems"},"routes_getbyid_Response_200":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Deterministic route UUID; same canonical inputs always derive the same id."},"name":{"type":["string","null"],"description":"User-set label, or null when unset."},"createdAt":{"type":"string","format":"date-time"},"direction":{"$ref":"#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaDirection","description":"Which of the four flows this route is."},"to":{"$ref":"#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaTo"},"instructions":{"type":"array","items":{"$ref":"#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItems"},"description":"Next-step instructions. Mint-fiat: one wire instruction with memo + beneficiary. On-chain directions: one deposit address per supported chain, alphabetical by chain."}},"required":["id","createdAt","direction","to","instructions"],"title":"routes_getbyid_Response_200"},"ErrorResponse404NotFoundRouteNotFoundCode":{"type":"string","enum":["not_found","route_not_found"],"title":"ErrorResponse404NotFoundRouteNotFoundCode"},"ErrorResponse_404_not_found_route_not_found":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/ErrorResponse404NotFoundRouteNotFoundCode"},"docs_url":{"type":"string"},"message":{"type":"string"}},"required":["code","docs_url","message"],"title":"ErrorResponse_404_not_found_route_not_found"},"V0RoutesPostRequestBodyContentApplicationJsonSchemaFromCurrency":{"type":"string","enum":["ausd","usd","usdc"],"description":"Source currency. `usd` (wire), or any accepted token.","title":"V0RoutesPostRequestBodyContentApplicationJsonSchemaFromCurrency"},"V0RoutesPostRequestBodyContentApplicationJsonSchemaFrom":{"type":"object","properties":{"currency":{"$ref":"#/components/schemas/V0RoutesPostRequestBodyContentApplicationJsonSchemaFromCurrency","description":"Source currency. `usd` (wire), or any accepted token."}},"required":["currency"],"title":"V0RoutesPostRequestBodyContentApplicationJsonSchemaFrom"},"V0RoutesPostRequestBodyContentApplicationJsonSchemaToCurrency":{"type":"string","enum":["ausd","usd","usdc"],"description":"Destination currency. `usd` (wire), or any accepted token.","title":"V0RoutesPostRequestBodyContentApplicationJsonSchemaToCurrency"},"V0RoutesPostRequestBodyContentApplicationJsonSchemaToChain":{"type":"string","enum":["arbitrum","avalanche","base","ethereum","immutable","monad","polygon-pos","solana"],"description":"Destination chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana).","title":"V0RoutesPostRequestBodyContentApplicationJsonSchemaToChain"},"V0RoutesPostRequestBodyContentApplicationJsonSchemaTo":{"type":"object","properties":{"currency":{"$ref":"#/components/schemas/V0RoutesPostRequestBodyContentApplicationJsonSchemaToCurrency","description":"Destination currency. `usd` (wire), or any accepted token."},"accountId":{"type":"string","format":"uuid"},"chain":{"$ref":"#/components/schemas/V0RoutesPostRequestBodyContentApplicationJsonSchemaToChain","description":"Destination chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana)."}},"required":["currency","accountId"],"title":"V0RoutesPostRequestBodyContentApplicationJsonSchemaTo"},"V0RoutesPostResponsesContentApplicationJsonSchemaDirection":{"type":"string","enum":["mint-fiat","mint-stablecoin","redeem-fiat","redeem-stablecoin"],"description":"Which of the four flows this route is.","title":"V0RoutesPostResponsesContentApplicationJsonSchemaDirection"},"V0RoutesPostResponsesContentApplicationJsonSchemaToCurrency":{"type":"string","enum":["ausd","usd","usdc"],"description":"Currency identifier.","title":"V0RoutesPostResponsesContentApplicationJsonSchemaToCurrency"},"V0RoutesPostResponsesContentApplicationJsonSchemaToChain":{"type":"string","enum":["arbitrum","avalanche","base","ethereum","immutable","monad","polygon-pos","solana"],"description":"Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana).","title":"V0RoutesPostResponsesContentApplicationJsonSchemaToChain"},"V0RoutesPostResponsesContentApplicationJsonSchemaTo":{"type":"object","properties":{"currency":{"$ref":"#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaToCurrency","description":"Currency identifier."},"accountId":{"type":"string","format":"uuid"},"chain":{"$ref":"#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaToChain","description":"Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana)."}},"required":["currency","accountId"],"title":"V0RoutesPostResponsesContentApplicationJsonSchemaTo"},"V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItemsOneOf0SupportedCurrenciesItems":{"type":"string","enum":["ausd","usd","usdc"],"description":"Currency identifier.","title":"V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItemsOneOf0SupportedCurrenciesItems"},"V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItems0":{"type":"object","properties":{"memo":{"type":"string","description":"Memo / reference field that uniquely identifies the route on the inbound wire."},"beneficiaryName":{"type":"string"},"beneficiaryAddress":{"type":"string"},"accountNumber":{"type":"string"},"bankName":{"type":"string"},"bankAddress":{"type":"string"},"swiftCode":{"type":"string"},"routingNumber":{"type":"string"},"supportedCurrencies":{"type":"array","items":{"$ref":"#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItemsOneOf0SupportedCurrenciesItems"},"description":"Currencies this wire instruction accepts"}},"required":["memo","beneficiaryName","beneficiaryAddress","accountNumber","bankName","bankAddress","routingNumber","supportedCurrencies"],"title":"V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItems0"},"V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1Chain":{"type":"string","enum":["arbitrum","avalanche","base","ethereum","immutable","monad","polygon-pos","solana"],"description":"Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana).","title":"V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1Chain"},"V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1SupportedCurrenciesItems":{"type":"string","enum":["ausd","usd","usdc"],"description":"Currency identifier.","title":"V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1SupportedCurrenciesItems"},"V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItems1":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1Chain","description":"Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana)."},"depositAddress":{"type":"string"},"supportedCurrencies":{"type":"array","items":{"$ref":"#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1SupportedCurrenciesItems"},"description":"Currencies the deposit address accepts"}},"required":["chain","depositAddress","supportedCurrencies"],"title":"V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItems1"},"V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItems":{"oneOf":[{"$ref":"#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItems0"},{"$ref":"#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItems1"}],"title":"V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItems"},"routes_create_Response_200":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Deterministic route UUID; same canonical inputs always derive the same id."},"name":{"type":["string","null"],"description":"User-set label, or null when unset."},"createdAt":{"type":"string","format":"date-time"},"direction":{"$ref":"#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaDirection","description":"Which of the four flows this route is."},"to":{"$ref":"#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaTo"},"instructions":{"type":"array","items":{"$ref":"#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItems"},"description":"Next-step instructions. Mint-fiat: one wire instruction with memo + beneficiary. On-chain directions: one deposit address per supported chain, alphabetical by chain."}},"required":["id","createdAt","direction","to","instructions"],"title":"routes_create_Response_200"},"ErrorResponse400ChainUnsupportedCurrencyUnsupportedDirectionUnsupportedParameterInvalidCode":{"type":"string","enum":["chain_unsupported","currency_unsupported","direction_unsupported","parameter_invalid"],"title":"ErrorResponse400ChainUnsupportedCurrencyUnsupportedDirectionUnsupportedParameterInvalidCode"},"ErrorResponse400ChainUnsupportedCurrencyUnsupportedDirectionUnsupportedParameterInvalidContextIssuesItems":{"type":"object","properties":{"field":{"type":"string"},"message":{"type":"string"}},"required":["field","message"],"title":"ErrorResponse400ChainUnsupportedCurrencyUnsupportedDirectionUnsupportedParameterInvalidContextIssuesItems"},"ErrorResponse400ChainUnsupportedCurrencyUnsupportedDirectionUnsupportedParameterInvalidContext":{"type":"object","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ErrorResponse400ChainUnsupportedCurrencyUnsupportedDirectionUnsupportedParameterInvalidContextIssuesItems"}}},"required":["issues"],"title":"ErrorResponse400ChainUnsupportedCurrencyUnsupportedDirectionUnsupportedParameterInvalidContext"},"ErrorResponse_400_chain_unsupported_currency_unsupported_direction_unsupported_parameter_invalid":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/ErrorResponse400ChainUnsupportedCurrencyUnsupportedDirectionUnsupportedParameterInvalidCode"},"docs_url":{"type":"string"},"message":{"type":"string"},"context":{"$ref":"#/components/schemas/ErrorResponse400ChainUnsupportedCurrencyUnsupportedDirectionUnsupportedParameterInvalidContext"}},"required":["code","docs_url","message"],"title":"ErrorResponse_400_chain_unsupported_currency_unsupported_direction_unsupported_parameter_invalid"},"ErrorResponse409RouteAlreadyExistsCode":{"type":"string","enum":["route_already_exists"],"title":"ErrorResponse409RouteAlreadyExistsCode"},"ErrorResponse409RouteAlreadyExistsContext":{"type":"object","properties":{"routeId":{"type":"string","format":"uuid"}},"required":["routeId"],"title":"ErrorResponse409RouteAlreadyExistsContext"},"ErrorResponse_409_route_already_exists":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/ErrorResponse409RouteAlreadyExistsCode"},"docs_url":{"type":"string"},"message":{"type":"string"},"context":{"$ref":"#/components/schemas/ErrorResponse409RouteAlreadyExistsContext"}},"required":["code","docs_url","message"],"title":"ErrorResponse_409_route_already_exists"},"ErrorResponse503RouteCreationUnavailableCode":{"type":"string","enum":["route_creation_unavailable"],"title":"ErrorResponse503RouteCreationUnavailableCode"},"ErrorResponse_503_route_creation_unavailable":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/ErrorResponse503RouteCreationUnavailableCode"},"docs_url":{"type":"string"},"message":{"type":"string"}},"required":["code","docs_url","message"],"title":"ErrorResponse_503_route_creation_unavailable"},"V0TransactionsGetParametersIsInstantSettlement":{"type":"string","enum":["true","false"],"description":"Return only transactions whose settlement path matches. `true` is the instant-settlement path; `false` is standard settlement, which includes movement types that have no settlement path of their own, such as rewards and returns.","title":"V0TransactionsGetParametersIsInstantSettlement"},"V0TransactionsGetParametersRecipientChainSchemaItems":{"type":"string","enum":["arbitrum","avalanche","base","ethereum","immutable","monad","polygon-pos","solana"],"title":"V0TransactionsGetParametersRecipientChainSchemaItems"},"V0TransactionsGetParametersSourceChainSchemaItems":{"type":"string","enum":["arbitrum","avalanche","base","ethereum","immutable","monad","polygon-pos","solana"],"title":"V0TransactionsGetParametersSourceChainSchemaItems"},"V0TransactionsGetParametersTypeSchemaItems":{"type":"string","enum":["bridge","mint","redeem","return","reward","tokenConversion"],"title":"V0TransactionsGetParametersTypeSchemaItems"},"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipientOneOf0Kind":{"type":"string","enum":["bank"],"description":"Discriminator: the counterparty is a bank account.","title":"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipientOneOf0Kind"},"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipientOneOf0AmountsItems":{"type":"object","properties":{"amount":{"type":"string","description":"Decimal amount as a string (avoids floating-point precision loss)."},"currency":{"type":"string","description":"Currency code, e.g. `usd`, `ausd`, `usdc`."}},"required":["amount","currency"],"description":"A per-currency amount moved on one side of the transaction.","title":"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipientOneOf0AmountsItems"},"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipient0":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipientOneOf0Kind","description":"Discriminator: the counterparty is a bank account."},"accountId":{"type":["string","null"],"format":"uuid","description":"UUID of the customer account this counterparty maps to (same id as `/v0/accounts`), or null when the address is not a known account (e.g. the Agora side). Bank counterparties currently always return null; bank-to-account linkage is not derived yet."},"accountNumber":{"type":["string","null"],"description":"Bank account number. Null when unknown."},"bankName":{"type":["string","null"],"description":"Name of the financial institution, when known."},"name":{"type":["string","null"],"description":"Display label for the counterparty. The Agora side of a leg is labelled `\"Agora\"`."},"amounts":{"type":"array","items":{"$ref":"#/components/schemas/V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipientOneOf0AmountsItems"},"description":"Per-currency totals moved on this side of the transaction, one entry per currency."}},"required":["kind","accountId","accountNumber","bankName","name","amounts"],"title":"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipient0"},"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipientOneOf1Kind":{"type":"string","enum":["wallet"],"description":"Discriminator: the counterparty is a blockchain address.","title":"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipientOneOf1Kind"},"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipientOneOf1AmountsItems":{"type":"object","properties":{"amount":{"type":"string","description":"Decimal amount as a string (avoids floating-point precision loss)."},"currency":{"type":"string","description":"Currency code, e.g. `usd`, `ausd`, `usdc`."}},"required":["amount","currency"],"description":"A per-currency amount moved on one side of the transaction.","title":"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipientOneOf1AmountsItems"},"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipient1":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipientOneOf1Kind","description":"Discriminator: the counterparty is a blockchain address."},"accountId":{"type":["string","null"],"format":"uuid","description":"UUID of the customer account this counterparty maps to (same id as `/v0/accounts`), or null when the address is not a known account (e.g. the Agora side). Bank counterparties currently always return null; bank-to-account linkage is not derived yet."},"address":{"type":["string","null"],"description":"On-chain address, EIP-55 checksummed for EVM. Public on-chain data, returned in full. Null when unknown."},"chain":{"type":"string","description":"Chain the address is on, as the public-API network id (e.g. `ethereum`, `base`). Non-public/historical chains fall back to the raw chain id. Treated as an open enum; tolerate unknown values."},"name":{"type":["string","null"],"description":"Display label for the counterparty. The Agora side of a leg is labelled `\"Agora\"`."},"amounts":{"type":"array","items":{"$ref":"#/components/schemas/V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipientOneOf1AmountsItems"},"description":"Per-currency totals moved on this side of the transaction, one entry per currency."}},"required":["kind","accountId","address","chain","name","amounts"],"title":"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipient1"},"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipient":{"oneOf":[{"$ref":"#/components/schemas/V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipient0"},{"$ref":"#/components/schemas/V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipient1"}],"description":"The counterparty receiving value, with the totals it received.","title":"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipient"},"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSourceOneOf0Kind":{"type":"string","enum":["bank"],"description":"Discriminator: the counterparty is a bank account.","title":"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSourceOneOf0Kind"},"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSourceOneOf0AmountsItems":{"type":"object","properties":{"amount":{"type":"string","description":"Decimal amount as a string (avoids floating-point precision loss)."},"currency":{"type":"string","description":"Currency code, e.g. `usd`, `ausd`, `usdc`."}},"required":["amount","currency"],"description":"A per-currency amount moved on one side of the transaction.","title":"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSourceOneOf0AmountsItems"},"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSource0":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSourceOneOf0Kind","description":"Discriminator: the counterparty is a bank account."},"accountId":{"type":["string","null"],"format":"uuid","description":"UUID of the customer account this counterparty maps to (same id as `/v0/accounts`), or null when the address is not a known account (e.g. the Agora side). Bank counterparties currently always return null; bank-to-account linkage is not derived yet."},"accountNumber":{"type":["string","null"],"description":"Bank account number. Null when unknown."},"bankName":{"type":["string","null"],"description":"Name of the financial institution, when known."},"name":{"type":["string","null"],"description":"Display label for the counterparty. The Agora side of a leg is labelled `\"Agora\"`."},"amounts":{"type":"array","items":{"$ref":"#/components/schemas/V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSourceOneOf0AmountsItems"},"description":"Per-currency totals moved on this side of the transaction, one entry per currency."}},"required":["kind","accountId","accountNumber","bankName","name","amounts"],"title":"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSource0"},"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSourceOneOf1Kind":{"type":"string","enum":["wallet"],"description":"Discriminator: the counterparty is a blockchain address.","title":"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSourceOneOf1Kind"},"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSourceOneOf1AmountsItems":{"type":"object","properties":{"amount":{"type":"string","description":"Decimal amount as a string (avoids floating-point precision loss)."},"currency":{"type":"string","description":"Currency code, e.g. `usd`, `ausd`, `usdc`."}},"required":["amount","currency"],"description":"A per-currency amount moved on one side of the transaction.","title":"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSourceOneOf1AmountsItems"},"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSource1":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSourceOneOf1Kind","description":"Discriminator: the counterparty is a blockchain address."},"accountId":{"type":["string","null"],"format":"uuid","description":"UUID of the customer account this counterparty maps to (same id as `/v0/accounts`), or null when the address is not a known account (e.g. the Agora side). Bank counterparties currently always return null; bank-to-account linkage is not derived yet."},"address":{"type":["string","null"],"description":"On-chain address, EIP-55 checksummed for EVM. Public on-chain data, returned in full. Null when unknown."},"chain":{"type":"string","description":"Chain the address is on, as the public-API network id (e.g. `ethereum`, `base`). Non-public/historical chains fall back to the raw chain id. Treated as an open enum; tolerate unknown values."},"name":{"type":["string","null"],"description":"Display label for the counterparty. The Agora side of a leg is labelled `\"Agora\"`."},"amounts":{"type":"array","items":{"$ref":"#/components/schemas/V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSourceOneOf1AmountsItems"},"description":"Per-currency totals moved on this side of the transaction, one entry per currency."}},"required":["kind","accountId","address","chain","name","amounts"],"title":"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSource1"},"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSource":{"oneOf":[{"$ref":"#/components/schemas/V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSource0"},{"$ref":"#/components/schemas/V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSource1"}],"description":"The counterparty sending value, with the totals it sent.","title":"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSource"},"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItems":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Stable UUID identifying this transaction; pass to the detail endpoint to fetch legs."},"failureReason":{"type":["string","null"],"description":"Why a `tokenConversion` failed: `BLOCKED_WALLET`, `EXPIRED`, `INSUFFICIENT_FUNDS`, `OTHER`, `PROVIDER_UNAVAILABLE`, or `SLIPPAGE`. Null unless `type` is `tokenConversion` and `status` is `failed`. Open enum; tolerate unknown values."},"initiatedAt":{"type":"string","format":"date-time","description":"ISO-8601 timestamp of the first leg."},"isInstantSettlement":{"type":"boolean","description":"True if this transaction used Agora's instant-settlement path rather than standard settlement."},"legCount":{"type":"integer","description":"Number of customer-facing legs in this transaction."},"recipient":{"$ref":"#/components/schemas/V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsRecipient","description":"The counterparty receiving value, with the totals it received."},"refundFailureReason":{"type":["string","null"],"description":"Why returning a failed `tokenConversion`'s deposit also failed, so it will not come back on its own: `AMOUNT_TOO_LOW`, `MANUAL_REVIEW`, or `OTHER`. Null unless `type` is `tokenConversion` and `status` is `failed`. Open enum; tolerate unknown values."},"settledAt":{"type":["string","null"],"format":"date-time","description":"ISO-8601 timestamp when the transaction settled. Null until settled."},"source":{"$ref":"#/components/schemas/V0TransactionsGetResponsesContentApplicationJsonSchemaDataItemsSource","description":"The counterparty sending value, with the totals it sent."},"status":{"type":"string","description":"Lifecycle status. Always `settled` unless `type` is `tokenConversion`. A `tokenConversion` starts `pending` (deposit received, conversion not yet sent), moves to `submitted` (conversion sent on the destination chain), and ends `settled`, `refunded` (deposit returned), or `failed` (see `failureReason` and `refundFailureReason`). A `failed` conversion can still move to `settled` or `refunded`. Open enum; tolerate unknown values."},"type":{"type":"string","description":"Customer-facing transaction type: `mint`, `redeem`, `bridge`, `reward`, `return`, or `tokenConversion`. Treated as an open enum; tolerate unknown values."}},"required":["id","failureReason","initiatedAt","isInstantSettlement","legCount","recipient","refundFailureReason","settledAt","source","status","type"],"description":"Transaction summary. Fetch the detail endpoint with `id` for per-leg detail.","title":"V0TransactionsGetResponsesContentApplicationJsonSchemaDataItems"},"transactions_list_Response_200":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/V0TransactionsGetResponsesContentApplicationJsonSchemaDataItems"},"description":"Page of transactions, newest first (by initiated time, tie-broken by id)."},"nextCursor":{"type":["string","null"],"description":"Opaque cursor for the next page. Pass back verbatim as the `cursor` query param; null when no more results."}},"required":["data","nextCursor"],"title":"transactions_list_Response_200"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipientOneOf0Kind":{"type":"string","enum":["bank"],"description":"Discriminator: the counterparty is a bank account.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipientOneOf0Kind"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipientOneOf0AmountsItems":{"type":"object","properties":{"amount":{"type":"string","description":"Decimal amount as a string (avoids floating-point precision loss)."},"currency":{"type":"string","description":"Currency code, e.g. `usd`, `ausd`, `usdc`."}},"required":["amount","currency"],"description":"A per-currency amount moved on one side of the transaction.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipientOneOf0AmountsItems"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipient0":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipientOneOf0Kind","description":"Discriminator: the counterparty is a bank account."},"accountId":{"type":["string","null"],"format":"uuid","description":"UUID of the customer account this counterparty maps to (same id as `/v0/accounts`), or null when the address is not a known account (e.g. the Agora side). Bank counterparties currently always return null; bank-to-account linkage is not derived yet."},"accountNumber":{"type":["string","null"],"description":"Bank account number. Null when unknown."},"bankName":{"type":["string","null"],"description":"Name of the financial institution, when known."},"name":{"type":["string","null"],"description":"Display label for the counterparty. The Agora side of a leg is labelled `\"Agora\"`."},"amounts":{"type":"array","items":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipientOneOf0AmountsItems"},"description":"Per-currency totals moved on this side of the transaction, one entry per currency."}},"required":["kind","accountId","accountNumber","bankName","name","amounts"],"title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipient0"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipientOneOf1Kind":{"type":"string","enum":["wallet"],"description":"Discriminator: the counterparty is a blockchain address.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipientOneOf1Kind"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipientOneOf1AmountsItems":{"type":"object","properties":{"amount":{"type":"string","description":"Decimal amount as a string (avoids floating-point precision loss)."},"currency":{"type":"string","description":"Currency code, e.g. `usd`, `ausd`, `usdc`."}},"required":["amount","currency"],"description":"A per-currency amount moved on one side of the transaction.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipientOneOf1AmountsItems"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipient1":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipientOneOf1Kind","description":"Discriminator: the counterparty is a blockchain address."},"accountId":{"type":["string","null"],"format":"uuid","description":"UUID of the customer account this counterparty maps to (same id as `/v0/accounts`), or null when the address is not a known account (e.g. the Agora side). Bank counterparties currently always return null; bank-to-account linkage is not derived yet."},"address":{"type":["string","null"],"description":"On-chain address, EIP-55 checksummed for EVM. Public on-chain data, returned in full. Null when unknown."},"chain":{"type":"string","description":"Chain the address is on, as the public-API network id (e.g. `ethereum`, `base`). Non-public/historical chains fall back to the raw chain id. Treated as an open enum; tolerate unknown values."},"name":{"type":["string","null"],"description":"Display label for the counterparty. The Agora side of a leg is labelled `\"Agora\"`."},"amounts":{"type":"array","items":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipientOneOf1AmountsItems"},"description":"Per-currency totals moved on this side of the transaction, one entry per currency."}},"required":["kind","accountId","address","chain","name","amounts"],"title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipient1"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipient":{"oneOf":[{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipient0"},{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipient1"}],"description":"The counterparty receiving value, with the totals it received.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipient"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSourceOneOf0Kind":{"type":"string","enum":["bank"],"description":"Discriminator: the counterparty is a bank account.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSourceOneOf0Kind"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSourceOneOf0AmountsItems":{"type":"object","properties":{"amount":{"type":"string","description":"Decimal amount as a string (avoids floating-point precision loss)."},"currency":{"type":"string","description":"Currency code, e.g. `usd`, `ausd`, `usdc`."}},"required":["amount","currency"],"description":"A per-currency amount moved on one side of the transaction.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSourceOneOf0AmountsItems"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSource0":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSourceOneOf0Kind","description":"Discriminator: the counterparty is a bank account."},"accountId":{"type":["string","null"],"format":"uuid","description":"UUID of the customer account this counterparty maps to (same id as `/v0/accounts`), or null when the address is not a known account (e.g. the Agora side). Bank counterparties currently always return null; bank-to-account linkage is not derived yet."},"accountNumber":{"type":["string","null"],"description":"Bank account number. Null when unknown."},"bankName":{"type":["string","null"],"description":"Name of the financial institution, when known."},"name":{"type":["string","null"],"description":"Display label for the counterparty. The Agora side of a leg is labelled `\"Agora\"`."},"amounts":{"type":"array","items":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSourceOneOf0AmountsItems"},"description":"Per-currency totals moved on this side of the transaction, one entry per currency."}},"required":["kind","accountId","accountNumber","bankName","name","amounts"],"title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSource0"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSourceOneOf1Kind":{"type":"string","enum":["wallet"],"description":"Discriminator: the counterparty is a blockchain address.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSourceOneOf1Kind"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSourceOneOf1AmountsItems":{"type":"object","properties":{"amount":{"type":"string","description":"Decimal amount as a string (avoids floating-point precision loss)."},"currency":{"type":"string","description":"Currency code, e.g. `usd`, `ausd`, `usdc`."}},"required":["amount","currency"],"description":"A per-currency amount moved on one side of the transaction.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSourceOneOf1AmountsItems"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSource1":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSourceOneOf1Kind","description":"Discriminator: the counterparty is a blockchain address."},"accountId":{"type":["string","null"],"format":"uuid","description":"UUID of the customer account this counterparty maps to (same id as `/v0/accounts`), or null when the address is not a known account (e.g. the Agora side). Bank counterparties currently always return null; bank-to-account linkage is not derived yet."},"address":{"type":["string","null"],"description":"On-chain address, EIP-55 checksummed for EVM. Public on-chain data, returned in full. Null when unknown."},"chain":{"type":"string","description":"Chain the address is on, as the public-API network id (e.g. `ethereum`, `base`). Non-public/historical chains fall back to the raw chain id. Treated as an open enum; tolerate unknown values."},"name":{"type":["string","null"],"description":"Display label for the counterparty. The Agora side of a leg is labelled `\"Agora\"`."},"amounts":{"type":"array","items":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSourceOneOf1AmountsItems"},"description":"Per-currency totals moved on this side of the transaction, one entry per currency."}},"required":["kind","accountId","address","chain","name","amounts"],"title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSource1"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSource":{"oneOf":[{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSource0"},{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSource1"}],"description":"The counterparty sending value, with the totals it sent.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSource"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetailOneOf0Type":{"type":"string","enum":["bookTransfer"],"description":"Discriminator: the leg settled as an internal book transfer.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetailOneOf0Type"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetail0":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetailOneOf0Type","description":"Discriminator: the leg settled as an internal book transfer."},"confirmationNumber":{"type":["string","null"],"description":"Book-transfer confirmation number. Null when not yet known."}},"required":["type","confirmationNumber"],"description":"Book-transfer leg detail.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetail0"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetailOneOf1Type":{"type":"string","enum":["fee"],"description":"Discriminator: the leg is a manual fee entry.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetailOneOf1Type"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetail1":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetailOneOf1Type","description":"Discriminator: the leg is a manual fee entry."}},"required":["type"],"description":"Fee leg detail. A manual accounting entry with no rail identifier.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetail1"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetailOneOf2Type":{"type":"string","enum":["instantPayment"],"description":"Discriminator: the leg settled over an instant-payment rail.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetailOneOf2Type"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetail2":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetailOneOf2Type","description":"Discriminator: the leg settled over an instant-payment rail."},"confirmationNumber":{"type":["string","null"],"description":"Instant-payment confirmation number. Null when not yet known."}},"required":["type","confirmationNumber"],"description":"Instant-payment leg detail.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetail2"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetailOneOf3Type":{"type":"string","enum":["token"],"description":"Discriminator: the leg settled on-chain.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetailOneOf3Type"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetail3":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetailOneOf3Type","description":"Discriminator: the leg settled on-chain."},"transactionHash":{"type":["string","null"],"description":"On-chain transaction hash. Null when not yet known."}},"required":["type","transactionHash"],"description":"On-chain (token) leg detail.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetail3"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetailOneOf4Type":{"type":"string","enum":["wire"],"description":"Discriminator: the leg settled over a wire transfer.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetailOneOf4Type"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetail4":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetailOneOf4Type","description":"Discriminator: the leg settled over a wire transfer."},"imad":{"type":["string","null"],"description":"Fedwire IMAD (Input Message Accountability Data) identifying the wire. Null when not yet known."}},"required":["type","imad"],"description":"Wire-transfer leg detail.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetail4"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetail":{"oneOf":[{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetail0"},{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetail1"},{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetail2"},{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetail3"},{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetail4"}],"description":"Rail-specific identifiers for the leg, shaped by the settlement rail.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetail"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDirection":{"type":"string","enum":["INBOUND","OUTBOUND"],"description":"Direction of value movement relative to the customer: `INBOUND` (value arrives) or `OUTBOUND` (value leaves).","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDirection"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsRecipientOneOf0Kind":{"type":"string","enum":["bank"],"description":"Discriminator: the counterparty is a bank account.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsRecipientOneOf0Kind"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsRecipient0":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsRecipientOneOf0Kind","description":"Discriminator: the counterparty is a bank account."},"accountId":{"type":["string","null"],"format":"uuid","description":"UUID of the customer account this counterparty maps to (same id as `/v0/accounts`), or null when the address is not a known account (e.g. the Agora side). Bank counterparties currently always return null; bank-to-account linkage is not derived yet."},"accountNumber":{"type":["string","null"],"description":"Bank account number. Null when unknown."},"bankName":{"type":["string","null"],"description":"Name of the financial institution, when known."},"name":{"type":["string","null"],"description":"Display label for the counterparty. The Agora side of a leg is labelled `\"Agora\"`."}},"required":["kind","accountId","accountNumber","bankName","name"],"title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsRecipient0"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsRecipientOneOf1Kind":{"type":"string","enum":["wallet"],"description":"Discriminator: the counterparty is a blockchain address.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsRecipientOneOf1Kind"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsRecipient1":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsRecipientOneOf1Kind","description":"Discriminator: the counterparty is a blockchain address."},"accountId":{"type":["string","null"],"format":"uuid","description":"UUID of the customer account this counterparty maps to (same id as `/v0/accounts`), or null when the address is not a known account (e.g. the Agora side). Bank counterparties currently always return null; bank-to-account linkage is not derived yet."},"address":{"type":["string","null"],"description":"On-chain address, EIP-55 checksummed for EVM. Public on-chain data, returned in full. Null when unknown."},"chain":{"type":"string","description":"Chain the address is on, as the public-API network id (e.g. `ethereum`, `base`). Non-public/historical chains fall back to the raw chain id. Treated as an open enum; tolerate unknown values."},"name":{"type":["string","null"],"description":"Display label for the counterparty. The Agora side of a leg is labelled `\"Agora\"`."}},"required":["kind","accountId","address","chain","name"],"title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsRecipient1"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsRecipient":{"oneOf":[{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsRecipient0"},{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsRecipient1"}],"description":"The counterparty receiving value on this leg.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsRecipient"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsSourceOneOf0Kind":{"type":"string","enum":["bank"],"description":"Discriminator: the counterparty is a bank account.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsSourceOneOf0Kind"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsSource0":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsSourceOneOf0Kind","description":"Discriminator: the counterparty is a bank account."},"accountId":{"type":["string","null"],"format":"uuid","description":"UUID of the customer account this counterparty maps to (same id as `/v0/accounts`), or null when the address is not a known account (e.g. the Agora side). Bank counterparties currently always return null; bank-to-account linkage is not derived yet."},"accountNumber":{"type":["string","null"],"description":"Bank account number. Null when unknown."},"bankName":{"type":["string","null"],"description":"Name of the financial institution, when known."},"name":{"type":["string","null"],"description":"Display label for the counterparty. The Agora side of a leg is labelled `\"Agora\"`."}},"required":["kind","accountId","accountNumber","bankName","name"],"title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsSource0"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsSourceOneOf1Kind":{"type":"string","enum":["wallet"],"description":"Discriminator: the counterparty is a blockchain address.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsSourceOneOf1Kind"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsSource1":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsSourceOneOf1Kind","description":"Discriminator: the counterparty is a blockchain address."},"accountId":{"type":["string","null"],"format":"uuid","description":"UUID of the customer account this counterparty maps to (same id as `/v0/accounts`), or null when the address is not a known account (e.g. the Agora side). Bank counterparties currently always return null; bank-to-account linkage is not derived yet."},"address":{"type":["string","null"],"description":"On-chain address, EIP-55 checksummed for EVM. Public on-chain data, returned in full. Null when unknown."},"chain":{"type":"string","description":"Chain the address is on, as the public-API network id (e.g. `ethereum`, `base`). Non-public/historical chains fall back to the raw chain id. Treated as an open enum; tolerate unknown values."},"name":{"type":["string","null"],"description":"Display label for the counterparty. The Agora side of a leg is labelled `\"Agora\"`."}},"required":["kind","accountId","address","chain","name"],"title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsSource1"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsSource":{"oneOf":[{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsSource0"},{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsSource1"}],"description":"The counterparty sending value on this leg.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsSource"},"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItems":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Stable UUID identifying this leg."},"amount":{"type":"string","description":"Decimal amount moved on this leg, as a string (avoids floating-point precision loss)."},"currency":{"type":"string","description":"Currency code, e.g. `usd`, `ausd`, `usdc`. Treated as an open enum; tolerate unknown values."},"detail":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDetail","description":"Rail-specific identifiers for the leg, shaped by the settlement rail."},"direction":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsDirection","description":"Direction of value movement relative to the customer: `INBOUND` (value arrives) or `OUTBOUND` (value leaves)."},"occurredAt":{"type":"string","format":"date-time","description":"ISO-8601 timestamp when this leg occurred."},"recipient":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsRecipient","description":"The counterparty receiving value on this leg."},"source":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItemsSource","description":"The counterparty sending value on this leg."}},"required":["id","amount","currency","detail","direction","occurredAt","recipient","source"],"description":"A single customer-facing leg of a transaction.","title":"V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItems"},"transactions_getbyid_Response_200":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Stable UUID identifying this transaction; pass to the detail endpoint to fetch legs."},"failureReason":{"type":["string","null"],"description":"Why a `tokenConversion` failed: `BLOCKED_WALLET`, `EXPIRED`, `INSUFFICIENT_FUNDS`, `OTHER`, `PROVIDER_UNAVAILABLE`, or `SLIPPAGE`. Null unless `type` is `tokenConversion` and `status` is `failed`. Open enum; tolerate unknown values."},"initiatedAt":{"type":"string","format":"date-time","description":"ISO-8601 timestamp of the first leg."},"isInstantSettlement":{"type":"boolean","description":"True if this transaction used Agora's instant-settlement path rather than standard settlement."},"legCount":{"type":"integer","description":"Number of customer-facing legs in this transaction."},"recipient":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaRecipient","description":"The counterparty receiving value, with the totals it received."},"refundFailureReason":{"type":["string","null"],"description":"Why returning a failed `tokenConversion`'s deposit also failed, so it will not come back on its own: `AMOUNT_TOO_LOW`, `MANUAL_REVIEW`, or `OTHER`. Null unless `type` is `tokenConversion` and `status` is `failed`. Open enum; tolerate unknown values."},"settledAt":{"type":["string","null"],"format":"date-time","description":"ISO-8601 timestamp when the transaction settled. Null until settled."},"source":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaSource","description":"The counterparty sending value, with the totals it sent."},"status":{"type":"string","description":"Lifecycle status. Always `settled` unless `type` is `tokenConversion`. A `tokenConversion` starts `pending` (deposit received, conversion not yet sent), moves to `submitted` (conversion sent on the destination chain), and ends `settled`, `refunded` (deposit returned), or `failed` (see `failureReason` and `refundFailureReason`). A `failed` conversion can still move to `settled` or `refunded`. Open enum; tolerate unknown values."},"type":{"type":"string","description":"Customer-facing transaction type: `mint`, `redeem`, `bridge`, `reward`, `return`, or `tokenConversion`. Treated as an open enum; tolerate unknown values."},"legs":{"type":"array","items":{"$ref":"#/components/schemas/V0TransactionsTxnIdGetResponsesContentApplicationJsonSchemaLegsItems"},"description":"The customer-facing legs that make up this transaction."}},"required":["id","failureReason","initiatedAt","isInstantSettlement","legCount","recipient","refundFailureReason","settledAt","source","status","type","legs"],"description":"A single settled transaction with its per-leg breakdown.","title":"transactions_getbyid_Response_200"},"ErrorResponse404NotFoundTransactionNotFoundCode":{"type":"string","enum":["not_found","transaction_not_found"],"title":"ErrorResponse404NotFoundTransactionNotFoundCode"},"ErrorResponse_404_not_found_transaction_not_found":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/ErrorResponse404NotFoundTransactionNotFoundCode"},"docs_url":{"type":"string"},"message":{"type":"string"}},"required":["code","docs_url","message"],"title":"ErrorResponse_404_not_found_transaction_not_found"},"V0QuotesPostRequestBodyContentApplicationJsonSchemaSenderKind":{"type":"string","enum":["wallet"],"title":"V0QuotesPostRequestBodyContentApplicationJsonSchemaSenderKind"},"V0QuotesPostRequestBodyContentApplicationJsonSchemaSenderChain":{"type":"string","enum":["ethereum","monad"],"description":"Public API network identifier.","title":"V0QuotesPostRequestBodyContentApplicationJsonSchemaSenderChain"},"V0QuotesPostRequestBodyContentApplicationJsonSchemaSenderCurrency":{"type":"string","enum":["ausd","usdc","usdt"],"description":"Token being sent or received.","title":"V0QuotesPostRequestBodyContentApplicationJsonSchemaSenderCurrency"},"V0QuotesPostRequestBodyContentApplicationJsonSchemaSender":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/V0QuotesPostRequestBodyContentApplicationJsonSchemaSenderKind"},"address":{"type":"string","description":"EOA or smart account that submits every execution step. It is the `from` on each step's transaction."},"chain":{"$ref":"#/components/schemas/V0QuotesPostRequestBodyContentApplicationJsonSchemaSenderChain","description":"Public API network identifier."},"currency":{"$ref":"#/components/schemas/V0QuotesPostRequestBodyContentApplicationJsonSchemaSenderCurrency","description":"Token being sent or received."}},"required":["kind","address","chain","currency"],"title":"V0QuotesPostRequestBodyContentApplicationJsonSchemaSender"},"V0QuotesPostRequestBodyContentApplicationJsonSchemaReceiverKind":{"type":"string","enum":["wallet"],"title":"V0QuotesPostRequestBodyContentApplicationJsonSchemaReceiverKind"},"V0QuotesPostRequestBodyContentApplicationJsonSchemaReceiverChain":{"type":"string","enum":["ethereum","monad"],"description":"Public API network identifier.","title":"V0QuotesPostRequestBodyContentApplicationJsonSchemaReceiverChain"},"V0QuotesPostRequestBodyContentApplicationJsonSchemaReceiverCurrency":{"type":"string","enum":["ausd","usdc","usdt"],"description":"Token being sent or received.","title":"V0QuotesPostRequestBodyContentApplicationJsonSchemaReceiverCurrency"},"V0QuotesPostRequestBodyContentApplicationJsonSchemaReceiver":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/V0QuotesPostRequestBodyContentApplicationJsonSchemaReceiverKind"},"address":{"type":"string","description":"EOA or smart account that receives the output."},"chain":{"$ref":"#/components/schemas/V0QuotesPostRequestBodyContentApplicationJsonSchemaReceiverChain","description":"Public API network identifier."},"currency":{"$ref":"#/components/schemas/V0QuotesPostRequestBodyContentApplicationJsonSchemaReceiverCurrency","description":"Token being sent or received."}},"required":["kind","address","chain","currency"],"title":"V0QuotesPostRequestBodyContentApplicationJsonSchemaReceiver"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsProvider":{"type":"string","enum":["relay"],"description":"Which provider executes this quote. `relay` is the only value today; further providers join as their integrations land.","title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsProvider"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsSenderKind":{"type":"string","enum":["wallet"],"title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsSenderKind"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsSenderChain":{"type":"string","enum":["ethereum","monad"],"description":"Public API network identifier.","title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsSenderChain"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsSenderCurrency":{"type":"string","enum":["ausd","usdc","usdt"],"description":"Token being sent or received.","title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsSenderCurrency"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsSender":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsSenderKind"},"address":{"type":"string","description":"EOA or smart account that submits every execution step. It is the `from` on each step's transaction."},"chain":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsSenderChain","description":"Public API network identifier."},"currency":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsSenderCurrency","description":"Token being sent or received."}},"required":["kind","address","chain","currency"],"title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsSender"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsReceiverKind":{"type":"string","enum":["wallet"],"title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsReceiverKind"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsReceiverChain":{"type":"string","enum":["ethereum","monad"],"description":"Public API network identifier.","title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsReceiverChain"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsReceiverCurrency":{"type":"string","enum":["ausd","usdc","usdt"],"description":"Token being sent or received.","title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsReceiverCurrency"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsReceiver":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsReceiverKind"},"address":{"type":"string","description":"EOA or smart account that receives the output."},"chain":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsReceiverChain","description":"Public API network identifier."},"currency":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsReceiverCurrency","description":"Token being sent or received."}},"required":["kind","address","chain","currency"],"title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsReceiver"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsFees":{"type":"object","properties":{"gasUsd":{"type":"string","description":"USD cost of the steps the sender's own wallet executes directly (ex. the `erc20Approve` step), distinct from the relayer's own gas cost in `relayerGasUsd`. Ex. `0.035869`."},"relayerUsd":{"type":"string","description":"The relayer's total fee: `relayerGasUsd` plus `relayerServiceUsd`. Ex. `0.056939`."},"relayerGasUsd":{"type":"string","description":"Portion of `relayerUsd` covering the relayer's own on-chain execution cost. Ex. `0.035141`."},"relayerServiceUsd":{"type":"string","description":"Portion of `relayerUsd` covering the relayer's service margin. Ex. `0.021798`."},"appUsd":{"type":"string","description":"Agora's own fee on this quote, separate from the relayer's."}},"required":["gasUsd","relayerUsd","relayerGasUsd","relayerServiceUsd","appUsd"],"description":"Cost breakdown in USD. Informational: nothing here is deducted from `senderAmount` or `receiverAmount`, which already reflect the quoted rate.","title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsFees"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf0Action":{"type":"string","enum":["erc20Approve"],"title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf0Action"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf0Chain":{"type":"string","enum":["ethereum","monad"],"description":"Public API network identifier.","title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf0Chain"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf0Details":{"type":"object","properties":{"token":{"type":"string"},"spender":{"type":"string"},"amount":{"type":"string","pattern":"^\\d+(\\.\\d+)?$","description":"Amount in decimal token units, ex. `10.00`."}},"required":["token","spender","amount"],"title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf0Details"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf0Transaction":{"type":"object","properties":{"from":{"type":"string","description":"The sender's address."},"to":{"type":"string","description":"Contract to call."},"data":{"type":"string","description":"Calldata."},"value":{"type":"string","description":"Native value in base units."}},"required":["from","to","data","value"],"title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf0Transaction"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItems0":{"type":"object","properties":{"action":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf0Action"},"chain":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf0Chain","description":"Public API network identifier."},"details":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf0Details"},"transaction":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf0Transaction"}},"required":["action","chain","details","transaction"],"title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItems0"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf1Action":{"type":"string","enum":["relayDepositErc20"],"title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf1Action"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf1Chain":{"type":"string","enum":["ethereum","monad"],"description":"Public API network identifier.","title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf1Chain"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf1Transaction":{"type":"object","properties":{"from":{"type":"string","description":"The sender's address."},"to":{"type":"string","description":"Contract to call."},"data":{"type":"string","description":"Calldata."},"value":{"type":"string","description":"Native value in base units."}},"required":["from","to","data","value"],"title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf1Transaction"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItems1":{"type":"object","properties":{"action":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf1Action"},"chain":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf1Chain","description":"Public API network identifier."},"transaction":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf1Transaction"}},"required":["action","chain","transaction"],"title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItems1"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf2Action":{"type":"string","enum":["relayTransferAndMulticall"],"title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf2Action"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf2Chain":{"type":"string","enum":["ethereum","monad"],"description":"Public API network identifier.","title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf2Chain"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf2Transaction":{"type":"object","properties":{"from":{"type":"string","description":"The sender's address."},"to":{"type":"string","description":"Contract to call."},"data":{"type":"string","description":"Calldata."},"value":{"type":"string","description":"Native value in base units."}},"required":["from","to","data","value"],"title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf2Transaction"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItems2":{"type":"object","properties":{"action":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf2Action"},"chain":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf2Chain","description":"Public API network identifier."},"transaction":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItemsOneOf2Transaction"}},"required":["action","chain","transaction"],"title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItems2"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItems":{"oneOf":[{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItems0"},{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItems1"},{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItems2"}],"title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItems"},"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItems":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"provider":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsProvider","description":"Which provider executes this quote. `relay` is the only value today; further providers join as their integrations land."},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time","description":"Deposit must land onchain by this time."},"sender":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsSender"},"receiver":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsReceiver"},"senderAmount":{"type":"string","pattern":"^\\d+(\\.\\d+)?$","description":"Amount in decimal token units, ex. `10.00`."},"receiverAmount":{"type":"string","pattern":"^\\d+(\\.\\d+)?$","description":"Amount in decimal token units, ex. `10.00`."},"slippageBps":{"type":"integer","minimum":0,"description":"Effective value after the chain's default and cap."},"fees":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsFees","description":"Cost breakdown in USD. Informational: nothing here is deducted from `senderAmount` or `receiverAmount`, which already reflect the quoted rate."},"executionSteps":{"type":"array","items":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItemsExecutionStepsItems"},"description":"Ordered steps the caller executes in turn to fulfill the quote. `erc20Approve` appears only when the sender's existing allowance is insufficient. New `action` values may be added; tolerate unknown ones."},"transactionId":{"type":"string","format":"uuid","description":"Poll GET /v0/transactions/{txnId} with this. 404 until the deposit is observed."}},"required":["id","provider","createdAt","expiresAt","sender","receiver","senderAmount","receiverAmount","slippageBps","fees","executionSteps","transactionId"],"title":"V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItems"},"quotes_create_Response_201":{"type":"object","properties":{"quotes":{"type":"array","items":{"$ref":"#/components/schemas/V0QuotesPostResponsesContentApplicationJsonSchemaQuotesItems"},"description":"One element per provider that returned a route. Never empty on success."}},"required":["quotes"],"title":"quotes_create_Response_201"},"ErrorResponse400ChainUnsupportedCurrencyUnsupportedParameterInvalidCode":{"type":"string","enum":["chain_unsupported","currency_unsupported","parameter_invalid"],"title":"ErrorResponse400ChainUnsupportedCurrencyUnsupportedParameterInvalidCode"},"ErrorResponse400ChainUnsupportedCurrencyUnsupportedParameterInvalidContextIssuesItems":{"type":"object","properties":{"field":{"type":"string"},"message":{"type":"string"}},"required":["field","message"],"title":"ErrorResponse400ChainUnsupportedCurrencyUnsupportedParameterInvalidContextIssuesItems"},"ErrorResponse400ChainUnsupportedCurrencyUnsupportedParameterInvalidContext":{"type":"object","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ErrorResponse400ChainUnsupportedCurrencyUnsupportedParameterInvalidContextIssuesItems"}}},"required":["issues"],"title":"ErrorResponse400ChainUnsupportedCurrencyUnsupportedParameterInvalidContext"},"ErrorResponse_400_chain_unsupported_currency_unsupported_parameter_invalid":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/ErrorResponse400ChainUnsupportedCurrencyUnsupportedParameterInvalidCode"},"docs_url":{"type":"string"},"message":{"type":"string"},"context":{"$ref":"#/components/schemas/ErrorResponse400ChainUnsupportedCurrencyUnsupportedParameterInvalidContext"}},"required":["code","docs_url","message"],"title":"ErrorResponse_400_chain_unsupported_currency_unsupported_parameter_invalid"},"ErrorResponse403AccountNotEligibleAccountNotProvisionedAccountVerificationPendingForbiddenWalletBlockedCode":{"type":"string","enum":["account_not_eligible","account_not_provisioned","account_verification_pending","forbidden","wallet_blocked"],"title":"ErrorResponse403AccountNotEligibleAccountNotProvisionedAccountVerificationPendingForbiddenWalletBlockedCode"},"ErrorResponse403AccountNotEligibleAccountNotProvisionedAccountVerificationPendingForbiddenWalletBlockedContextReason":{"type":"string","enum":["BLOCKED_WALLET"],"title":"ErrorResponse403AccountNotEligibleAccountNotProvisionedAccountVerificationPendingForbiddenWalletBlockedContextReason"},"ErrorResponse403AccountNotEligibleAccountNotProvisionedAccountVerificationPendingForbiddenWalletBlockedContext":{"type":"object","properties":{"reason":{"$ref":"#/components/schemas/ErrorResponse403AccountNotEligibleAccountNotProvisionedAccountVerificationPendingForbiddenWalletBlockedContextReason"}},"required":["reason"],"title":"ErrorResponse403AccountNotEligibleAccountNotProvisionedAccountVerificationPendingForbiddenWalletBlockedContext"},"ErrorResponse_403_account_not_eligible_account_not_provisioned_account_verification_pending_forbidden_wallet_blocked":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/ErrorResponse403AccountNotEligibleAccountNotProvisionedAccountVerificationPendingForbiddenWalletBlockedCode"},"docs_url":{"type":"string"},"message":{"type":"string"},"context":{"$ref":"#/components/schemas/ErrorResponse403AccountNotEligibleAccountNotProvisionedAccountVerificationPendingForbiddenWalletBlockedContext"}},"required":["code","docs_url","message"],"title":"ErrorResponse_403_account_not_eligible_account_not_provisioned_account_verification_pending_forbidden_wallet_blocked"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaProvider":{"type":"string","enum":["relay"],"description":"Which provider executes this quote. `relay` is the only value today; further providers join as their integrations land.","title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaProvider"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaSenderKind":{"type":"string","enum":["wallet"],"title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaSenderKind"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaSenderChain":{"type":"string","enum":["ethereum","monad"],"description":"Public API network identifier.","title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaSenderChain"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaSenderCurrency":{"type":"string","enum":["ausd","usdc","usdt"],"description":"Token being sent or received.","title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaSenderCurrency"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaSender":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaSenderKind"},"address":{"type":"string","description":"EOA or smart account that submits every execution step. It is the `from` on each step's transaction."},"chain":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaSenderChain","description":"Public API network identifier."},"currency":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaSenderCurrency","description":"Token being sent or received."}},"required":["kind","address","chain","currency"],"title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaSender"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaReceiverKind":{"type":"string","enum":["wallet"],"title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaReceiverKind"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaReceiverChain":{"type":"string","enum":["ethereum","monad"],"description":"Public API network identifier.","title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaReceiverChain"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaReceiverCurrency":{"type":"string","enum":["ausd","usdc","usdt"],"description":"Token being sent or received.","title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaReceiverCurrency"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaReceiver":{"type":"object","properties":{"kind":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaReceiverKind"},"address":{"type":"string","description":"EOA or smart account that receives the output."},"chain":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaReceiverChain","description":"Public API network identifier."},"currency":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaReceiverCurrency","description":"Token being sent or received."}},"required":["kind","address","chain","currency"],"title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaReceiver"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaFees":{"type":"object","properties":{"gasUsd":{"type":"string","description":"USD cost of the steps the sender's own wallet executes directly (ex. the `erc20Approve` step), distinct from the relayer's own gas cost in `relayerGasUsd`. Ex. `0.035869`."},"relayerUsd":{"type":"string","description":"The relayer's total fee: `relayerGasUsd` plus `relayerServiceUsd`. Ex. `0.056939`."},"relayerGasUsd":{"type":"string","description":"Portion of `relayerUsd` covering the relayer's own on-chain execution cost. Ex. `0.035141`."},"relayerServiceUsd":{"type":"string","description":"Portion of `relayerUsd` covering the relayer's service margin. Ex. `0.021798`."},"appUsd":{"type":"string","description":"Agora's own fee on this quote, separate from the relayer's."}},"required":["gasUsd","relayerUsd","relayerGasUsd","relayerServiceUsd","appUsd"],"description":"Cost breakdown in USD. Informational: nothing here is deducted from `senderAmount` or `receiverAmount`, which already reflect the quoted rate.","title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaFees"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf0Action":{"type":"string","enum":["erc20Approve"],"title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf0Action"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf0Chain":{"type":"string","enum":["ethereum","monad"],"description":"Public API network identifier.","title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf0Chain"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf0Details":{"type":"object","properties":{"token":{"type":"string"},"spender":{"type":"string"},"amount":{"type":"string","pattern":"^\\d+(\\.\\d+)?$","description":"Amount in decimal token units, ex. `10.00`."}},"required":["token","spender","amount"],"title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf0Details"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf0Transaction":{"type":"object","properties":{"from":{"type":"string","description":"The sender's address."},"to":{"type":"string","description":"Contract to call."},"data":{"type":"string","description":"Calldata."},"value":{"type":"string","description":"Native value in base units."}},"required":["from","to","data","value"],"title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf0Transaction"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItems0":{"type":"object","properties":{"action":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf0Action"},"chain":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf0Chain","description":"Public API network identifier."},"details":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf0Details"},"transaction":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf0Transaction"}},"required":["action","chain","details","transaction"],"title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItems0"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf1Action":{"type":"string","enum":["relayDepositErc20"],"title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf1Action"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf1Chain":{"type":"string","enum":["ethereum","monad"],"description":"Public API network identifier.","title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf1Chain"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf1Transaction":{"type":"object","properties":{"from":{"type":"string","description":"The sender's address."},"to":{"type":"string","description":"Contract to call."},"data":{"type":"string","description":"Calldata."},"value":{"type":"string","description":"Native value in base units."}},"required":["from","to","data","value"],"title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf1Transaction"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItems1":{"type":"object","properties":{"action":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf1Action"},"chain":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf1Chain","description":"Public API network identifier."},"transaction":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf1Transaction"}},"required":["action","chain","transaction"],"title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItems1"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf2Action":{"type":"string","enum":["relayTransferAndMulticall"],"title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf2Action"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf2Chain":{"type":"string","enum":["ethereum","monad"],"description":"Public API network identifier.","title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf2Chain"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf2Transaction":{"type":"object","properties":{"from":{"type":"string","description":"The sender's address."},"to":{"type":"string","description":"Contract to call."},"data":{"type":"string","description":"Calldata."},"value":{"type":"string","description":"Native value in base units."}},"required":["from","to","data","value"],"title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf2Transaction"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItems2":{"type":"object","properties":{"action":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf2Action"},"chain":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf2Chain","description":"Public API network identifier."},"transaction":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItemsOneOf2Transaction"}},"required":["action","chain","transaction"],"title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItems2"},"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItems":{"oneOf":[{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItems0"},{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItems1"},{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItems2"}],"title":"V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItems"},"quotes_getbyid_Response_200":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"provider":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaProvider","description":"Which provider executes this quote. `relay` is the only value today; further providers join as their integrations land."},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time","description":"Deposit must land onchain by this time."},"sender":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaSender"},"receiver":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaReceiver"},"senderAmount":{"type":"string","pattern":"^\\d+(\\.\\d+)?$","description":"Amount in decimal token units, ex. `10.00`."},"receiverAmount":{"type":"string","pattern":"^\\d+(\\.\\d+)?$","description":"Amount in decimal token units, ex. `10.00`."},"slippageBps":{"type":"integer","minimum":0,"description":"Effective value after the chain's default and cap."},"fees":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaFees","description":"Cost breakdown in USD. Informational: nothing here is deducted from `senderAmount` or `receiverAmount`, which already reflect the quoted rate."},"executionSteps":{"type":"array","items":{"$ref":"#/components/schemas/V0QuotesQuoteIdGetResponsesContentApplicationJsonSchemaExecutionStepsItems"},"description":"Ordered steps the caller executes in turn to fulfill the quote. `erc20Approve` appears only when the sender's existing allowance is insufficient. New `action` values may be added; tolerate unknown ones."},"transactionId":{"type":"string","format":"uuid","description":"Poll GET /v0/transactions/{txnId} with this. 404 until the deposit is observed."}},"required":["id","provider","createdAt","expiresAt","sender","receiver","senderAmount","receiverAmount","slippageBps","fees","executionSteps","transactionId"],"title":"quotes_getbyid_Response_200"},"ErrorResponse404NotFoundQuoteNotFoundCode":{"type":"string","enum":["not_found","quote_not_found"],"title":"ErrorResponse404NotFoundQuoteNotFoundCode"},"ErrorResponse_404_not_found_quote_not_found":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/ErrorResponse404NotFoundQuoteNotFoundCode"},"docs_url":{"type":"string"},"message":{"type":"string"}},"required":["code","docs_url","message"],"title":"ErrorResponse_404_not_found_quote_not_found"}},"securitySchemes":{"accessKey":{"type":"http","scheme":"bearer","description":"Agora access key (cleartext), sent as `Authorization: Bearer <accessKey>`. Used only by POST /v0/auth/token to mint a session JWT."},"sessionJwt":{"type":"http","scheme":"bearer","description":"Session JWT from `POST /v0/auth/token`, sent as `Authorization: Bearer <sessionJwt>`.\n\nSee [Authentication](../authentication) for more details.\n"}}}}