POST
/
execute
/
swap
This API has been replaced by the Get Quote API, which supports bridging, swapping and calling through a single unified API.
We recommend using the SDK over our APIs. The SDK will iterate the steps and return useful callback information. The APIs will require iterating through the steps manually.
Get started with the Relay SDK here.

Body

application/json
amount
string
required

Amount to swap as the base amount (can be switched to exact input/output using the dedicated flag), denoted in the smallest unit of the specified currency (e.g., wei for ETH)

destinationChainId
number
required
destinationCurrency
string
required
originChainId
number
required
originCurrency
string
required
tradeType
enum<string>
required

Whether to use the amount as the output or the input for the basis of the swap

Available options:
EXACT_INPUT,
EXACT_OUTPUT
user
string
required

Address that is depositing funds on the origin chain and submitting transactions or signatures

appFees
object[]
recipient
string

Address that is receiving the funds on the destination chain, if not specified then this will default to the user address

refundOnOrigin
boolean

Always refund on the origin chain in case of any issues

refundTo
string

Address to send the refund to in the case of failure, if not specified then the recipient address or user address is used

slippageTolerance
string

Slippage tolerance for the swap, if not specified then the slippage tolerance is automatically calculated to avoid front-running. This value is in basis points (1/100th of a percent), e.g. 50 for 0.5% slippage

source
string
txs
object[]
useExternalLiquidity
boolean

Enable this to use canonical+ bridging, trading speed for more liquidity

useForwarder
boolean
default:
true

Enable this to route payments via a forwarder contract. This contract will emit an event when receiving payments before forwarding to the solver. This is needed when depositing from a smart contract as the payment will be an internal transaction and detecting such a transaction requires obtaining the transaction traces.

usePermit
boolean

Enable this to use permit (eip3009) when bridging, only works on supported currency such as usdc

Response

200 - application/json
balances
object
breakdown
object[]
details
object

A summary of the swap and what the user should expect to happen given an input

fees
object
steps
object[]

An array of steps detailing what needs to be done to bridge, steps includes multiple items of the same kind (signature, transaction, etc)