Using the Rhinestone SDK? The wallet quickstart already covers crosschain intents. Come back here when you need API-specific configuration.Using an existing smart account (non-Rhinestone SDK)? You’ll need to install the Intent Executor on each account before using Warp, then follow the smart account signing guide for the signing step.
Prerequisites
- A Rhinestone API key (request one here) — not required for testnets
- An EOA with funds on at least one supported chain
Steps
Get a quote
Submit a meta intent to the The response includes:
/intents/route endpoint. Specify your destination chain, the token and amount you want on that chain, and your account:intentOp: the intent elements for the user to signintentCost: the total cost in input tokenstokenRequirements: any approvals or wrapping the user needs to complete before signing
Fulfill token requirements
Before signing, the user must fulfill any ETH wrapping — wrap native ETH to WETH:
tokenRequirements returned in the quote. There are two types:ERC-20 approvals — approve tokens to the Permit2 contract:Use max approvals to the Permit2 contract. This is the only contract you ever approve — future intents won’t need a new approval.
Sign the intent
Get a fresh quote (to avoid stale pricing), then sign each intent element using EIP-712. You need one signature per input chain. The last signature also doubles as the destination signature.
Signing guide
Full
getTypedData implementation and type definitionsPoll for completion
Track execution status using the operation ID:Typical execution time is under 2 seconds. See Submitting the Intent for the full list of statuses.