Skip to main content
Helpful?

Uniswap Contract Deployments

The latest version of @uniswap/v3-core, @uniswap/v3-periphery, and @uniswap/swap-router-contracts are deployed at the addresses listed below. Integrators should no longer assume that they are deployed to the same addresses across chains and be extremely careful to confirm mappings below.

ContractZKsync Mainnet
UniswapV3Factory0x8FdA5a7a8dCA67BBcDd10F02Fa0649A937215422
Multicall20x0c68a7C72f074d1c45C16d41fa74eEbC6D16a65C
ProxyAdmin0xBb79274aD9C7f68A5B6a7E31F431175BB889b557
TickLens0xe10FF11b809f8EE07b056B452c3B2caa7FE24f89
NFTDescriptor0x7d67b8Ff4AbFfc020641F5e430fbeEd03897674d
NonfungibleTokenPositionDescriptor0xa819De78cAB1163F8605809392068EdE3BFcDd1E
TransparentUpgradeableProxy0xAeaBf2d69698C6810D2596fAE86099790A13Ee81
NonfungiblePositionManager0x0616e5762c1E7Dc3723c50663dF10a162D690a86
V3Migrator0x611841b24E43C4ACfd290B427a3D6cf1A59dac8E
QuoterV20x8Cb537fc92E26d8EBBb760E632c95484b6Ea3e28
SwapRouter020x99c56385daBCE3E81d8499d0b8d0257aBC07E8A3
Permit20x0000000000225e31d15943971f47ad3022f714fa
UniversalRouter0x28731BCC616B5f51dD52CF2e4dF0E78dD1136C06
v3StakerAddress0xf84268FA8EB857c2e4298720C1C617178F5e78e1

These addresses are final and were deployed from these npm package versions:

Note: ZKsync contracts are also using the ZKsync fork of OpenZeppelin.

Universal Router

The UniversalRouter contract is the current preferred entrypoint for ERC20 and NFT swaps, replacing, among other contracts, SwapRouter02. An up-to-date list of deploy addresses by chain is hosted on Github.

Uniswap Pool Deployments

Every Uniswap pool is a unique instance of the UniswapV3Pool contract and is deployed at its own unique address. The contract source code of the pool will be auto-verified on etherscan. For example, here is the ETH/USDC 0.3% pool on Ethereum mainnet.

You can look up the address of an existing pool on Uniswap Info or by calling the getPool function on the UniswapV3Factory contract.

getPool("0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", 3000)

Wrapped Native Token Addresses

The Uniswap Protocol supports trading of ERC20 tokens. In order to swap a native asset like ETH (or MATIC on Polygon), the Uniswap protocol wraps these assets in an ERC20 wrapped native token contract. The protocol uses the following WETH9 addresses on Ethereum and WMATIC addresses on Polygon.

NetworkChainIdWrapped Native TokenAddress
ZKxync324WETH0x5aea5775959fbc2557cc8789bc1bf90a239d9a91
Helpful?