{"openapi":"3.1.0","info":{"title":"Endpoints","version":"1.0.0"},"paths":{"/v0/auth/token":{"post":{"operationId":"token","summary":"Create a Session Token","description":"<Callout intent=\"warning\">\n  The endpoints exposed here are currently in **Beta**! As we continue to build our initial offering, these endpoints may implement breaking changes. Be sure to check back for our change log regularly as a precaution.\n</Callout>\n\nExchange 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](/api/authentication) for more details.\n","tags":["Auth"],"parameters":[{"name":"Authorization","in":"header","description":"Agora access key (cleartext), sent as `Authorization: Bearer <accessKey>`. Used only by POST /v0/auth/token to mint a session JWT.","required":true,"schema":{"type":"string"}}],"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"}}}}}}},"/v0/metrics":{"get":{"operationId":"get","summary":"Get Aggregate and Per-Chain Metrics","description":"<Callout intent=\"warning\">\n  The endpoints exposed here are currently in **Beta**! As we continue to build our initial offering, these endpoints may implement breaking changes. Be sure to check back for our change log regularly as a precaution.\n</Callout>\n\nReturns 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 on-chain 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":"totalsupply","summary":"Get Aggregate Total Supply","description":"<Callout intent=\"warning\">\n  The endpoints exposed here are currently in **Beta**! As we continue to build our initial offering, these endpoints may implement breaking changes. Be sure to check back for our change log regularly as a precaution.\n</Callout>\n","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":"circulatingsupply","summary":"Get Aggregate Circulating Supply","description":"<Callout intent=\"warning\">\n  The endpoints exposed here are currently in **Beta**! As we continue to build our initial offering, these endpoints may implement breaking changes. Be sure to check back for our change log regularly as a precaution.\n</Callout>\n","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":"get","summary":"List Accounts","description":"<Callout intent=\"warning\">\n  The endpoints exposed here are currently in **Beta**! As we continue to build our initial offering, these endpoints may implement breaking changes. Be sure to check back for our change log regularly as a precaution.\n</Callout>\n\nList every account registered to the authenticated organization. An account is either a bank account (fiat source/destination) or a blockchain wallet (on-chain 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](/api/endpoints/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](/api#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"}}},{"name":"Authorization","in":"header","description":"Session JWT from `POST /v0/auth/token`, sent as `Authorization: Bearer <sessionJwt>`.\n\nSee [Authentication](/api/authentication) for more details.\n","required":true,"schema":{"type":"string"}}],"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":"The account is not eligible for the requested route direction.","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"}}}}}},"post":{"operationId":"create","summary":"Register an Account","description":"<Callout intent=\"warning\">\n  The endpoints exposed here are currently in **Beta**! As we continue to build our initial offering, these endpoints may implement breaking changes. Be sure to check back for our change log regularly as a precaution.\n</Callout>\n\nRegister 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](/api/endpoints/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"],"parameters":[{"name":"Authorization","in":"header","description":"Session JWT from `POST /v0/auth/token`, sent as `Authorization: Bearer <sessionJwt>`.\n\nSee [Authentication](/api/authentication) for more details.\n","required":true,"schema":{"type":"string"}}],"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":"The account is not eligible for the requested route direction.","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"}}}}}},"/v0/accounts/{accountId}":{"get":{"operationId":"getbyid","summary":"Get an Account by ID","description":"<Callout intent=\"warning\">\n  The endpoints exposed here are currently in **Beta**! As we continue to build our initial offering, these endpoints may implement breaking changes. Be sure to check back for our change log regularly as a precaution.\n</Callout>\n\nRetrieve 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"}},{"name":"Authorization","in":"header","description":"Session JWT from `POST /v0/auth/token`, sent as `Authorization: Bearer <sessionJwt>`.\n\nSee [Authentication](/api/authentication) for more details.\n","required":true,"schema":{"type":"string"}}],"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":"The account is not eligible for the requested route direction.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_403_account_not_eligible_account_not_provisioned_account_verification_pending_forbidden"}}}},"404":{"description":"Account 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"}}}}}},"put":{"operationId":"update","summary":"Update an Account","description":"<Callout intent=\"warning\">\n  The endpoints exposed here are currently in **Beta**! As we continue to build our initial offering, these endpoints may implement breaking changes. Be sure to check back for our change log regularly as a precaution.\n</Callout>\n\nApply 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](/api/endpoints/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](/api/endpoints/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"}},{"name":"Authorization","in":"header","description":"Session JWT from `POST /v0/auth/token`, sent as `Authorization: Bearer <sessionJwt>`.\n\nSee [Authentication](/api/authentication) for more details.\n","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounts_update_Response_200"}}}},"400":{"description":"This entitlement cannot be requested in its current state.","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":"The account is not eligible for the requested route direction.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_403_account_not_eligible_account_not_provisioned_account_verification_pending_forbidden"}}}},"404":{"description":"Account 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"]}}}}}},"/v0/routes":{"get":{"operationId":"get","summary":"List Routes","description":"<Callout intent=\"warning\">\n  The endpoints exposed here are currently in **Beta**! As we continue to build our initial offering, these endpoints may implement breaking changes. Be sure to check back for our change log regularly as a precaution.\n</Callout>\n\nReturn 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`, and `toAccountId`; every filter you send must hold (see [Filtering list endpoints](/api#filtering-list-endpoints)). `toChain` matches on-chain destinations only, so a redeem-to-fiat route never matches it.\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. The `stablecoin` wildcard matches routes stored against the wildcard; it does not expand to the individual stablecoins it covers.","required":false,"schema":{"$ref":"#/components/schemas/V0RoutesGetParametersFromCurrency"}},{"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"}},{"name":"Authorization","in":"header","description":"Session JWT from `POST /v0/auth/token`, sent as `Authorization: Bearer <sessionJwt>`.\n\nSee [Authentication](/api/authentication) for more details.\n","required":true,"schema":{"type":"string"}}],"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":"The account is not eligible for the requested route direction.","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"}}}}}},"post":{"operationId":"create","summary":"Create a Route","description":"<Callout intent=\"warning\">\n  The endpoints exposed here are currently in **Beta**! As we continue to build our initial offering, these endpoints may implement breaking changes. Be sure to check back for our change log regularly as a precaution.\n</Callout>\n\nCreate 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\nThe route topology is determined by `from.currency`, `to.currency`, and the destination `to.chain`. `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`) | Behavior |\n|---|---|---|\n| `usd` | `ausd` on a chain | Mint: wire USD with the memo, receive AUSD at the destination |\n| `ausd` | `usd` (bank account) | Redeem: send AUSD to the redeem address, receive a USD payout |\n| `stablecoin` (wildcard) | `ausd` on a chain | Mint with stablecoins: send any in-scope stablecoin to the mint address, receive AUSD at the destination. See the `stablecoin` section below for the in-scope asset list. |\n| `ausd` | `usdc` on a chain | Redeem to tokens: send AUSD to the redeem address, receive `usdc`. |\n\n### What `stablecoin` means\n\n`stablecoin` is a wildcard source currency standing in for any stablecoin Agora currently accepts — **today, only `usdc`**. The mint address a mint-from-stablecoin route returns is currency-agnostic, settling AUSD regardless of which in-scope stablecoin is sent. If you have questions about which currencies can be accepted, reach out to the [operations team](mailto:support@agora.finance).\n","tags":["Routes"],"parameters":[{"name":"Authorization","in":"header","description":"Session JWT from `POST /v0/auth/token`, sent as `Authorization: Bearer <sessionJwt>`.\n\nSee [Authentication](/api/authentication) for more details.\n","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/routes_create_Response_201"}}}},"400":{"description":"The requested chain is not supported.","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":"The account is not eligible for the requested route direction.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_403_account_not_eligible_account_not_provisioned_account_verification_pending_forbidden"}}}},"404":{"description":"Account not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse_404_account_not_found_not_found"}}}},"409":{"description":"A route with these parameters already exists. Use GET /routes to look it up.","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"]}}}}}},"/v0/routes/{routeId}":{"get":{"operationId":"getbyid","summary":"Get a Route by ID","description":"<Callout intent=\"warning\">\n  The endpoints exposed here are currently in **Beta**! As we continue to build our initial offering, these endpoints may implement breaking changes. Be sure to check back for our change log regularly as a precaution.\n</Callout>\n\nRetrieve 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"}},{"name":"Authorization","in":"header","description":"Session JWT from `POST /v0/auth/token`, sent as `Authorization: Bearer <sessionJwt>`.\n\nSee [Authentication](/api/authentication) for more details.\n","required":true,"schema":{"type":"string"}}],"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":"The account is not eligible for the requested route direction.","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_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"}}}}}}},"/v0/transactions":{"get":{"operationId":"list","summary":"List Transactions","description":"<Callout intent=\"warning\">\n  The endpoints exposed here are currently in **Beta**! As we continue to build our initial offering, these endpoints may implement breaking changes. Be sure to check back for our change log regularly as a precaution.\n</Callout>\n\nList your settled 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`). `type` and `status` are open enums; tolerate unknown values. Fetch one transaction's legs with [Get a Transaction by ID](/api/endpoints/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](/api#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"}}},{"name":"Authorization","in":"header","description":"Session JWT from `POST /v0/auth/token`, sent as `Authorization: Bearer <sessionJwt>`.\n\nSee [Authentication](/api/authentication) for more details.\n","required":true,"schema":{"type":"string"}}],"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":"The account is not eligible for the requested route direction.","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"}}}}}}},"/v0/transactions/{txnId}":{"get":{"operationId":"getbyid","summary":"Get a Transaction by ID","description":"<Callout intent=\"warning\">\n  The endpoints exposed here are currently in **Beta**! As we continue to build our initial offering, these endpoints may implement breaking changes. Be sure to check back for our change log regularly as a precaution.\n</Callout>\n\nRetrieve one settled transaction by id, with its per-leg breakdown. Each leg carries a `direction` (`FROM_AGORA` or `TO_AGORA`) 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"}},{"name":"Authorization","in":"header","description":"Session JWT from `POST /v0/auth/token`, sent as `Authorization: Bearer <sessionJwt>`.\n\nSee [Authentication](/api/authentication) for more details.\n","required":true,"schema":{"type":"string"}}],"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":"The account is not eligible for the requested route direction.","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_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"}}}}}}}},"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, status=verified).","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, status=verified).","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, status=verified).","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, status=verified).","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","stablecoin","usd"],"description":"Return only routes with this source currency. The `stablecoin` wildcard matches routes stored against the wildcard; it does not expand to the individual stablecoins it covers.","title":"V0RoutesGetParametersFromCurrency"},"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"},"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsFromCurrency":{"type":"string","enum":["ausd","stablecoin","usd","usdc"],"description":"Currency identifier.","title":"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsFromCurrency"},"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsFrom":{"type":"object","properties":{"currency":{"$ref":"#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsFromCurrency","description":"Currency identifier."}},"required":["currency"],"title":"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsFrom"},"V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsToCurrency":{"type":"string","enum":["ausd","stablecoin","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","stablecoin","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","stablecoin","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"},"from":{"$ref":"#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsFrom"},"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","from","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"},"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaFromCurrency":{"type":"string","enum":["ausd","stablecoin","usd","usdc"],"description":"Currency identifier.","title":"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaFromCurrency"},"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaFrom":{"type":"object","properties":{"currency":{"$ref":"#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaFromCurrency","description":"Currency identifier."}},"required":["currency"],"title":"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaFrom"},"V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaToCurrency":{"type":"string","enum":["ausd","stablecoin","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","stablecoin","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","stablecoin","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"},"from":{"$ref":"#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaFrom"},"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","from","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","stablecoin","usd"],"description":"Source currency. `usd` (wire), `ausd`, or the `stablecoin` wildcard (any stablecoin deposit).","title":"V0RoutesPostRequestBodyContentApplicationJsonSchemaFromCurrency"},"V0RoutesPostRequestBodyContentApplicationJsonSchemaFrom":{"type":"object","properties":{"currency":{"$ref":"#/components/schemas/V0RoutesPostRequestBodyContentApplicationJsonSchemaFromCurrency","description":"Source currency. `usd` (wire), `ausd`, or the `stablecoin` wildcard (any stablecoin deposit)."}},"required":["currency"],"title":"V0RoutesPostRequestBodyContentApplicationJsonSchemaFrom"},"V0RoutesPostRequestBodyContentApplicationJsonSchemaToCurrency":{"type":"string","enum":["ausd","usd","usdc"],"description":"Destination currency. `ausd`, `usd`, or a specific stablecoin (e.g. `usdc`). Never the wildcard.","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. `ausd`, `usd`, or a specific stablecoin (e.g. `usdc`). Never the wildcard."},"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"},"V0RoutesPostResponsesContentApplicationJsonSchemaFromCurrency":{"type":"string","enum":["ausd","stablecoin","usd","usdc"],"description":"Currency identifier.","title":"V0RoutesPostResponsesContentApplicationJsonSchemaFromCurrency"},"V0RoutesPostResponsesContentApplicationJsonSchemaFrom":{"type":"object","properties":{"currency":{"$ref":"#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaFromCurrency","description":"Currency identifier."}},"required":["currency"],"title":"V0RoutesPostResponsesContentApplicationJsonSchemaFrom"},"V0RoutesPostResponsesContentApplicationJsonSchemaToCurrency":{"type":"string","enum":["ausd","stablecoin","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","stablecoin","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","stablecoin","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_201":{"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"},"from":{"$ref":"#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaFrom"},"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","from","to","instructions"],"title":"routes_create_Response_201"},"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"],"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."},"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."},"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. v1 emits only `\"settled\"`. This is an open, extensible enum; future values (e.g. `pending`) may appear, so clients must tolerate unknown values."},"type":{"type":"string","description":"Customer-facing transaction type: `mint`, `redeem`, `bridge`, `reward`, or `return`. Treated as an open enum; tolerate unknown values."}},"required":["id","initiatedAt","isInstantSettlement","legCount","recipient","settledAt","source","status","type"],"description":"Settled-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":["FROM_AGORA","TO_AGORA"],"description":"Direction of value movement relative to Agora: `FROM_AGORA` (Agora → customer) or `TO_AGORA` (customer → Agora).","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 Agora: `FROM_AGORA` (Agora → customer) or `TO_AGORA` (customer → Agora)."},"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."},"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."},"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. v1 emits only `\"settled\"`. This is an open, extensible enum; future values (e.g. `pending`) may appear, so clients must tolerate unknown values."},"type":{"type":"string","description":"Customer-facing transaction type: `mint`, `redeem`, `bridge`, `reward`, or `return`. 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","initiatedAt","isInstantSettlement","legCount","recipient","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"}},"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](/api/authentication) for more details.\n"}}}}