Skip to main content
POST
Populate a step with transaction data
If you requested the route with options.pools.deny, you must pass the same list again as the denyPools query parameter on every /v1/advanced/stepTransaction request. The list is request-scoped and is not carried in the returned step. Without it, swaps are re-quoted with no exclusions, so the transaction can use a pool or venue you excluded.
Provide 1–100 identifiers using the same formats as /v1/quote: non-zero Uniswap V2/V3 EVM pool addresses, Uniswap V4 <poolManagerAddress>-<poolId> identifiers or Solana venue program IDs. Repeat denyPools for multiple entries. Keep the Step object in the JSON request body.EVM pool exclusion is supported only by fly, and Solana venue exclusion only by jupiter, titan and okx. Passing the list again preserves the exclusions when swaps are re-quoted to build transaction data. If the list holds a Solana program ID, a step that swaps on Solana through any other exchange is rejected with a 400 error instead of being built without the exclusion.

Headers

x-lifi-api-key
string

Authentication header, register in the LI.FI Partner Portal (https://portal.li.fi/ ) to get your API Key.

Query Parameters

denyPools
string[]

One to 100 AMM pool or Solana venue identifiers to exclude when building transaction data. If the route was requested with options.pools.deny, you must pass the same list again for each step: pool exclusions are request-scoped and are not carried in the returned Step. Without it, swaps are re-quoted with no exclusions, so the transaction can use an excluded pool or venue. Repeat the query parameter for multiple entries, as with /v1/quote. Each entry is a non-zero Uniswap V2/V3 EVM pool address (0x + 40 hex), a Uniswap V4 <poolManagerAddress>-<poolId> identifier, where poolId is 0x + 64 hex, or a Solana venue program ID (base58). EVM pool exclusion is supported only by fly; Solana venue exclusion only by jupiter, titan and okx. If the list holds a Solana program ID, a step that swaps on Solana through any other exchange is rejected with a 400 error instead of being built without the exclusion. Keep the Step object in the JSON request body.

Required array length: 1 - 100 elements
skipSimulation
boolean

Parameter to skip transaction simulation. The quote will be returned faster but the transaction gas limit won't be accurate.

mayanNonEvmPermitSignature
boolean

Mayan specific option to bridge from non-EVM chain to Hyperliquid

svmMaxSupportedTransactionVersion
enum<number> | null
default:0

Maximum Solana transaction version the client can sign. Defaults to 0; omission or null uses v0. Set to 1 to allow V1 where enabled for the environment. Jito requests always use v0. Size overflow may fall back to v0. Read transactionRequest.svmTransactionVersion for the version actually built. Ignored for source chains other than Solana.

Available options:
0,
1
svmPriorityFeeLevel
enum<string>

Priority fee level for Solana Virtual Machine (SVM) transactions.

Available options:
NORMAL,
FAST,
ULTRA

Body

application/json

The step object

Object that represents one step of a Route

id
string
required

Unique identifier of the step

type
enum<string>
required

The type of the step. swap executes a DEX swap on a single chain, cross bridges assets between chains, lifi runs LiFi's internal multi-action logic, and protocol represents protocol-level actions such as fee collection or vault interactions executed inside LiFi managed contracts.

Available options:
swap,
cross,
lifi,
protocol
tool
string
required

The tool used for this step. E.g. relay

action
Root Type for Action · object
required

The action of the step

Example:
toolDetails
object

The details of the tool used for this step. E.g. relay

estimate
Root Type for Estimate · object

The estimation for the step

Example:
integrator
string

A string containing tracking information about the integrator of the API

includedSteps
Root Type for Internal Step · object[]
referrer
string

A string containing tracking information about the referrer of the integrator

execution
any

An objection containing status information about the execution

transactionRequest
object

An ether.js TransactionRequest that can be triggered using a wallet provider. (https://docs.ethers.io/v5/api/providers/types/#providers-TransactionRequest) Solana responses also include svmTransactionVersion (0 or 1), the version actually built. This may be lower than the requested maximum.

Response

The step populated with the transaction data

Object that represents one step of a Route

id
string
required

Unique identifier of the step

type
enum<string>
required

The type of the step. swap executes a DEX swap on a single chain, cross bridges assets between chains, lifi runs LiFi's internal multi-action logic, and protocol represents protocol-level actions such as fee collection or vault interactions executed inside LiFi managed contracts.

Available options:
swap,
cross,
lifi,
protocol
tool
string
required

The tool used for this step. E.g. relay

action
Root Type for Action · object
required

The action of the step

Example:
toolDetails
object

The details of the tool used for this step. E.g. relay

estimate
Root Type for Estimate · object

The estimation for the step

Example:
integrator
string

A string containing tracking information about the integrator of the API

includedSteps
Root Type for Internal Step · object[]
referrer
string

A string containing tracking information about the referrer of the integrator

execution
any

An objection containing status information about the execution

transactionRequest
object

An ether.js TransactionRequest that can be triggered using a wallet provider. (https://docs.ethers.io/v5/api/providers/types/#providers-TransactionRequest) Solana responses also include svmTransactionVersion (0 or 1), the version actually built. This may be lower than the requested maximum.