Deprecated Documentation
These documents are no longer maintained. Please visit hub.uniswap.org/docs for the latest documentation.
High Level Message Flow
The following diagram illustrates how a customer starting with no liquidity position can create and manage a liquidity position. Steps in gray are taken through the Uniswap Labs API and steps in red are written to the blockchain by the customer.
- The customer checks if they have the necessary approval to send token(s) to the desired pool using an
/approverequest.- If the approval is not yet in place, a fully-formed transaction is returned for the customer to sign for each un-approved token.
- The customer then proposes the position they would like to create using the
/createrequest.- The API checks if the pool already exists. If the pool does not exist, the response returns a fully-formed transaction to create the pool which the user must sign.
- The API also returns the fully-formed transaction to create a position (e.g. add liquidity to a pool), which the user must sign.
- Over time the customer may want to perform additional actions to manage their liquidity pool (LP) positions:
- Commonly, liquidity providers will want to claim their earned fees from the pool using the
/claimrequest. - Customers may want to change the allocation of tokens they have made to a pool. Customers can add additional tokens to a pool using the
/increaserequest and can reduce or fully withdraw their position using the/decreaseendpoint. - Uniswap Labs continues to innovate on pool contracts, customers may want to migrate their positions from one version of a pool to another version. the
migrateendpoint allows a customer to move their liquidity from a V3 pool to a V4 pool (remaining within the same pair, for example WBTC/USDC).
- Commonly, liquidity providers will want to claim their earned fees from the pool using the