LP-Book Pool
LPs deposit capital into a shared pool. Cardinal manages the pool by running the underlying borrow loop spread on Aave V3 on their behalf.
LPs are auto-opted-in to being the counterparty to The Carry Perp trades. LPs also back The Perpetual Negative Rate Hedge through the same pool and methods.
Capacity
LP capacity is measured in the notional size of user trades.
Example:
A user who deposits 1 ETH for a 1000x leveraged position takes up 1000 ETH of pool capacity until their position closes.
LP Methods
lpDeposit(amount) lpOnly
LP transfers tokens in and gets LP tokens minted at current NAV. NAV increases.
lpRequestWithdrawal(lpTokenAmount) lpOnly
Starts 7-day cooldown and queues the request.
lpWithdraw(requestId) lpOnly
After cooldown, redeems against free_NAV.
free_NAV is value not committed to open positions, The Perpetual Negative Rate Hedge rights, and pool safety gates.
updateLpList(address[]) adminOnly
Admin-only method for Cardinal to add & remove LPs.
deployToAave(amount) adminOnly
Contract uses LP capital to run the Aave V3 borrow loop, supplying collateral and executing the borrow, swap, and resupply path from its own balance.
deleverage(amount) adminOnly
Pulls back some of the Aave V3 borrow loop as position health dictates.
Withdrawals
LPs may withdraw the following amount of tokens at any time:
free_NAV = max(0, NAV - capacity_committed_NAV)
capacity_committed_NAV = max(
sum_policy_sizes,
7 * ((0.05 + max(0, current_carry)) * sum_cp_notional / 365.25)
)
sum_policy_sizes is the sum of entitlement_share(policy.L) * policy.notional
across open Negative Rate Hedge positions.
NAV in this formula excludes claimable_tokens from The Perpetual Negative Rate Hedge settlements.
Pool Balance Sheet
The pool's withdrawable equity is its NAV net of the obligations reserved against it. The view below nets quantities the contract already tracks; it adds none.
| Side | Items |
|---|---|
| Pool assets | Loop collateral and borrow position deployed on Aave V3; idle (undeployed) NAV |
| Reserved against NAV | capacity_committed_NAV for open Carry Perp and Negative Rate Hedge entitlements; claimable_tokens owed from Negative Rate Hedge settlements; accrued policy buffers |
| Held, not yet pool capital | Buyer gas tanks (premiumBalance), credited to NAV only as premium is debited |
free_NAV = max(0, NAV - capacity_committed_NAV) is the equity withdrawable after those reservations.
LP-Book Pool Health
If LP-Book Pool health degrades, Cardinal automatically deleverages the LP-managed borrow loop to reduce exposure.
Triggers:
- Aave health factor falls below threshold
- pool NAV drops more than 10% peak-to-trough
Redeployment starts only once the NAV drop climbs back up to 3% below peak.