cross

Addresses

Every contract this product reads, settles through, or deliberately refuses to touch — with the call that established it. Nothing here was taken from a directory, because on this chain the directory is wrong.

Chain 4663 · measured at block 57,600,352 · 2026-09-08

Live · 13

Each of these was proved by asking a contract something only the real one could answer: a router's own factory(), a position manager's own poolManager(), a codehash.

Uniswap V4 PoolManager24,009 bytes
0x8366a39CC670B4001A1121B8F6A443A643e40951

Answers the v4 singleton's own selectors — extsload, unlock, settle, and the ERC-6909 balance. Both the router and the position manager below name it. Holds 14,615 ether and $48.2M.

Uniswap V4 PositionManager23,877 bytes
0x58daec3116aae6d93017baaea7749052e8a04fa7

Its poolManager() returns the address above.

UniversalRouter (the one traffic uses)24,546 bytes
0x8876789976dEcBfCbBbe364623C63652db8C0904

Its poolManager() returns the live singleton. It is also the router most swaps on this chain are sent through.

Uniswap V3 Factory24,535 bytes
0x1f7d7550B1b028f7571E69A784071F0205FD2EfA

feeAmountTickSpacing answers 1 / 10 / 60 / 200 for the four tiers, exactly as a UniswapV3Factory does. The router below names it.

Uniswap V3 SwapRouter0224,497 bytes
0xCaf681a66D020601342297493863E78C959E5cb2

Its factory() returns the V3 factory above and its WETH9() returns this chain's WETH. This is what Cross settles through.

Quoter, v2 + v3 + v4 in one call6,410 bytes
0x7edd862aa08dD5Be664C21188E1A2A0E64e3A283

Built for this chain rather than by Uniswap. Its uniswapV3Poolfactory() and poolManager() both name the live deployments.

Uniswap V2 Factory (canonical, and real)15,000 bytes
0x8bceaa40b9acdfaedf85adf4ff01f5ad6517937f

Complete and busy: 41,274 pairs. Also, for equities, empty — NVIDIA against the dollar holds $0.19 on it.

UniversalRouter (canonical address)24,546 bytes
0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af

Real Uniswap code, byte-identical to the working router — and its poolManager() names an account that has never been touched on this chain. Every v4 command through it addresses nothing.

Permit218,306 bytes
0x000000000022D473030F116dDEE9F6B43aC78BA3

Canonical, and genuinely present.

Multicall37,618 bytes
0xcA11bde05977b3631167028862bE2a173976CA11

Canonical. Every batched read in this product goes through it.

Securities registry and upgrade beacon2,332 bytes
0xe10b6f6B275de231345c20D14Ab812db62151b00

Every one of the 194 tokens is a beacon proxy naming this contract. It can upgrade all of them, pause all of them, and refuse any address.

Global Dollar (USDG)342 bytes
0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168

Six decimals, not eighteen. Every cross routes through it.

WETH94,406 bytes
0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73

The chain's wrapped ether. Deep on v3, which can hold nothing else; a minor asset on v4, where the pools hold ether itself — 1,044 pool sides against native ether's 18,507.

Occupied by something else · 3

All 3 hold the same 2,109-byte contract. It is a funds forwarder, and its fallback swallows every call — so getPool() SUCCEEDS and returns empty data. A client checking for a revert sees no error, decodes the zero address, and concludes there is no pool. That is worse than a missing contract, which at least announces itself.

Uniswap V3 Factory (canonical address)2,109 bytes
0x1F98431c8aD98523631AE4a59f267346ea31F984

A solc 0.4 funds forwarder: recoverETH(), transferTokensTo, changeForwardingAddress, changeOwner. Its fallback swallows everything, so getPool SUCCEEDS and returns empty data.

Uniswap V3 QuoterV2 (canonical address)2,109 bytes
0x61fFE014bA17989E743c5F6cB21bF9697530B21e

The same forwarder.

Uniswap V3 SwapRouter (canonical address)2,109 bytes
0xE592427A0AEce92De3Edee1F18E0157C05861564

The same forwarder.

Never deployed · 1

Code size zero and a zero codehash, which is stronger than empty: the account has never been touched on this chain.

Uniswap V4 PoolManager (canonical address)0 bytes
0x000000000004444c5dc75cB358380D2e3dE08A90

Code size zero and a zero codehash, which is stronger than empty: the account has never existed here.

Two routers with byte-identical code. One at Uniswap’s canonical address, one at an address nobody publishes. They differ in a single immutable: the PoolManager each names. The canonical one names an account that has never existed here, so every v4 command sent through it addresses nothing — silently, because there is no contract to revert.

Cross settles through the V3 SwapRouter02 above. It quotes v4 as well, and where the deepest fill is a v4 pool it says so and declines rather than routing you somewhere worse without mentioning it.