What “Routers and Aggregators” means on Arc
A pool holds the liquidity; a router is what a wallet actually calls. These are named from a factory() relationship, from revert strings the contract carries in its own bytecode, or from being the sole emitter of an event whose payload says what it does. Several of them share an owner() key, and the evidence records that rather than turning it into a brand — a shared key is a statement about who holds it, not about what the code is.
| Address | Label | Token | Detail | First Block | Last Block |
|---|---|---|---|---|---|
| AMM Router (0x34a0b64a pools) | — | factory() returns 0x34a0b64a...7e9c. Sender of 4,625 Swap events in blocks > 54,100,000 — the third-busiest router on the chain.Factory relationship · measured at block 54,281,486 |
An address is a 20-byte identifier that can hold a balance and, when it carries code, execute it. Gas on Arc is paid in USDC, so the balance shown for an address is denominated in dollars rather than in a volatile asset.
| 54,281,486 |
| — |
| 0x49f9636F...Fe6BC219B | AMM Router and Pool Registry | — | Second-busiest emitter of the same aggregator-shaped Swap event, 102,982 logs in blocks > 54,080,000. Bytecode carries `Invalid path`, `No Liquidity`, `Pool already exists`, `Same token addresses` — it both creates pools and routes through them. No brand string.Bytecode string · measured at block 54,281,486 | 54,281,486 | — |
| 0x4AA8c7Ac...1ac76824A | ArcFlow V25: Router | — | factory() returns 0xd67f63a4...43a5, the ArcFlow V25 factory. Sender of 436 Swap events in blocks > 54,100,000.Factory relationship · measured at block 54,281,486 | 54,281,486 | — |
| 0xa01a6F36...3AC66EAB9 | Arcin V2: Router | — | factory() returns 0xa16af7fc...e3a8, whose bytecode carries the literal `Arcin V2`. Sender of 598 Swap events in blocks > 54,100,000.Factory relationship · measured at block 54,281,486 | 54,281,486 | — |
| 0x996eBb17...E0Ef769A5 | Native-USDC V3 Router | — | factory() returns 0xab6a8aab...1971. Sender of 2,115 Swap events in blocks > 54,100,000. Bytecode carries `No native USDC received` and `Invalid native USDC scale` — it is Arc-specific, wrapping the 18-decimal native gas token against the 6-decimal ERC-20 face rather than an imported WETH router. It answers owner() with 0xe71dd45e...d43d, the same EOA that owns the Relayer Order Router 0x2becde56...2403 and the Swap Executor 0x2de8906a...2bcb: those three are one operator's stack rather than three independent front doors.Factory relationship · measured at block 54,281,486 | 54,281,486 | — |
| 0xdA859770...dd664a538 | OnmiFun: Router | — | factory() returns 0x724b24e0...a8d4, the OnmiFun factory, and WETH() returns 0x911b4000...82df (Wrapped USDC). Sender of 2,183 Swap events in blocks > 54,100,000.Factory relationship · measured at block 54,281,486 | 54,281,486 | — |
| 0x2bECdE56...40E612403 | Relayer Order Router | — | Sole emitter of the chain's fifth-busiest event, 146,033 logs in blocks > 54,080,000 (topic0 0x7587d834...). Bytecode carries `Caller is not a relayer`, `Order inactive`, `Amount exceeds authorization`, `Route target not allowed` and `Approval spender not allowed`: a meta-transaction router that executes pre-authorised swap orders against an allow-list of route targets. No brand string, so it is named for what it does. Shares its owner() EOA 0xe71dd45e...d43d with the Swap Executor 0x2de8906a...2bcb and the Native-USDC V3 Router 0x996ebb17...69a5.Bytecode string · measured at block 54,281,486 | 54,281,486 | — |
| 0xFF5Cb292...D24A6E8d1 | Swap Dispatcher | — | Sole emitter of 17,315 logs on each of two topics in blocks > 54,080,000. Bytecode carries `Bad swap type`, `Swap type 8 is only for ETH <-> ...`, `Received nothing` — a numbered-route dispatcher over several venues.Bytecode string · measured at block 54,281,486 | 54,281,486 | — |
| 0x2De8906a...d59742bCb | Swap Executor | — | Sole emitter of 72,710 logs on topic0 0x01e40e92... in blocks > 54,080,000. Bytecode carries `Route target not allowed`, `Approval spender not allowed`, `Invalid treasury`, `Insufficient output amount`: a fee-taking swap executor that forwards to allow-listed route targets. Emits no pool Swap events of its own — it is a front door, not an AMM. Shares its owner() EOA 0xe71dd45e...d43d with the Relayer Order Router 0x2becde56...2403 and the Native-USDC V3 Router 0x996ebb17...69a5.Bytecode string · measured at block 54,281,486 | 54,281,486 | — |
| 0xDf115b4f...5B379Bce2 | Tower: Router | — | factory() returns 0x9de50a65...821d, the Tower factory. Sender of 39,069 Swap events in blocks > 54,100,000 — the most of any address on the chain. Its own bytecode carries `Tower: EXCESSIVE_INPUT_AMOUNT` and `Tower: LP_TRANSFER_FAILED`.Factory relationship · measured at block 54,281,486 | 54,281,486 | — |
| 0x5794a828...2001424D6 | Two-hop Swap Router (pathUSD) | — | Busiest emitter of Swap(address indexed user,address tokenIn,address tokenOut,uint256 amountIn,uint256 amountOut) at 112,154 logs in blocks > 54,080,000. Bytecode carries `Insufficient output in first hop`, `Insufficient output in second hop`, `User token cannot be pathUSD` and `Validator token must be pathUSD` — a two-hop router routing through an intermediate unit it calls pathUSD.Bytecode string · measured at block 54,281,486 | 54,281,486 | — |
| 0xEaF3195b...5DA48e76F | Universal Router | — | Deployed bytecode contains the literal `UniversalRouter`, the self-declared name of the Uniswap Universal Router design. It routes across two pool families: of the 25 pools it traded against in blocks > 54,100,000, 19 belong to the ArcFlow V25 V2 factory and 6 to the V3 factory 0xab6a8aab...1971. 1,350 Swap events over that range. This was previously written up as the only router that spans PROTOCOLS; that inference is withdrawn, because 0xab6a8aab...1971 answers owner() with 0x3682652c...55b8, the same EOA that owns the ArcFlow NFT — so the two families are more likely two versions of one deployment than two protocols, which is exactly the reading applied to 0xbf4479c0...275f. Whether any router on Arc is genuinely cross-protocol is unresolved.Bytecode string · measured at block 54,281,486 | 54,281,486 | — |
| 0xB5D2f3Aa...a5B831c7f | V3 Router (0x065b21b2 pools) | — | factory() returns 0x065b21b2...a010. Sender of 334 Swap events in blocks > 54,100,000.Factory relationship · measured at block 54,281,486 | 54,281,486 | — |
| 0xbf4479C0...9e894275F | V3 Router (0x0fb6eeda pools) | — | Sender of 19,456 Swap events in blocks > 54,100,000. All 55 distinct pools it traded against answer factory() with 0x0fb6eeda...f59c, so it is a second router for that one deployment rather than an aggregator. It exposes no factory() of its own, which is why the label names the factory instead of a brand.Factory relationship · measured at block 54,281,486 | 54,281,486 | — |
| 0xc2d2829c...75EAade68 | V3 Router (0x7e875574 pools) | — | factory() returns 0x7e875574...c01a. Sender of 722 Swap events in blocks > 54,100,000.Factory relationship · measured at block 54,281,486 | 54,281,486 | — |
| 0xA545bCB1...03434C31b | V3 Swap Router | — | factory() returns 0x0fb6eeda...f59c and WETH9() returns 0x911b4000...82df (Wrapped USDC). Sender of 22,101 V3-shaped Swap events in blocks > 54,100,000 — the busiest V3 router on the chain. Bytecode carries the Uniswap-V3-periphery revert string `Not WETH9`.Factory relationship · measured at block 54,281,486 | 54,281,486 | — |
| 0x73742278...6E2141023 | XyloNet: Router | — | Deployed bytecode contains `XyloRouter: INVALID_PATH`, `XyloRouter: POOL_NOT_FOUND`, `XyloRouter: EXCESSIVE_INPUT`. Emitted 23,791 logs on the same topic as the XyloNet pool in blocks > 54,080,000.Bytecode string · measured at block 54,281,486 | 54,281,486 | — |