Skip to main content
Helpful?

Uniswap Ethereum 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.

ContractMainnet, Goerli AddressesEthereum Sepolia Addresses
UniswapV3Factory0x1F98431c8aD98523631AE4a59f267346ea31F9840x0227628f3F023bb0B980b67D528571c95c6DaC1c
Multicall0x1F98415757620B543A52E61c46B32eB19261F984``
Multicall20x5BA1e12693Dc8F9c48aAD8770482f4739bEeD6960xD7F33bCdb21b359c8ee6F0251d30E94832baAd07
ProxyAdmin0xB753548F6E010e7e680BA186F9Ca1BdAB2E90cf20x0b343475d44EC2b4b8243EBF81dc888BF0A14b36
TickLens0xbfd8137f7d1516D3ea5cA83523914859ec47F573``
Quoter0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6``
SwapRouter0xE592427A0AEce92De3Edee1F18E0157C05861564``
NFTDescriptor0x42B24A95702b9986e82d421cC3568932790A48Ec0x3B5E3c5E595D85fbFBC2a42ECC091e183E76697C
NonfungibleTokenPositionDescriptor0x91ae842A5Ffd8d12023116943e72A606179294f30x5bE4DAa6982C69aD20A57F1e68cBcA3D37de6207
TransparentUpgradeableProxy0xEe6A57eC80ea46401049E92587E52f5Ec1c24785``
NonfungiblePositionManager0xC36442b4a4522E871399CD717aBDD847Ab11FE880x1238536071E1c677A632429e3655c799b22cDA52
V3Migrator0xA5644E29708357803b5A882D272c41cC0dF92B340x729004182cF005CEC8Bd85df140094b6aCbe8b15
QuoterV20x61fFE014bA17989E743c5F6cB21bF9697530B21e0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3
SwapRouter020x68b3465833fb72A70ecDF485E0e4C7bD8665Fc450x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E
Permit20x000000000022D473030F116dDEE9F6B43aC78BA30x000000000022D473030F116dDEE9F6B43aC78BA3
UniversalRouter0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD
v3StakerAddress0xe34139463bA50bD61336E0c446Bd8C0867c6fE65``

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)

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
Ethereum1WETH0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Goerli5WETH0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6
Sepolia11155111WETH0xfff9976782d46cc05630d1f6ebab18b2324d6b14
Helpful?