Skip to main content
Sending USDC across chains is the most common Routes flow. This recipe walks through a server-side integration: get a quote, publish and fund the intent onchain using the encodedRoute from the quote, poll for fulfillment. For an interactive CLI walkthrough instead, see the Routes CLI guide.

1. Get a quote

The response includes quoteResponse.encodedRoute, quoteResponse.deadline, contracts.sourcePortal, and contracts.prover. That’s everything you need to publish onchain.

2. Approve the reward token to the source Portal

3. Publish and fund

Build the reward struct from the quote and call publishAndFund on the source Portal.

4. Track fulfillment

Status returns { status: "Pending" | "Completed", subStatus: "WaitingToFulfill" | "WaitingForRefund" | "Fulfilled" | "Refunded", subStatusMessage }. Typical fulfillment: 20–40 seconds. You’ve successfully sent USDC across chains.