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 }
  ]
}

Field
Type
Req
Notes

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’s amountIn

  • Send minAmountIn (RAW tokenOut) → router’s minAmountOut

  • Approve path[0] to routerAddress for at least amountOut before calling the swap.

Last updated