Uniswap V3 Periphery
Docs
Source
ChefGPT

A fully decentralized protocol for automated liquidity provision on Ethereum. V3

SafeMath.sol
SignedSafeMath.sol
Strings.sol
IUniswapV3Pool.sol
IUniswapV3PoolActions.sol
IUniswapV3PoolDerivedState.sol
IUniswapV3PoolEvents.sol
IUniswapV3PoolImmutables.sol
IUniswapV3PoolOwnerActions.sol
IUniswapV3PoolState.sol
BitMath.sol
FullMath.sol
TickMath.sol
base64.sol
HexStrings.sol
NFTDescriptor.sol
NFTSVG.sol
NFTDescriptorTest.sol
IERC20Permit.sol
ERC165.sol
IERC165.sol
IERC20.sol
ERC721.sol
IERC721.sol
IERC721Enumerable.sol
IERC721Metadata.sol
IERC721Receiver.sol
Address.sol
Context.sol
EnumerableMap.sol
EnumerableSet.sol
IUniswapV3Factory.sol
IUniswapV3MintCallback.sol
FixedPoint128.sol
FixedPoint96.sol
NonfungiblePositionManager.sol
BlockTimestamp.sol
ERC721Permit.sol
LiquidityManagement.sol
Multicall.sol
PeripheryImmutableState.sol
PeripheryPayments.sol
PeripheryValidation.sol
PoolInitializer.sol
SelfPermit.sol
IERC721Permit.sol
IMulticall.sol
INonfungiblePositionManager.sol
INonfungibleTokenPositionDescriptor.sol
IPeripheryImmutableState.sol
IPeripheryPayments.sol
IPoolInitializer.sol
ISelfPermit.sol
IERC1271.sol
IERC20PermitAllowed.sol
IWETH9.sol
CallbackValidation.sol
ChainId.sol
LiquidityAmounts.sol
PoolAddress.sol
PositionKey.sol
TransferHelper.sol
UniswapInterfaceMulticall.sol
ECDSA.sol
EIP712.sol
ERC20Permit.sol
ERC20.sol
Counters.sol
AddressStringUtil.sol
SafeERC20Namer.sol
IUniswapV2Pair.sol
IUniswapV3FlashCallback.sol
IUniswapV3SwapCallback.sol
LiquidityMath.sol
LowGasSafeMath.sol
SafeCast.sol
Tick.sol
TickBitmap.sol
UnsafeMath.sol
SwapRouter.sol
V3Migrator.sol
PeripheryPaymentsWithFee.sol
PairFlash.sol
IERC20Metadata.sol
IPeripheryPaymentsWithFee.sol
IQuoter.sol
IQuoterV2.sol
ISwapRouter.sol
ITickLens.sol
IV3Migrator.sol
Quoter.sol
QuoterV2.sol
TickLens.sol
BytesLib.sol
OracleLibrary.sol
Path.sol
PoolTicksCounter.sol
PositionValue.sol
SqrtPriceMathPartial.sol
TokenRatioSortOrder.sol
Base64Test.sol
LiquidityAmountsTest.sol
MockTimeSwapRouter.sol
NonfungiblePositionManagerPositionsGasTest.sol
OracleTest.sol
PathTest.sol
PeripheryImmutableStateTest.sol
PoolAddressTest.sol
PoolTicksCounterTest.sol
PositionValueTest.sol
SelfPermitTest.sol
TestCallbackValidation.sol
TestERC20.sol
TestERC20Metadata.sol
TestERC20PermitAllowed.sol
TestMulticall.sol
TestPositionNFTOwner.sol
TestUniswapV3Callee.sol
TickLensTest.sol
MockObservable.sol
MockTimeNonfungiblePositionManager.sol
NonfungibleTokenPositionDescriptor.sol
Oracle.sol
MockObservations.sol

TVL

$2.86B
Downloads26

Chains

Authors

Uniswap V3 Periphery
Info
Source
ChefGPT
Expand
Share

Get Cookin'

Downloads26

Chains

Authors

Uniswap V3 Periphery

Tests Lint

This repository contains the periphery smart contracts for the Uniswap V3 Protocol. For the lower level core contracts, see the uniswap-v3-core repository.

Bug bounty

This repository is subject to the Uniswap V3 bug bounty program, per the terms defined here.

Local deployment

