Skip to main content
POST
/
v1
/
pendle
/
liquidity
Python (SDK)
from compass_api_sdk import CompassAPI, models


with CompassAPI(
    api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:

    res = compass_api.pendle.pendle_liquidity(market_address="0x08a152834de126d2ef83d612ff36e4523fd0017f", action=models.PendleManageLiquidityRequestAction.SUPPLY, token="USDC", amount_in=1.5, max_slippage_percent=0.5, chain=models.PendleManageLiquidityRequestChain.ARBITRUM, sender="0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B", estimate_gas=True)

    # Handle response
    print(res)
{
  "transaction": {
    "chainId": "<string>",
    "data": "<string>",
    "from": "<string>",
    "gas": "<string>",
    "to": "<string>",
    "value": "<string>",
    "nonce": "<string>",
    "maxFeePerGas": "<string>",
    "maxPriorityFeePerGas": "<string>"
  },
  "amount_out_quote": "<string>"
}

Authorizations

x-api-key
string
header
required

Your Compass API Key. Get your key here.

Body

application/json
market_address
string
required

The address identifying which Pendle Market you would like to add liquidity to.

Examples:

"0x08a152834de126d2ef83d612ff36e4523fd0017f"

action
enum<string>
required

Specifies the direction of the liquidity operation for the Pendle market. Valid values are SUPPLY (to add liquidity) or WITHDRAW (to remove liquidity).

Available options:
SUPPLY,
WITHDRAW
Examples:

"SUPPLY"

"WITHDRAW"

token
string
required

The symbol or address of the token to manage liquidity with. For action set to SUPPLY, this is the token to add as liquidity. For action set to WITHDRAW, this is the token to remove from liquidity.

Examples:

"USDC"

"0xaf88d065e77c8cC2239327C5EDb3A432268e5831"

amount_in
required

For action set to SUPPLY, this is the amount in of token to add as liquidity in exchange for Liquidity Provider (LP) tokens. For action set to WITHDRAW, this is the amount in of LP tokens to redeem for token.

Required range: x > 0
Examples:

1.5

max_slippage_percent
number
required

The maximum slippage allowed in percent. e.g. 1 means 1% slippage allowed.

Required range: 0 <= x <= 10
Examples:

0.5

chain
enum<string>
required
Available options:
arbitrum,
base,
ethereum
sender
string
required

The address of the transaction sender.

Examples:

"0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B"

action_type
string
default:PENDLE_MANAGE_LIQUIDITY
Allowed value: "PENDLE_MANAGE_LIQUIDITY"
estimate_gas
boolean
default:true

Determines whether to estimate gas costs for transactions, also verifying that the transaction can be successfully executed.

Response

Successful Response

transaction
object
required

The unsigned transaction data. User must sign and broadcast to network.

  • UnsignedTransaction
  • UserOperationResponse
amount_out_quote
string
required

The estimated amount out for the transaction. The actual output amount for this transaction is guaranteed be within the acceptable threshold, defined by the max_slippage_percent, relative to this quote.