Money Market
USDC lending and borrowing integrated into the cross-margin account.
Pacifica operates a single USDC money market shared across all cross-margin accounts
Lending and borrowing are implicit on Pacifica. Positions can be opened against spot collateral and pay no interest until negative PnL triggers a borrow.
Accounts with idle USDC above a threshold supply the pool and earn interest. Accounts who 1) hold spot collateral 2) have cross margin equity that falls below zero automatically borrow from the pool and pay interest. Only USDC is lent or borrowed; spot assets serve as collateral and are never rehypothecated.
Lenders and borrowers
An account is eligible to lend when all of the following hold:
Its USDC balance is at least the minimum lender threshold (1,000 USDC).
Its lendable capacity — USDC balance net of the 10% initial-margin floor, pending interest, and any USDC locked by spot buy orders — is also at least 1,000 USDC.
auto_lend_disabledis false.
An account is a borrower when:
equity_without_spot = usdc_balance + unrealized_pnl_from_cross_perps - pending_interest
required_borrow = max(0, -equity_without_spot)and required_borrow > 0. Borrowing is only permitted while spot collateral is sufficient to cover the shortfall. An account without adequate spot collateral is flagged for insolvency deleveraging. See Liquidations.
Pool aggregates
total_borrowable = sum over eligible lenders of their lendable capacity
total_borrowed = sum over borrowers of required_borrow
utilization = total_borrowed / total_borrowablePool state is published via GET /api/v1/loan_pool.
Utilization thresholds
Optimal
80%
Borrow APR equals the kink rate.
Order admission limit
> 90%
Borrowing accounts cannot place new non-reduce-only perpetual orders.
Pool deleveraging
≥ 95%
Pool-level insolvency deleveraging begins.
Pool deleveraging target
90%
Utilization target after pool-level deleveraging.
Borrow APR
Borrow APR is a piecewise function of utilization:
Current defaults: MIN_BORROW_APR = 1%, LINEAR_KINK_APR = 10.95%, EXPONENTIAL_TARGET_APR = 50%. At u = 1, the curve reaches exactly EXPONENTIAL_TARGET_APR.
Lender APR is derived pro-rata from utilization:
APR values are compounded per-second, so APY ≈ e^APR - 1.
Interest accrual and payout
Every 60 seconds, each borrower's pending_interest grows by:
Every hour, accumulated pending_interest is charged to the borrower's USDC balance and distributed pro-rata across lenders' USDC balances.
Order admission under stress
When pool utilization > 90%, accounts carrying a borrow (equity_without_spot < 0) cannot place new perpetual orders unless the order is reduce-only. Spot orders are not subject to this check. Non-borrowing accounts are unaffected.
Opt-outs
Stop lending. Set
auto_lend_disabled = true. USDC balance remains usable for trading but is excluded fromtotal_borrowableand earns no yield.Exclude a spot asset from unified margin. Set
unified_margin_excluded = trueon a (user, asset) pair. The asset remains in the account and tradeable but contributes no collateral and cannot back a borrow.
Borrowing itself cannot be disabled. An account whose equity_without_spot drops below zero with sufficient spot collateral will automatically open a loan.
Last updated