In order to deploy this code to a local testnet, you should install the npm package @uniswap/v3-periphery and import bytecode imported from artifacts located at @uniswap/v3-periphery/artifacts/contracts/*/*.json. For example:

import {
  abi as SWAP_ROUTER_ABI,
  bytecode as SWAP_ROUTER_BYTECODE,
} from '@uniswap/v3-periphery/artifacts/contracts/SwapRouter.sol/SwapRouter.json'

// deploy the bytecode

This will ensure that you are testing against the same bytecode that is deployed to mainnet and public testnets, and all Uniswap code will correctly interoperate with your local deployment.

Using solidity interfaces

The Uniswap v3 periphery interfaces are available for import into solidity smart contracts via the npm artifact @uniswap/v3-periphery, e.g.:

import '@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol';

contract MyContract {
  ISwapRouter router;

  function doSomethingWithSwapRouter() {
    // router.exactInput(...);
  }
}

A fully decentralized protocol for automated liquidity provision on Ethereum. V3
SafeMath.sol
SignedSafeMath.sol
Strings.sol
IUniswapV3Pool.sol
IUniswapV3PoolActions.sol
IUniswapV3PoolDerivedState.sol
IUniswapV3PoolEvents.sol
IUniswapV3PoolImmutables.sol
IUniswapV3PoolOwnerActions.sol
IUniswapV3PoolState.sol
BitMath.sol
FullMath.sol
TickMath.sol
base64.sol
HexStrings.sol
NFTDescriptor.sol
NFTSVG.sol
NFTDescriptorTest.sol
IERC20Permit.sol
ERC165.sol
IERC165.sol
IERC20.sol
ERC721.sol
IERC721.sol
IERC721Enumerable.sol
IERC721Metadata.sol
IERC721Receiver.sol
Address.sol
Context.sol
EnumerableMap.sol
EnumerableSet.sol
IUniswapV3Factory.sol
IUniswapV3MintCallback.sol
FixedPoint128.sol
FixedPoint96.sol
NonfungiblePositionManager.sol
BlockTimestamp.sol
ERC721Permit.sol
LiquidityManagement.sol
Multicall.sol
PeripheryImmutableState.sol
PeripheryPayments.sol
PeripheryValidation.sol
PoolInitializer.sol
SelfPermit.sol
IERC721Permit.sol
IMulticall.sol
INonfungiblePositionManager.sol
INonfungibleTokenPositionDescriptor.sol
IPeripheryImmutableState.sol
IPeripheryPayments.sol
IPoolInitializer.sol
ISelfPermit.sol
IERC1271.sol
IERC20PermitAllowed.sol
IWETH9.sol
CallbackValidation.sol
ChainId.sol
LiquidityAmounts.sol
PoolAddress.sol
PositionKey.sol
TransferHelper.sol
UniswapInterfaceMulticall.sol
ECDSA.sol
EIP712.sol
ERC20Permit.sol
ERC20.sol
Counters.sol
AddressStringUtil.sol
SafeERC20Namer.sol
IUniswapV2Pair.sol
IUniswapV3FlashCallback.sol
IUniswapV3SwapCallback.sol
LiquidityMath.sol
LowGasSafeMath.sol
SafeCast.sol
Tick.sol
TickBitmap.sol
UnsafeMath.sol
SwapRouter.sol
V3Migrator.sol
PeripheryPaymentsWithFee.sol
PairFlash.sol
IERC20Metadata.sol
IPeripheryPaymentsWithFee.sol
IQuoter.sol
IQuoterV2.sol
ISwapRouter.sol
ITickLens.sol
IV3Migrator.sol
Quoter.sol
QuoterV2.sol
TickLens.sol
BytesLib.sol
OracleLibrary.sol
Path.sol
PoolTicksCounter.sol
PositionValue.sol
SqrtPriceMathPartial.sol
TokenRatioSortOrder.sol
Base64Test.sol
LiquidityAmountsTest.sol
MockTimeSwapRouter.sol
NonfungiblePositionManagerPositionsGasTest.sol
OracleTest.sol
PathTest.sol
PeripheryImmutableStateTest.sol
PoolAddressTest.sol
PoolTicksCounterTest.sol
PositionValueTest.sol
SelfPermitTest.sol
TestCallbackValidation.sol
TestERC20.sol
TestERC20Metadata.sol
TestERC20PermitAllowed.sol
TestMulticall.sol
TestPositionNFTOwner.sol
TestUniswapV3Callee.sol
TickLensTest.sol
MockObservable.sol
MockTimeNonfungiblePositionManager.sol
NonfungibleTokenPositionDescriptor.sol
Oracle.sol
MockObservations.sol