What it offers
- swap: Exact input single swap via Elastic Router (concentrated liquidity)
Notes
- Elastic Router naming differs from Uniswap V3:
minAmountOut(notamountOutMinimum),limitSqrtP(notsqrtPriceLimitX96) - The Elastic Router address is the same on its 6 chains, and the Meta Agg Router address on all 8
- Meta Aggregation Router routes across multiple DEXes (not just KyberSwap pools)
- The
datafield in the Meta Agg Router swap must be pre-encoded from KyberSwap’s API - Input token must be ERC20-approved to the Elastic Router for direct swaps
- For Meta Agg swaps, approve to the
approveTargetaddress returned by the API - On Arc (5042) only the Meta Aggregation Router is deployed (no Elastic), and it is a smaller build than Ethereum’s at the same address: 13724 vs 18652 bytes, a different owner, and no
swapGeneric/whitelist functions. Itsswaphas the same selector, struct and outputs (Blockscout-verifiedMetaAggregationRouterV2), and Kyber’s Arc API builds calldata that decodes under this ABI. Native input uses the0xEeee…EEeEsentinel withmsg.valuein Arc’s 18-decimal native USDC; Kyber’s own routes use the ERC-200x3600…0000with 6-decimal amounts
Its names in a program
On Ethereum,Kyberswap is a namespace: its contracts need no import.
Deployments
ABI
KyberSwapElasticRouterABI
import KyberSwapElasticRouterABI from "./protocols/kyberswap/KyberSwapElasticRouterABI.json"; Speaks for: elasticRouter.
swapExactInputSingle((address tokenIn, address tokenOut, uint24 fee, address recipient, uint256 deadline, uint256 amountIn, uint256 minAmountOut, uint160 limitSqrtP) params) payable returns (uint256 amountOut)
KyberSwapMetaAggregationRouterABI
import KyberSwapMetaAggregationRouterABI from "./protocols/kyberswap/KyberSwapMetaAggregationRouterABI.json"; Speaks for: metaAggregationRouterV2.
swap((address callTarget, address approveTarget, bytes targetData, (address srcToken, address dstToken, address[] srcReceivers, uint256[] srcAmounts, address[] feeReceivers, uint256[] feeAmounts, address dstReceiver, uint256 amount, uint256 minReturnAmount, uint256 flags, bytes permit) desc, bytes clientData) execution) payable returns (uint256 returnAmount, uint256 gasUsed)
Next steps
- Protocols: the other protocols, by what they do.
- Protocols and tokens: calling a contract by its namespace, or through its ABI.
- Glossary: the words these pages use, in plain terms.
