BuildCalldataRequestDto
Single-hop request
{
"fromTokenAddress": "0x833589fCD6EdB6E08f4c7C32D4f71B54bDa02913",
"toTokenAddress": "0x0b3e328455c4059EEb9e3f84b5543F74E24e7E1b",
"chainId": 8453,
"userWallet": "0x000000000000000000000000000000000000dEaD",
"amountOut": "100000000",
"minAmountIn": "64813995948785878300",
"routerType": "uniswapv3",
"feeTier": 500
}Multi-hop request
{
"fromTokenAddress": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42",
"toTokenAddress": "0xE9185Ee218cae427aF7B9764A011bb89FeA761B4",
"chainId": 8453,
"userWallet": "0x000000000000000000000000000000000000dEaD",
"amountOut": "100000000",
"minAmountIn": "618042428770765345237",
"routerType": "aerodrome-slipstream",
"path": [
"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42",
"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"0xE9185Ee218cae427aF7B9764A011bb89FeA761B4"
],
"multihop": [
{ "fromTokenAddress":"0x60a3...db42","toTokenAddress":"0x8335...2913","feeTier":50 },
{ "fromTokenAddress":"0x8335...2913","toTokenAddress":"0xE918...61B4","feeTier":10 }
]
}fromTokenAddress
string
✅
from quote
toTokenAddress
string
✅
from quote
chainId
number
✅
from quote
userWallet
string (address)
✅
recipient (EOA/SCA)
amountOut
string (RAW)
✅
quote.amountOut (RAW tokenIn)
minAmountIn
string (RAW)
✅
quote.minAmountIn (RAW min tokenOut)
routerType
string
✅
from quote
feeTier
number
⭕
single-hop v3 only
path
string[]
⭕
required for multi-hop (exact from quote)
multihop
Hop[]
⭕
required for multi-hop (exact from quote)
Builder responses (summary):
Single-hop:
abiFunctionSignature = "swapExactInputVia(address,address,address,uint256,uint256,address,bytes)"Multi-hop:
abiFunctionSignature = "swapExactInputPathVia(address,address[],uint256,uint256,address,bytes)"
Both responses include:
Execution mapping (important):
Send
amountOut(RAW tokenIn) → router’samountInSend
minAmountIn(RAW tokenOut) → router’sminAmountOutApprove
path[0]torouterAddressfor at leastamountOutbefore calling the swap.
Last updated

