Request Swap Verification
ABI-encodes (tokenIn, tokenOut, timestamp, fee, originRate, userAddress),
Keccak256-hashes the payload, and signs it with secp256k1.
The recovery ID is adjusted from [0,1] to [27,28] per the Ethereum Yellow Paper.
The response contains ABI-encoded verification data (fee, originRate, userAddress, signature)
ready for on-chain submission.
verificationData and timestamp. Both values must be passed directly into the swap() function — if either is modified or expired, the transaction will revert.
Optionally, pass amountIn (and minAmountOut) to receive pre-built calldata ready for direct submission.
Swap Execution Flow
Step 1 — Call this endpoint
Minimal (verification data only):amountIn and optionally minAmountOut):
calldata field is ABI-encoded for swap(address,uint256,address,uint256,uint256,bytes) and can be submitted directly to the router without further encoding.
Step 2 — Approve the Router
Step 3 — Execute the swap on-chain
Option A — build the call yourself:| Parameter | Description |
|---|---|
tokenIn | Input token address |
amountIn | Amount of input token (in token decimals) |
tokenOut | Output token address |
minOutAmount | Minimum acceptable output — set this to protect against slippage |
timestamp | Returned by this API — pass through unchanged |
verificationData | Returned by this API — pass through unchanged |
calldata from the API (requires amountIn in Step 1):
calldata is already ABI-encoded for swap(address,uint256,address,uint256,uint256,bytes) — no further encoding needed.
Fee Parameter
Thefee field uses 0.1 bps resolution:
| Value | Rate |
|---|---|
1 | 0.1 bps (0.001%) |
10 | 1 bps (0.01%) |
30 | 3 bps (0.03%) |
100 | 10 bps (0.10%) |
amountOut) and settled monthly in a mutually agreed currency.Authorizations
API key issued by the Kipseli team. Required on every request.
Body
EVM hex address of the input token (checksummed or lowercase)
"0x4200000000000000000000000000000000000006"
EVM hex address of the output token (checksummed or lowercase)
"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
Fee tier as a decimal string in 0.1 bps resolution(e.g. "3000" = 3%)
"3000"
EVM hex address of the user submitting the swap
"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
Input token amount in wei as a decimal string. When provided, the response
will include a calldata field with ABI-encoded calldata for the swap function.
"1000000000000000000"
Minimum accepted output token amount in wei as a decimal string.
Only used when amountIn is provided. Defaults to 0 if omitted.
"3150000000"
Response
Quote signed successfully
ABI-encoded hex string (with 0x prefix) containing
(fee, originRate, userAddress, signature). Pass this directly
to the on-chain verification contract.
"0xabcdef..."
Unix timestamp (seconds) at which the signature was generated
1741737600
ABI-encoded calldata (with 0x prefix) for the swap(address,uint256,address,uint256,uint256,bytes)
function. Only present when amountIn was provided in the request.
The encoded arguments are (tokenIn, amountIn, tokenOut, minAmountOut, quoteTimestamp, verificationData).
"0x..."