> ## Documentation Index
> Fetch the complete documentation index at: https://docs.exponent.finance/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> High-level TypeScript SDK instruction functions for the Exponent CLMM protocol

# MarketThree Instructions

These are the instruction builders provided by the `MarketThree` class. They handle account resolution, address lookup tables, base token conversion, and CPI routing automatically.

<Tip>
  For low-level control, see the [raw Codama-generated instructions](/developer-clmm/raw-instructions/overview) which require manual account resolution.
</Tip>

## Setup

All instructions are methods on the `MarketThree` class. See the [CLMM SDK Quickstart](/developer-clmm/sdk-quickstart) for installation and full setup.

```typescript theme={null}
import { MarketThree } from "@exponent-labs/exponent-sdk";

const market = await MarketThree.load(env, connection, marketAddress);
const { ixs, setupIxs } = await market.ixWrapperBuyPt({...});
```

## Instructions

<CardGroup cols={2}>
  <Card title="Buy PT" href="/developer-clmm/typescript/instructions/ix-wrapper-buy-pt">
    Buy PT using base assets through the wrapper flow, which handles base-to-SY conversion and market routing automatically.
  </Card>

  <Card title="Sell PT" href="/developer-clmm/typescript/instructions/ix-wrapper-sell-pt">
    Sell PT back into base assets, with the wrapper handling the SY redemption flow and required account setup.
  </Card>

  <Card title="Buy YT" href="/developer-clmm/typescript/instructions/ix-wrapper-buy-yt">
    Buy YT using the wrapper flow, which performs the required strip and flash-swap routing in a single transaction.
  </Card>

  <Card title="Sell YT" href="/developer-clmm/typescript/instructions/ix-wrapper-sell-yt">
    Sell YT back into base assets through the wrapper flow, including merge and flash-swap routing under the hood.
  </Card>

  <Card title="Provide Liquidity" href="/developer-clmm/typescript/instructions/ix-wrapper-provide-liquidity">
    Provide liquidity from base assets into an APY range, with wrapper logic handling token conversion, stripping, and LP position setup.
  </Card>

  <Card title="Withdraw Liquidity to Base" href="/developer-clmm/typescript/instructions/ix-withdraw-liquidity-to-base">
    Withdraw an LP position back into base assets, converting the underlying PT and SY balances into a single base output.
  </Card>

  <Card title="Provide Liquidity Classic" href="/developer-clmm/typescript/instructions/ix-provide-liquidity-classic">
    Provide liquidity using the classic flow when you already manage the required position and token inputs directly.
  </Card>

  <Card title="Withdraw Liquidity Classic" href="/developer-clmm/typescript/instructions/ix-withdraw-liquidity-classic">
    Withdraw liquidity using the classic LP flow, without converting the output back into base assets automatically.
  </Card>

  <Card title="Deposit Liquidity (PT + SY)" href="/developer-clmm/typescript/instructions/add-liquidity">
    Add liquidity directly with PT and SY into a chosen tick range, without using the higher-level base-asset wrapper flow.
  </Card>

  <Card title="Withdraw Liquidity (PT + SY)" href="/developer-clmm/typescript/instructions/remove-liquidity">
    Remove liquidity directly into PT and SY from an existing LP position.
  </Card>
</CardGroup>
