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.

ContractUnichain AddressesUnichain Sepolia Addresses
UniswapV3Factory0x1f984000000000000000000000000000000000030x1F98431c8aD98523631AE4a59f267346ea31F984
UniswapInterfaceMulticall0xb7610f9b733e7d45184be3a1bc966960ccc54f0b0x9D0F15f2cf58655fDDcD1EE6129C547fDaeD01b1
TickLens0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe4430x5f739c790a48E97eec0efb81bab5D152c0A0ecA0
QuoterV20x385a5cf5f83e99f7bb2852b6a19c3538b9fa76580x6Dd37329A1A225a6Fca658265D460423DCafBF89
SwapRouter020x73855d06de49d0fe4a9c42636ba96c62da12ff9c0xd1AAE39293221B77B0C71fBD6dCb7Ea29Bb5B166
NonfungiblePositionManager0x943e6e07a7e8e791dafc44083e54041d743c46e90xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075
NFT Descriptor0x0dfa04b28ab68ffd0e6e17fac6ec16d4846a20040x2B6221E68D48cDC10CF2e52D913f9380D62555BA
V3Migrator0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc0xb5FA244C9d6D04B2FBac84418b3c4910ED1Ae5f2
UniswapV3Staker-0xd693d8df6CF768248c16f98745Ee0c8E06460487

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, the Uniswap protocol wraps these assets in an ERC20 wrapped native token contract.

NetworkChainIdWrapped Native TokenAddress
Unichain130WETH0x4200000000000000000000000000000000000006
Unichain Sepolia1301WETH0x4200000000000000000000000000000000000006