Permanent liquidity is the protocol-owned side of every canonical pool. It is seeded by the basket creator at launch and expanded from swap-fee allocations. It is hook-owned, full-range, and intentionally non-withdrawable while its pool remains active.
#Hook-owned and locked
Matched protocol-owned inventory converts into the hook's own full-range position. It has:
- no PositionManager token ID;
- no 24-hour epoch, seven-day ramp, minimum epoch size, or primary basket-fee reserve; and
- no ordinary withdrawal path.
Hook permanent liquidity cannot be released before pool decommissioning. It has no protocol PositionManager token ID, and no routine operation withdraws it.
#Compounding from swap fees
The swap-fee hook's permanent-liquidity share
stays in the hook. During swap settlement, when both pool currencies are
available, the hook compounds matched inventory into its full-range position.
Unmatched amounts remain pending until someone calls
compoundPermanentLiquidity. Fees earned by the hook's position are collected
back into pending inventory and may be compounded again.
#Exit-only unwind
After a basket enters ExitOnly, anyone may call unwindBasketLiquidity once
per constituent. The flow:
- marks the pool decommissioned;
- releases full-range hook liquidity and pending inventory to the Diamond;
- burns returned BasketTokens and reduces their represented backing; and
- accrues the released constituent and backing reclassification to global treasury fees.
User-owned PositionManager NFTs are untouched. No position, LP, or staker claim is created by the unwind — released value accrues to global treasury.
#Dependency and recovery
The hook, PoolManager, PositionManager, Permit2, and liquidity-manager bindings
are version-level dependencies. V1 does not implement live in-place replacement
of those immutable integrations. A critical dependency failure after final
immutability is handled by guardian containment, terminal V1 ExitOnly
wind-down and liability settlement where executable, followed by a separately
deployed and governed V2. Users and external LPs are not force-migrated.