Supported chains
TheassetId in a quote selects both the asset and the network it settles on.
Solana
Native SOL and SPL tokens.
EVM
Ethereum, Polygon, BSC, and other compatible networks.
Stellar
Native and issued assets. See the memo note below.
Tron
Native and token transfers.
XRPL / Ripple
XRP Ledger transfers.
The set of chains and assets actually enabled is per instance and can change over time. Always resolve the live catalog (below) rather than hardcoding a chain or asset list.
Accepted assets: the live catalog
The canonical, real-time list of assets, networks, and validassetId values is published as a JSON file:
gateway-config-latest.json to know which crypto assets are enabled, their contract addresses, and the networks supported on the current instance. It is the source of truth for the assetId you pass to cashout/quote, cashin/quote, and getAssetPrice. The GET /api/v1/accepted-cryptos endpoint returns the same catalog through the API.
Treat the catalog as dynamic. New assets and networks are added there without a documentation change, so resolve it at runtime instead of shipping a static copy.
No custody, no pre-funded balance
The platform never custodies funds and never holds a pre-funded balance for you. On cash-out, the user sends the on-chain transaction directly to the receiving wallet, and the transfer is matched to your intent by a memo.POST /api/v1/cashout/intentreturns the exactmemoto attach to the on-chain transaction, along with thereceiverwallet and theamount.- Always copy the
memoverbatim from the intent response. It carries an instance prefix followed by the intent id (the IPFS CID), and it is what lets us reconcile the incoming transfer to your order. Do not construct it yourself.
Stellar memo
Stellar caps aMEMO_TEXT at 28 bytes, and the instance prefix plus the intent id exceeds that limit. On Stellar the memo therefore travels on-chain as a MEMO_HASH (the SHA-256 of the memo string) rather than as text. This is handled by the platform: you still attach the memo value returned by the intent, and reconciliation resolves the hash back to your order internally. No extra step is required on your side, and other chains are unaffected.
Cash-out settlement state machine
Once the intent is created, the on-chain transfer drives its status:PENDING: intent created, waiting for the on-chain transfer.PROCESSING: crypto received on-chain, the PIX or boleto payout is being settled.COMPLETED: PIX or boleto paid to the payee.FAILED: the payout failed after exhausting retries.EXPIRED: no on-chain payment arrived within the quote window (5 minutes).
COMPLETED, FAILED, or EXPIRED. Each status transition fires the matching outbound webhook (INTENT_CONFIRMED, INTENT_COMPLETED, INTENT_FAILED); see Webhooks for the payloads.