RFQ API

User Actions

The action envelope and chain-specific payload formats returned by POST /v1/quote.

Every quote returned by POST /v1/quote contains an actions array: the ordered list of steps the user must execute, in sequence, to start the transfer. Each action is a chain-agnostic envelope with a chain-specific payload, discriminated by payload.type.

This page will expand as additional action and payload types are introduced.

Action Envelope

{
  "id": "approve",
  "label": "Approve token",
  "type": "approval",
  "chain": "eip155:42161",
  "payload": {
    "type": "evm_transaction",
    "to": "0x...",
    "data": "0x...",
    "value": "0",
    "gasLimit": "60000"
  }
}
FieldTypeDescription
idstringStable identifier for the action within the quote (e.g. approve, transfer)
labelstringHuman-readable label suitable for display
typestringAction type (see below)
chainstringCAIP-2 chain the action is executed on
payloadobjectChain-specific execution payload, discriminated by payload.type

Action Types

typeMeaning
approvalToken allowance transaction required before the transfer can be started
transactionThe transaction that starts the transfer
deposit_addressSend funds to a deposit address; no contract interaction required

Payload Types

evm_transaction

A ready-to-sign EVM transaction.

{
  "type": "evm_transaction",
  "from": "0x...",
  "to": "0x...",
  "data": "0x...",
  "value": "0",
  "gasLimit": "180000",
  "maxFeePerGas": "12205661344",
  "maxPriorityFeePerGas": "2037863396"
}

from, to, data, and value encode the route and must be submitted exactly as returned. The remaining fields — gasLimit, maxFeePerGas, maxPriorityFeePerGas — are suggestions, not authoritative values: they are estimated at quote time and wallets are expected to re-estimate or override them at submission. They may be omitted from some quotes.

solana_instructions

Instructions to assemble into a Solana transaction.

{
  "type": "solana_instructions",
  "instructions": [
    {
      "programId": "...",
      "keys": [
        { "pubkey": "...", "isSigner": true, "isWritable": true }
      ],
      "data": "..."
    }
  ],
  "addressLookupTableAddresses": []
}

deposit_address

Send the specified amount to the deposit address.

{
  "type": "deposit_address",
  "address": "...",
  "amount": "1000000",
  "token": "..."
}

On this page