QuoteIntent
Get a route and fee estimate for a payment. The quote is valid for 5 minutes. Endpoint:POST /QuoteIntent
Request parameters
| Field | Type | Required | Description |
|---|---|---|---|
ownerAddress | string | Yes | The customer’s wallet address |
originChainId | number | Yes | Chain ID of the source network |
originTokenAddress | string | Yes | Token contract address on the source network |
destinationChainId | number | Yes | Chain ID of the destination network |
destinationTokenAddress | string | Yes | Token contract address at the destination |
tradeType | "EXACT_INPUT" | "EXACT_OUTPUT" | Yes | Whether the fixed amount is on the input or output side |
originTokenAmount | string | If EXACT_INPUT | Amount to send, in the origin token’s smallest unit |
destinationTokenAmount | string | If EXACT_OUTPUT | Amount to receive, in the destination token’s smallest unit |
destinationToAddress | string | Yes | Wallet or contract address to receive funds |
destinationCalldata | string | No | ABI-encoded calldata for a destination action (see programmable destinations) |
options.slippageTolerance | number | No | Maximum acceptable slippage as a decimal (e.g. 0.005 for 0.5%) |
Response fields
| Field | Description |
|---|---|
intent | The full intent object, including depositAddress: the address to send funds to |
feeOptions | Array of fee payment options; pass your chosen option to ExecuteIntent |
Example
CommitIntent
Lock in a quoted intent. After committing, the route and fees are fixed. The intent must be executed within 10 minutes or it expires. Endpoint:POST /CommitIntent
Request parameters
| Field | Type | Required | Description |
|---|---|---|---|
intent | object | Yes | The full intent object returned by QuoteIntent |
Response fields
| Field | Description |
|---|---|
intentId | Unique identifier for the committed intent; use this in all subsequent calls |
Example
ExecuteIntent
Initiate execution of a committed intent. Two execution methods are available. Endpoint:POST /ExecuteIntent
Method A: Transfer
Send funds tointent.depositAddress from your wallet or on-ramp, then submit the source transaction hash.
| Field | Type | Required | Description |
|---|---|---|---|
intentId | string | Yes | The intent ID from CommitIntent |
depositTransactionHash | string | Yes | Transaction hash of the transfer to depositAddress |
Method B: Permit (gasless, ERC-2612)
For tokens that support ERC-2612 permit signatures, execute without a separate approval transaction. The customer signs an off-chain permit instead of sending a transaction.| Field | Type | Required | Description |
|---|---|---|---|
intentId | string | Yes | The intent ID from CommitIntent |
feeOption | object | Yes | The selected fee option from QuoteIntent |
permitSignature | string | Yes | ERC-2612 permit signature authorizing the transfer |
intentSignature | string | Yes | Customer’s signature over the intent |
depositSignature | string | Yes | Signature authorizing the deposit |
nonce | number | Yes | Nonce used in the permit signature |
deadline | number | Yes | Unix timestamp deadline used in the permit signature |
AbortIntent
Cancel aQUOTED or COMMITTED intent. Intents that are EXECUTING, SUCCEEDED, or FAILED cannot be aborted.
Endpoint: POST /AbortIntent
Request parameters
| Field | Type | Required | Description |
|---|---|---|---|
intentId | string | Yes | The intent ID to cancel |