The latest version of Uniswap v2 and v3 contracts are deployed at the addresses listed below. Integrators should not assume that they are deployed to the same addresses across chains and be extremely careful to confirm mappings below.

Abstract Mainnet

Contract NameContract Address
v3CoreFactoryAddress0xA1160e73B63F322ae88cC2d8E700833e71D0b2a1
multicall2Address0x9CA4dcb2505fbf536F6c54AA0a77C79f4fBC35C0
proxyAdminAddress0x76d539e3c8bc2A565D22De95B0671A963667C4aD
tickLensAddress0x9c7d30F93812f143b6Efa673DB8448EfCB9f747E
nftDescriptorLibraryAddressV1_3_00x30cF3266240021f101e388D9b80959c42c068C7C
nonfungibleTokenPositionDescriptorV1_3_00xb9F2d038150E296CdAcF489813CE2Bbe976a4C62
descriptorProxyAddress0x8433dEA5F658D9003BB6e52c5170126179835DaC
nonfungibleTokenPositionManagerAddress0xfA928D3ABc512383b8E5E77edd2d5678696084F9
v3MigratorAddress0x117Fc8DEf58147016f92bAE713533dDB828aBB7e
quoterV2Address0x728BD3eC25D5EDBafebB84F3d67367Cd9EBC7693
swapRouter020x7712FA47387542819d4E35A23f8116C90C18767C
permit20x0000000000225e31d15943971f47ad3022f714fa
universalRouter0xE1b076ea612Db28a0d768660e4D81346c02ED75e
v3StakerAddress0x2cB10Ac97F2C3dAEDEaB7b72DbaEb681891f51B8
v2CoreFactoryAddress0x566d7510dEE58360a64C9827257cF6D0Dc43985E
UniswapV2Router020xad1eCa41E6F772bE3cb5A48A6141f9bcc1AF9F7c
Pair Init Hash (V2)0x0100065f2f2a556816a482652f101ddda2947216a5720dd91a79c61709cbf2b8
Pool Init Hash (V3)0x010013f177ea1fcbc4520f9a3ca7cd2d1d77959e05aa66484027cb38e712aeed

Zero Mainnet

Contract NameContract Address
v3CoreFactoryAddress0xA1160e73B63F322ae88cC2d8E700833e71D0b2a1
multicall2Address0x9CA4dcb2505fbf536F6c54AA0a77C79f4fBC35C0
proxyAdminAddress0x76d539e3c8bc2A565D22De95B0671A963667C4aD
tickLensAddress0x9c7d30F93812f143b6Efa673DB8448EfCB9f747E
nftDescriptorLibraryAddressV1_3_00x30cF3266240021f101e388D9b80959c42c068C7C
nonfungibleTokenPositionDescriptorV1_3_00x8036Aa360D66D15eBf3E9a310393e8E7C92BDcf4
descriptorProxyAddress0xB0AB2d31642262F6bF68bF6E2C4FC05bb2C2db6d
nonfungibleTokenPositionManagerAddress0x5b15468dFD83cF9192082d4510034c9431bb05eB
v3MigratorAddress0x05eead9625966847d60774Cf2c3b004AfBC45314
quoterV2Address0x22B98c8Bdfea8D928101eEC40Af634ff37804997
swapRouter020xD936711eABD2Ce52747d7122757316C7DFe3599b
permit20x6b4420f66De496D18A6c36367cf7f1440fd9289f
universalRouter0xF93Ce7C55073aE244f4a5C810924D790C65F742E
v3StakerAddress0xe0a250732329ea5C3933b7bd70cB32cDdbBC0FB0
v2CoreFactoryAddress0x1B4427e212475B12e62f0f142b8AfEf3BC18B559
UniswapV2Router02:0xD7C05A08cB43e99d596B606A1c03EA2F21289d94
Pair Init Hash (V2)0x010005279097a5c2093daa79c75905339804c21bc53dc3391ea5440ae1191045
Pool Init Hash (V3)0x010013f177ea1fcbc4520f9a3ca7cd2d1d77959e05aa66484027cb38e712aeed

Ink Mainnet

Contract NameContract Address
v3CoreFactoryAddress0x640887A9ba3A9C53Ed27D0F7e8246A4F933f3424
multicall2Address0xA0fCec583AeE6176527C07B198e5561722332014
proxyAdminAddress0x9B65c0df5aFffB95E75Aa5cAD81F3Fe2368446f1
tickLensAddress0x3e6Dba802d62aba2361Dd632fbC9f547AA6789aE
nftDescriptorLibraryAddressV1_3_00x987ca6B9cC569dE1a0340d2465DA8E4Aa4B14aa5
nonfungibleTokenPositionDescriptorV1_3_00x2079bc044AEe33146bB63674DC2502c69E821Af9
descriptorProxyAddress0xa1168fd2Cb5acEC1F0B100593A1858f47b399A7B
nonfungibleTokenPositionManagerAddress0xC0836E5B058BBE22ae2266e1AC488A1A0fD8DCE8
v3MigratorAddress0xdce28D2D5392e19091Fe59d9750B3202EbE80641
quoterV2Address0x96b572D2d880cf2Fa2563651BD23ADE6f5516652
swapRouter020x177778F19E89dD1012BdBe603F144088A95C4B53
permit20x000000000022D473030F116dDEE9F6B43aC78BA3
universalRouter0x9C5577aEF7c2a5C80aA62bA5420170F6b4a302FF
v3StakerAddress0x245C0c29BB7Dd9D1fa6A0713ABFeb81439Ffa870
v2CoreFactoryAddress0xfe57A6BA1951F69aE2Ed4abe23e0f095DF500C04
UniswapV2Router02:0xB3FB126ACDd5AdCA2f50Ac644a7a2303745f18b4
Pair Init Hash (V2)0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f
Pool Init Hash (V3)0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54