To get started with Warp, request a quote for a crosschain intent. Use theDocumentation Index
Fetch the complete documentation index at: https://docs.rhinestone.dev/llms.txt
Use this file to discover all available pages before exploring further.
/quotes endpoint. You’ll need the destination chain, the token and amount on that chain, and the account address:
Get Quote
eip155:<chainId>).
Understanding the response
The response is{ routes }, an array pre-ranked by a cost/speed tradeoff. Pick routes[0] unless you have your own criteria.
Each route carries everything you need to sign and submit:
| Field | Description |
|---|---|
intentId | Server-stored quote handle. Pass it to POST /intents to submit. |
cost | Cost breakdown. See below. |
signData | EIP-712 typed data to sign. signData.origin[] has one entry per source chain; signData.destination is the destination signature. |
tokenRequirements | Approvals or ETH wrapping the user must complete before signing. EOAs only — smart accounts handle this automatically. |
cost
The cost object on each route describes what the user pays:
| Field | Description |
|---|---|
input | Tokens spent. Array of { chainId, tokenAddress, symbol, decimals, price, amount }. |
output | Tokens delivered to the recipient on the destination chain. Same shape as input. |
fees | { total: { usd }, breakdown: { gas, swap, bridge } }. Each breakdown entry has { usd, sponsored } — sponsored reflects what was actually covered for this route, given the request’s sponsorSettings and the project’s sponsorship balance. |
Choosing a different route
routes[] is server-ranked, so routes[0] is the default pick. If you want a different one — cheaper, faster, on a specific settlement layer — iterate routes and submit the chosen route’s intentId. No extra parameter is needed; the API selects the quote by intentId.
signData, so always sign against the route you intend to submit — signatures from one route won’t verify against another.
Executions (calls)
You can run executions on behalf of the EOA on the destination chain. For EOAs, executions run in the context of an intermediary contract — not the user’s account. If you receive any tokens (vault shares, swap output, etc.), include an explicittransfer call to send them back to the EOA.
Sponsorship
Mark the intent as sponsored (covering gas and bridging costs for the user) by settingsponsorSettings:
Sponsor the Intent
Source chain / token
Select which tokens and/or chains to use as the source of funds viaaccountAccessList.
To limit the source of funds to specific chains:
Select Input Chains
Select Input Tokens
Select Input Chains and Tokens
Select Input Chains and Tokens
Auxiliary funds
auxiliaryFunds declares balances that aren’t visible to the orchestrator yet but will be available by the time the intent settles. Use it to quote ahead of an inflow — a pending CEX deposit, a vault withdrawal, an unstake, or any other balance that will arrive before fill.
provides on the call itself — not here.
auxiliaryFunds and accountAccessList solve different problems: accountAccessList restricts which existing balances the router is allowed to spend, while auxiliaryFunds adds expected balances the router otherwise can’t see. They can be combined.
Swaps
If the destination token differs from the user’s source token, Warp handles the bridge and swap automatically. No additional parameters are needed — just specify the token you want on the destination chain. In a swap quote,cost.input and cost.output show different tokens:
eip155:8453) to receive USDC on Optimism. output.amount matches the requested amount exactly — fees are paid in input tokens, not deducted from the output. Compare input.amount × input.price.usd to output.amount × output.price.usd to see the cost.
Next Steps
Token Requirements
What the intent requirements are and how to fulfill them