> ## 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.

# LP Token Model

> Identify tranche LP tokens and the market fields that back them

***

Senior and Junior LP tokens are standard SPL token mints. They can be transferred between wallets, held by vaults, paired in AMMs, or accepted by external programs.

The LP token itself does not expose a vault preview interface. The mint is only the transferable claim token. The tranching market account is the source of truth for NAV, utilization, coverage, fees, and lifecycle state.

LP mints are initialized with the same decimals as the linked SY mint. Fetch mint metadata when displaying balances, and keep raw LP amounts in mint units when building instructions.

## Token Addresses

| Token                      | SDK helper                                                   | Account field               |
| -------------------------- | ------------------------------------------------------------ | --------------------------- |
| Senior LP mint             | `market.lpMint(TrancheSide.Senior)` or `market.mintLpSenior` | `mint_lp_senior`            |
| Junior LP mint             | `market.lpMint(TrancheSide.Junior)` or `market.mintLpJunior` | `mint_lp_junior`            |
| User Senior LP ATA         | `market.lpAta(TrancheSide.Senior, owner)`                    | Derived from Senior LP mint |
| User Junior LP ATA         | `market.lpAta(TrancheSide.Junior, owner)`                    | Derived from Junior LP mint |
| SY mint backing the market | `market.syMint`                                              | `sy_mint`                   |
| Market SY escrow           | `market.tokenSyEscrow`                                       | `token_sy_escrow`           |

See [Addresses and Token Accounts](/developer-tranching/typescript/read-functions/get-addresses-and-token-accounts) for SDK helpers and [ExponentTranchingMarket](/developer-tranching/account-references/exponent-tranching-market) for raw account fields.

<Note>
  Transfers do not sync market NAV. Before pricing LP tokens or building a deposit or withdrawal transaction, call `market.reload()` and read the latest market state.
</Note>

## State and Field Map

The following fields are the core inputs for DeFi integrations.

| Purpose                     | Fields or helpers                                                                              | Raw dimension                                                      | Documentation                                                                                                  |
| --------------------------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------- |
| Lifecycle state             | `state.marketState`, `state.statusFlags`                                                       | Enum and bitmask                                                   | [Market State](/developer-tranching/typescript/read-functions/get-market-state)                                |
| Raw NAV                     | `getSrNetAssetValue()`, `getJrNetAssetValue()`                                                 | Raw `Number` NAV derived from raw SY units                         | [NAV Accounting](/developer-tranching/concepts#nav-accounting)                                                 |
| Effective NAV               | `getSrEffNetAssetValue()`, `getJrEffNetAssetValue()`                                           | Raw `Number` NAV after waterfall accounting                        | [NAV Accounting](/developer-tranching/concepts#nav-accounting)                                                 |
| LP supply                   | `state.trancheSupplyState.totalSeniorLpSupply`, `state.trancheSupplyState.totalJuniorLpSupply` | Raw LP mint units                                                  | [TrancheSupplyState](/developer-tranching/account-references/exponent-tranching-market#tranchesupplystate)     |
| SY assigned to each tranche | `state.trancheAssetState.seniorSyAmount`, `state.trancheAssetState.juniorSyAmount`             | Raw SY token units                                                 | [TrancheAssetState](/developer-tranching/account-references/exponent-tranching-market#trancheassetstate)       |
| Capacity                    | `getSrRemainingCapacityNetAssetValue()`, `getJrRemainingCapacityNetAssetValue()`               | Raw `Number` NAV. LP capacity helpers return raw LP units          | [Capacity Helpers](/developer-tranching/typescript/read-functions/get-capacity-and-lp-prices#capacity-helpers) |
| Utilization                 | `state.financials.utilization`                                                                 | `Number` ratio. `1_000_000_000_000` means `1.0`                    | [Utilization](/developer-tranching/concepts#utilization)                                                       |
| Coverage requirement        | `state.riskConfig.minCoverage`, `state.riskConfig.beta`                                        | `Number` ratios                                                    | [Coverage](/developer-tranching/concepts#coverage)                                                             |
| Observation window          | `state.riskConfig.fixedTermDurationSec`, `state.financials.fixedTermEndTs`                     | Seconds and Unix timestamp seconds                                 | [Recovery Period](/developer-tranching/concepts#recovery-period)                                               |
| Fees                        | `state.protocolFeeConfig.*`, pending fee share fields                                          | Fee rates are `Number` ratios. Pending fee shares are raw LP units | [Fee Structure](/developer-tranching/concepts#fee-structure)                                                   |
| Return allocation           | `state.returnModel`, `state.financials.currentJuniorReturnShare`                               | Curve data and `Number` ratios                                     | [Return Curves](/developer-tranching/return-curves)                                                            |

`fixedTermDurationSec` is the fixed-term observation period duration used by Recovery Period accounting. If it is `0`, fixed-term recovery is disabled. `fixedTermEndTs` is the timestamp when the current recovery window ends.

`tranchingFromNumber` and `tranchingNumberToRaw` only convert the `Number` fixed-point encoding. Apply token mint decimals separately when showing SY, LP, or NAV amounts to users.

## Token Integration Notes

| Area         | Guidance                                                                                    |
| ------------ | ------------------------------------------------------------------------------------------- |
| Transfers    | LP tokens are transferable SPL tokens. A transfer does not change market NAV or utilization |
| Custody      | Vaults and lending protocols can hold LP token accounts directly                            |
| Pricing      | Price balances from effective NAV, not from raw SY balance alone                            |
| Redemption   | Redemption rules depend on market state, utilization, and tranche side                      |
| Risk display | Show Senior and Junior separately. They do not have the same risk profile                   |

For pricing formulas and examples, see [Pricing and Previews](/developer-tranching/defi-integrations/pricing-and-previews).
