---
title: "Add Liquidity"
method: POST
path: "/defi/v1/dex/addliquidity"
tags: ["dex"]
---

# Add Liquidity

`POST /defi/v1/dex/addliquidity`

## Request

- Base URL: `https://svc.blockdaemon.com`
- URL: `https://svc.blockdaemon.com/defi/v1/dex/addliquidity`
- Auth: API key in header `X-API-Key`

Allows users to deposit token pairs into decentralized exchange pools with adjustable slippage protection and gas settings. The response includes essential transaction details (chain ID, addresses, transaction data, and a reference ID) for verifying and tracking the liquidity deposit.

> 💡 
**Compute Unit Value:** `115` (Fixed)

## Request body

- DexAddliquidityRequest: The request body for a /defi/v1/dex/addliquidity
  - `dexId` '1000' | '1001' | '1300' | '1301' | '1305' | '1306' | '1307' | '1308' | '1309' | '1310' | '1100' | '1101' | '1200' | '1201' | '2900' | '2901' | '2800' | '2808' | '2809' | '1500' | '1400' | '1402' | '2300' | '2100' | '2101' | '2500' | '2501' | '2700' | '2400' | '2401' | '3000' | '3001' | '3300' | '3301' | '3500' | '3501' | '3400' | '3401' | '3600': The unique ID to specify the decentralized exchange (DEX) within a particular blockchain. Find more [here](https://docs.blockdaemon.com/docs/defi-api-supported-protocols#supported-dexs-protocols).
  - `tokenA` string, required: Address of the first token being added.
  - `tokenB` string, required: Address of the second token being added.
  - `amountADesired` string, required: Desired amount of token A to add as liquidity, specified in the token's smallest denomination (base units). Do not send human-readable decimal values. Examples: 1 WETH (18 decimals) = "1000000000000000000"; 1 USDC (6 decimals) = "1000000".
  - `amountBDesired` string, required: Desired amount of token B to add as liquidity, specified in the token's smallest denomination (base units). Do not send human-readable decimal values. Examples: 1 WETH (18 decimals) = "1000000000000000000"; 1 USDC (6 decimals) = "1000000".
  - `amountAMin` string, required: Minimum acceptable amount of token A in the token's smallest denomination (base units). Provides slippage protection — the transaction reverts if the deposited amount falls below this value. Set to "0" to disable slippage protection.
  - `amountBMin` string, required: Minimum acceptable amount of token B in the token's smallest denomination (base units). Provides slippage protection — the transaction reverts if the deposited amount falls below this value. Set to "0" to disable slippage protection.
  - `deadline` string, required: Deadline for the transaction to be executed (UNIX Timestamp).
  - `to` string, required: Address of the recipient of the token.
  - `from` string, required: Address of the sender of the token.
  - `gas` string, required: Maximum number of gas units to allocate for the transaction, as an integer string (e.g., '200000'). If omitted, gas is estimated automatically. Note: this is gas units, not wei or gwei.
  - `gasPriority` string: Specifies the priority level for gas fees (e.g., 'low', 'medium', or 'high'), which influences the transaction speed and cost.
  - `slippage` string: Percentage of total swap value allowed for slippage. By default, 1.
  - `enableFee` boolean: Flag to include a basis points fee transaction alongside the main transaction when set to true.
  - `poolFees` string, required: Different pool based on the fees.
  - `tokenId` string: The token ID for Uniswap V3 liquidity position.
  - `path` string[], required: Array of token contract addresses for the liquidity pool. Provide [tokenAAddress, tokenBAddress]. Example (LINK/USDC): ['0x514910771AF9Ca656af840dff83E8264EcF986CA', '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'].
  - `amountIn` string, required: Amount of tokens to add as liquidity, specified in the token's smallest denomination (base units). Do not send human-readable decimal values. Examples: 1 WETH (18 decimals) = "1000000000000000000"; 1 USDC (6 decimals) = "1000000".
  - `amountOut` string, required: Amount of the output token to receive, specified in the token's smallest denomination (base units). Do not send human-readable decimal values. Examples: 1 WETH (18 decimals) = "1000000000000000000"; 1 USDC (6 decimals) = "1000000".
  - `fromInternalBalance` boolean, required: True if sending from internal token balances, otherwise False for ERC20.
  - `amountA` string, required: Amount of token A, specified in the token's smallest denomination (base units). Examples: 1 WETH (18 decimals) = "1000000000000000000"; 1 USDC (6 decimals) = "1000000".
  - `amountB` string, required: Amount of token B, specified in the token's smallest denomination (base units). Examples: 1 WETH (18 decimals) = "1000000000000000000"; 1 USDC (6 decimals) = "1000000".
  - `strategy` 'stable' | 'uncorrelated': Liquidity strategy to be used: spotUniform, curve, or bidask. Default is spotUniform.
  - `amountOutMin` string: Minimum acceptable output amount in the token's smallest denomination (base units). Provides slippage protection — the transaction reverts if the output falls below this value. Set to "0" to disable slippage protection. Examples: to require at least 0.99 USDC (6 decimals), use "990000"; to require at least 0.99 WETH (18 decimals), use "990000000000000000".

## Response `200`

Successful response

- object
  - `status` integer
  - `msg` string
  - `data` object

---

[API](https://skmtc.dev/blockdaemon/apis/blockdaemon-defi-api.md) - [All operations](https://skmtc.dev/blockdaemon/apis/blockdaemon-defi-api/llms.txt) - [OpenAPI document](https://skmtc.dev/blockdaemon/apis/blockdaemon-defi-api/revisions/ec053b7c8041?raw)
