Skip to main content
To get started with Warp, request a quote for a crosschain intent. Use the /quotes endpoint. You’ll need the destination chain, the token and amount on that chain, and the account address:
Get Quote
Chain ids on every field are CAIP-2 strings (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:

cost

The cost object on each route describes what the user pays:

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.
Each route carries its own 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 explicit transfer call to send them back to the EOA.

Sponsorship

Mark the intent as sponsored (covering gas and bridging costs for the user) by setting sponsorSettings:
Sponsor the Intent

Custom fill deadline

An intent’s on-chain fill deadline defaults to 2 minutes. For same-chain intents that settle without bridging, extend it with options.customDeadline — an absolute unix timestamp in seconds. Use it when the user needs longer to approve, or you’re fetching a quote now to submit later.
Custom fill deadline
The value must be between now + 120s and now + 86400s (24 hours); outside that range the request is rejected with a 400. When honored, the intent’s fill deadline and its claim/nonce expiry extend to match.
customDeadline is honored only on same-chain intents that settle without bridging. On any other route — cross-chain, or a same-chain swap that requires funding — it is silently ignored and the default 2-minute deadline applies. The only signal is a nearer expiry on the returned quote.

Source chain / token

Select which tokens and/or chains to use as the source of funds via accountAccessList. To limit the source of funds to specific chains:
Select Input Chains
To limit the source of funds to specific tokens:
Select Input Tokens
To limit the source of funds to specific chains and tokens:
Select Input Chains and Tokens
or:
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.
Don’t list funds the account already holds — the orchestrator picks those up automatically, and adding them via auxiliaryFunds double-counts the balance and inflates the input amount in the quote.
For tokens produced by a source call (a vault exit, unwrap, unstake), declare them via 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:
Here the user spends WETH on Base (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