Base URL
Response Format
All responses follow a common wrapper structure:Configuration
Endpoints for retrieving supported chains, DEXs, tokens, and contract addresses.Get Chains
Returns the list of supported blockchain networks.| Field | Type | Description |
|---|---|---|
chainKey | string | Unique chain identifier (e.g. "ethereum", "arbitrum") |
chainId | number | EVM chain ID |
name | string | Display name |
rpcUrl | string | RPC endpoint URL |
explorerUrl | string | Block explorer URL |
nativeCurrency | object | Native token info (name, symbol, decimals) |
Get DEXs
Returns available DEXs for a specific chain.| Parameter | Type | Description |
|---|---|---|
chainKey | string | Chain identifier (e.g. "ethereum", "arbitrum") |
| Field | Type | Description |
|---|---|---|
dexKey | string | Unique DEX identifier |
name | string | Display name |
routerAddress | string | DEX router contract address |
type | string | DEX type (e.g. "uniswap_v3", "curve") |
Get Tokens
Returns supported tokens for a specific chain, including their capabilities (swap, bridge, etc.).| Parameter | Type | Description |
|---|---|---|
chainKey | string | Chain identifier |
| Field | Type | Description |
|---|---|---|
symbol | string | Token symbol (e.g. "USDT", "USDC") |
name | string | Token full name |
address | string | Token contract address |
decimals | number | Token decimals |
capabilities | string[] | Supported operations: "swap", "bridge_lz", "bridge_cctp" |
Get Contracts
Returns protocol contract addresses for a specific chain.| Parameter | Type | Description |
|---|---|---|
chainKey | string | Chain identifier |
| Field | Type | Description |
|---|---|---|
diamond | string | Main Diamond proxy contract address |
tedp | string | TEDP token contract address |
relayer | string | Gasless relayer contract address |
Quote
Get Quote
Returns a multi-path swap quote with optimal routing across available DEXs.| Field | Type | Required | Description |
|---|---|---|---|
srcChainKey | string | Yes | Source chain identifier |
dstChainKey | string | Yes | Destination chain identifier |
tokenIn | string | Yes | Input token symbol or address |
tokenOut | string | Yes | Output token symbol or address |
amountIn | string | Yes | Input amount (in token’s smallest unit) |
sender | string | No | Sender wallet address |
recipient | string | No | Recipient wallet address |
| Field | Type | Description |
|---|---|---|
amountOut | string | Expected output amount |
route | object[] | Swap route steps |
route[].dex | string | DEX used for this step |
route[].tokenIn | string | Input token for this step |
route[].tokenOut | string | Output token for this step |
route[].amountIn | string | Input amount for this step |
route[].amountOut | string | Output amount for this step |
priceImpact | string | Price impact in basis points |
bridgeType | string | Bridge type if cross-chain: "lz", "cctp", or null |
estimatedGas | string | Estimated gas cost |
Transaction
Build Transaction
Builds a ready-to-sign transaction based on the selected action type. Theaction field determines the transaction type and required parameters.
| Field | Type | Required | Description |
|---|---|---|---|
action | string | Yes | Transaction type (see below) |
sender | string | Yes | Sender wallet address |
srcChainKey | string | Yes | Source chain identifier |
| Action | Description |
|---|---|
swap | Single-chain single-hop swap |
swapMultiHop | Single-chain multi-hop swap |
bridgeOnlyLz | LayerZero bridge transfer (no swap) |
bridgeOnlyCctp | CCTP bridge transfer (no swap) |
swapAndBridgeLz | Swap then bridge via LayerZero |
swapAndBridgeCctp | Swap then bridge via CCTP |
| Field | Type | Required | Description |
|---|---|---|---|
tokenIn | string | Yes | Input token address |
tokenOut | string | Yes | Output token address |
amountIn | string | Yes | Input amount |
minAmountOut | string | Yes | Minimum acceptable output |
deadline | number | Yes | Unix timestamp deadline |
dex | string | Yes | DEX identifier to use |
| Field | Type | Required | Description |
|---|---|---|---|
token | string | Yes | Token address to bridge |
amount | string | Yes | Amount to bridge |
dstChainKey | string | Yes | Destination chain identifier |
recipient | string | Yes | Recipient address on destination chain |
| Field | Type | Required | Description |
|---|---|---|---|
tokenIn | string | Yes | Input token address |
tokenOut | string | Yes | Output token address |
amountIn | string | Yes | Input amount |
minAmountOut | string | Yes | Minimum acceptable output |
dstChainKey | string | Yes | Destination chain identifier |
recipient | string | Yes | Recipient address |
deadline | number | Yes | Unix timestamp deadline |
dex | string | Yes | DEX identifier |
| Field | Type | Description |
|---|---|---|
to | string | Target contract address |
data | string | Encoded calldata |
value | string | Native token value to send (wei) |
chainId | number | Chain ID for the transaction |
gasLimit | string | Recommended gas limit |
Relayer (Gasless)
Endpoints for gasless transaction execution. Users sign the transaction, and the relayer submits it on-chain, paying the gas fee.Estimate Relayer Fee
Returns the estimated relayer fee for a gasless transaction.| Field | Type | Required | Description |
|---|---|---|---|
chainKey | string | Yes | Chain where the transaction will execute |
action | string | Yes | Transaction action type (same as /tx/build) |
gasLimit | string | No | Estimated gas limit (auto-estimated if omitted) |
| Field | Type | Description |
|---|---|---|
feeToken | string | Token used for fee payment (e.g. "USDT") |
feeAmount | string | Fee amount in fee token’s smallest unit |
feeUsd | string | Fee in USD equivalent |
gasPrice | string | Current gas price (wei) |
validUntil | number | Unix timestamp until which this estimate is valid |
Execute Relay Transaction
Submits a signed transaction for gasless execution via the relayer.| Field | Type | Required | Description |
|---|---|---|---|
chainKey | string | Yes | Chain identifier |
signedTx | object | Yes | Signed transaction data |
signedTx.to | string | Yes | Target contract address |
signedTx.data | string | Yes | Encoded calldata |
signedTx.value | string | Yes | Native token value |
signedTx.signature | string | Yes | EIP-712 typed data signature |
strategy | string | Yes | Relay strategy: "sponsored" or "deducted" |
feeToken | string | Conditional | Required if strategy is "deducted" — token for fee deduction |
| Strategy | Description |
|---|---|
sponsored | Gas fee is sponsored (free for the user) |
deducted | Gas fee is deducted from the swap output in the specified fee token |
| Field | Type | Description |
|---|---|---|
txHash | string | On-chain transaction hash |
status | string | "submitted", "pending", "confirmed", or "failed" |
blockNumber | number | Block number (if confirmed) |
gasUsed | string | Actual gas used (if confirmed) |
feeDeducted | string | Fee deducted from output (if strategy is "deducted") |
Error Handling
When a request fails, the response includes an error message:| HTTP Status | Error | Description |
|---|---|---|
| 400 | "Invalid chain key" | The specified chain is not supported |
| 400 | "Invalid token address" | Token address not found on the specified chain |
| 400 | "Insufficient liquidity" | Not enough liquidity for the requested swap |
| 400 | "Amount too small" | Input amount is below the minimum threshold |
| 400 | "Invalid action" | Unsupported action type for /tx/build |
| 404 | "Route not found" | No swap route available for the token pair |
| 500 | "Internal server error" | Server-side error — retry later |
| 503 | "Service unavailable" | API temporarily unavailable |