Quickstart
Quote a transfer, create it, and track it to completion.
Set BASE_URL to your TEE deployment (locally, http://localhost:3000). Every response is JSON with a success boolean and data or error.
This example uses USDC. Relay deployments can quote other source and destination assets when all route currencies resolve and sufficient liquidity exists. CCTP deployments support USDC only.
Quote
Preview what the recipient receives. No state is changed and no deposit address is allocated, so this is safe to call on every keystroke.
curl -X POST $BASE_URL/api/private-route/quote \
-H 'content-type: application/json' \
-d '{
"sourceChainId": 8453,
"destChainId": 137,
"amount": "100",
"tokenSymbol": "USDC",
"destTokenSymbol": "USDC"
}'Response data includes quotedOutputAmount, feeAmount, bridgeFeeAmount, privacyFeeAmount (all in destination-token smallest units), USD values when available, etaSeconds, and route for display. Re-quote every 15 to 20 seconds; the price is live.
Create
Commit the transfer. Same request body as quote plus userDestinationAddress.
curl -X POST $BASE_URL/api/private-route \
-H 'content-type: application/json' \
-d '{
"sourceChainId": 8453,
"destChainId": 137,
"amount": "100",
"tokenSymbol": "USDC",
"destTokenSymbol": "USDC",
"userDestinationAddress": "0xRecipient"
}'Send USDC to depositAddress on the source chain. Keep the returned routeId to track the transfer.
Populate the selectors
To build a token and chain picker, list what the service supports:
curl $BASE_URL/api/relay/chains
curl "$BASE_URL/api/relay/tokens?chainId=42161&search=USDC"For a CCTP testnet deployment, the Circle Faucet at faucet.circle.com provides test USDC on supported networks.