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.

ContractArbitrum AddressesArbitrum Sepolia Addresses
UniswapV3Factory0x1F98431c8aD98523631AE4a59f267346ea31F9840x248AB79Bbb9bC29bB72f7Cd42F17e054Fc40188e
Multicall0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB0x2B718b475e385eD29F56775a66aAB1F5cC6B2A0A
ProxyAdmin0xB753548F6E010e7e680BA186F9Ca1BdAB2E90cf2``
TickLens0xbfd8137f7d1516D3ea5cA83523914859ec47F5730x0fd18587734e5C2dcE2dccDcC7DD1EC89ba557d9
Quoter0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6``
SwapRouter0xE592427A0AEce92De3Edee1F18E0157C05861564``
NFTDescriptor0x42B24A95702b9986e82d421cC3568932790A48Ec``
NonfungibleTokenPositionDescriptor0x91ae842A5Ffd8d12023116943e72A606179294f3``
TransparentUpgradeableProxy0xEe6A57eC80ea46401049E92587E52f5Ec1c24785``
NonfungiblePositionManager0xC36442b4a4522E871399CD717aBDD847Ab11FE880x6b2937Bde17889EDCf8fbD8dE31C3C2a70Bc4d65
V3Migrator0xA5644E29708357803b5A882D272c41cC0dF92B340x398f43ef2c67B941147157DA1c5a868E906E043D
QuoterV20x61fFE014bA17989E743c5F6cB21bF9697530B21e0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B
SwapRouter020x68b3465833fb72A70ecDF485E0e4C7bD8665Fc450x101F443B4d1b059569D643917553c771E1b9663E
Permit20x000000000022D473030F116dDEE9F6B43aC78BA30x000000000022D473030F116dDEE9F6B43aC78BA3
UniversalRouter0x5E325eDA8064b456f4781070C0738d849c8242580x4A7b5Da61326A6379179b40d00F57E5bbDC962c2
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
Arbitrum42161WETH0x82aF49447D8a07e3bd95BD0d56f35241523fBab1
Arbitrum Sepolia421614WETH0x980B62Da83eFf3D4576C647993b0c1D7faf17c73
Helpful?