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_disabled is 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_borrowable

Pool state is published via GET /api/v1/loan_pool.

Utilization thresholds

Threshold
Utilization
Behavior

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 from total_borrowable and earns no yield.

  • Exclude a spot asset from unified margin. Set unified_margin_excluded = true on 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