Skip to main content

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.

ContractCELO AddressAlfajores Address
UniswapV3Factory0xAfE208a311B21f13EF87E33A90049fC17A7acDEc0x229Fd76DA9062C1a10eb4193768E192bdEA99572
Multicall20x633987602DE5C4F337e3DbF265303A10803242040x692A12C7C167c44e54c3d381CA3EE91F058Dc404
ProxyAdmin0xc1b262Dd7643D4B7cA9e51631bBd900a564BF49A0xE4d1eBb97Fe5fabFaBbB8C004C424EE12dE8A07d
TickLens0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D0xFdACaEfB0f85C9BE9d319023453cC85C812d7e1E
NFTDescriptor0xa9Fd765d85938D278cb0b108DbE4BF71868311860xE3da4F834D45b27AF95600e6546991dC3B50adAC
NonfungibleTokenPositionDescriptor0x644023b316bB65175C347DE903B60a756F6dd5540xB00B8C3aB078EB0f7DeC6cE19c1a1da5bf4f8d7e
TransparentUpgradeableProxy0x505B43c452AA4443e0a6B84bb37771494633Fde90x9ddD6325FBE93A715B422883cED853CD843f217C
NonfungiblePositionManager0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A0x0eC9d3C06Bc0A472A80085244d897bb604548824
V3Migrator0x3cFd4d48EDfDCC53D3f173F596f621064614C5820x245d3F47F55c532dbE9340368855Be631B162cfd
QuoterV20x82825d0554fA07f7FC52Ab63c961F330fdEFa8E80x3c1FCF8D6f3A579E98F4AE75EB0adA6de70f5673
SwapRouter020x5615CDAb10dc425a742d643d949a7F474C01abc40x8C456F41A3883bA0ba99f810F7A2Da54D9Ea3EF0
Permit20x000000000022D473030F116dDEE9F6B43aC78BA30x000000000022D473030F116dDEE9F6B43aC78BA3
UniversalRouter0x643770E279d5D0733F21d6DC03A8efbABf3255B40x84904B9E85F76a421223565be7b596d7d9A8b8Ce
v3StakerAddress0x6586FB35393abF7Ff454977a9b3c912d218791C60x8AC47D3e65a3e6aD14596ee7d18ad1d1aA53208F

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

Uniswap V3 Staker

An up-to-date list of deploy addresses by chain is hosted on GitHub for the UniswapV3Staker contract.

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)

CELO Native Asset

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.

*Note: CELO is the native asset, it is a token and will work as a token, needing approval for routers to manage.

NetworkChainIdWrapped Native TokenAddress
CELO42220CELO Native Asset0x471EcE3750Da237f93B8E339c536989b8978a438