Skip to main content

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

TokenSDK helperAccount field
Senior LP mintmarket.lpMint(TrancheSide.Senior) or market.mintLpSeniormint_lp_senior
Junior LP mintmarket.lpMint(TrancheSide.Junior) or market.mintLpJuniormint_lp_junior
User Senior LP ATAmarket.lpAta(TrancheSide.Senior, owner)Derived from Senior LP mint
User Junior LP ATAmarket.lpAta(TrancheSide.Junior, owner)Derived from Junior LP mint
SY mint backing the marketmarket.syMintsy_mint
Market SY escrowmarket.tokenSyEscrowtoken_sy_escrow
See Addresses and Token Accounts for SDK helpers and ExponentTranchingMarket for raw account fields.
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.

State and Field Map

The following fields are the core inputs for DeFi integrations.
PurposeFields or helpersRaw dimensionDocumentation
Lifecycle statestate.marketState, state.statusFlagsEnum and bitmaskMarket State
Raw NAVgetSrNetAssetValue(), getJrNetAssetValue()Raw Number NAV derived from raw SY unitsNAV Accounting
Effective NAVgetSrEffNetAssetValue(), getJrEffNetAssetValue()Raw Number NAV after waterfall accountingNAV Accounting
LP supplystate.trancheSupplyState.totalSeniorLpSupply, state.trancheSupplyState.totalJuniorLpSupplyRaw LP mint unitsTrancheSupplyState
SY assigned to each tranchestate.trancheAssetState.seniorSyAmount, state.trancheAssetState.juniorSyAmountRaw SY token unitsTrancheAssetState
CapacitygetSrRemainingCapacityNetAssetValue(), getJrRemainingCapacityNetAssetValue()Raw Number NAV. LP capacity helpers return raw LP unitsCapacity Helpers
Utilizationstate.financials.utilizationNumber ratio. 1_000_000_000_000 means 1.0Utilization
Coverage requirementstate.riskConfig.minCoverage, state.riskConfig.betaNumber ratiosCoverage
Observation windowstate.riskConfig.fixedTermDurationSec, state.financials.fixedTermEndTsSeconds and Unix timestamp secondsRecovery Period
Feesstate.protocolFeeConfig.*, pending fee share fieldsFee rates are Number ratios. Pending fee shares are raw LP unitsFee Structure
Return allocationstate.returnModel, state.financials.currentJuniorReturnShareCurve data and Number ratiosReturn 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

AreaGuidance
TransfersLP tokens are transferable SPL tokens. A transfer does not change market NAV or utilization
CustodyVaults and lending protocols can hold LP token accounts directly
PricingPrice balances from effective NAV, not from raw SY balance alone
RedemptionRedemption rules depend on market state, utilization, and tranche side
Risk displayShow Senior and Junior separately. They do not have the same risk profile
For pricing formulas and examples, see Pricing and Previews.