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
Cardinal adds or removes LP addresses.
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.
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%.