Skip to main contentHigh 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).
- Certain pools may offer the opportunity to receive rewards for LPing. These rewards can be claimed using the /claim_rewardsendpoint.