Erebuzdocs

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.

Track

Poll until the status is terminal.

curl $BASE_URL/api/private-route/$ROUTE_ID

Status moves AWAITING_DEPOSIT to COMPLETED (or FAILED). See Reference for the full lifecycle.

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.

On this page