Skip to main content
Meta aggregator that routes through multiple aggregators and DEXes.

What it offers

  • swap: Execute swap via meta aggregation router

Notes

  • Same address on 11 of its 12 chains; zkSync Era’s differs
  • Meta-aggregates across 1inch, 0x, ParaSwap, and other aggregators
  • Route computation via KyberSwap API - callTarget/targetData come from API response
  • Approve srcToken to metaAggregationRouter before swapping
  • On Arc (5042) the router at this address is a smaller build than Ethereum’s (13724 vs 18652 bytes, a different owner, no swapGeneric/whitelist functions). Its swap has the same selector, struct and outputs (Blockscout-verified MetaAggregationRouterV2), and Kyber’s Arc API builds calldata that decodes under this ABI. Native input uses the 0xEeee…EEeE sentinel with msg.value in Arc’s 18-decimal native USDC; Kyber’s own routes use the ERC-20 0x3600…0000 with 6-decimal amounts

Its names in a program

On Ethereum, KyberswapAggregator is a namespace: its contracts need no import.

Deployments

ABI

KyberSwapMetaAggregationRouterABI

import KyberSwapMetaAggregationRouterABI from "./protocols/kyberswap-aggregator/KyberSwapMetaAggregationRouterABI.json"; Speaks for: metaAggregationRouter.
  • 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