/intents/route endpoint.
To get a quote, you’ll need the destination chain, the token and amount on that chain, and the account address:
Get Quote
intentOp: the full intent operation the user must sign (see below)intentCost: the cost breakdown including tokens spent, tokens received, and feestokenRequirements: the list of token requirements to fulfill before signing
Understanding the response
intentOp
The intentOp object contains everything needed to build signatures and submit the intent. Key fields:
| Field | Description |
|---|---|
elements | One entry per source chain involved. Each element describes what tokens are pulled from that chain and what the user receives on the destination. |
nonce | A unique nonce for Permit2 signing. |
expires | Unix timestamp when the quote expires. Fetch a fresh quote if this has passed. |
signedMetadata | Orchestrator-signed metadata including token prices. Do not modify this. |
Element fields
Each element inintentOp.elements describes one source chain:
| Field | Description |
|---|---|
chainId | The source chain ID (e.g. "8453" for Base). |
arbiter | The arbiter contract that validates the fill. |
idsAndAmounts | Array of [tokenId, amount] pairs: tokens pulled from the user on this chain. |
mandate.recipient | Address that receives tokens on the destination. |
mandate.tokenOut | Array of [tokenId, amount] pairs: tokens delivered to the recipient. |
mandate.destinationChainId | The destination chain ID. |
mandate.fillDeadline | Unix timestamp by which the solver must fill. |
mandate.destinationOps | Calls to execute on the destination chain after fill. |
elements use a packed uint256 encoding called a token ID. The token ID encodes the ERC-20 address in its lower 160 bits. To extract the address:
element.idsAndAmounts: tokens pulled from the source chain (what the user spends)element.spendTokens: tokens the solver must lockelement.mandate.tokenOut: tokens delivered on the destination chain
intentCost
The intentCost object breaks down what the user pays:
| Field | Description |
|---|---|
tokensSpent | Map of chainId -> tokenAddress -> { locked, unlocked, version }. Shows exactly what leaves the user’s wallet per chain. |
tokensReceived | Array of objects showing what arrives on the destination, including amountSpent, destinationAmount, and fee. |
feeBreakdownUSD | USD breakdown of swap, bridge, gas, and settlement fees (when available). |
Executions (calls)
You can make executions on behalf of the EOA on the destination chain. Note: the executions run in the context of the multicall contract. If you’re sending any tokens, make sure to add a call to transfer any output back to the EOA.Sponsorship
You can mark the intent as sponsored (covering the gas and bridging costs for the user) by setting thesponsorSettings field:
Sponsor the Intent
Source Chain / Token
You can select which tokens and/or chains to use as the source of funds. 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
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,tokensSpent and tokensReceived will show different tokens:
amountSpent minus destinationAmount).
Next Steps
Token Requirements
What the intent requirements are and how to fulfill them