# Money Market

*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](/docs/trading-on-pacifica/liquidations.md#spot-insolvency-deleveraging).

### 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:

```
u <= 0.8:  apr = MIN_BORROW_APR + (LINEAR_KINK_APR - MIN_BORROW_APR) * (u / 0.8)
u >  0.8:  apr = LINEAR_KINK_APR * (EXPONENTIAL_TARGET_APR / LINEAR_KINK_APR) ^ ((u - 0.8) / 0.2)
```

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:

```
lend_apr = borrow_apr * 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:

```
pending_interest += required_borrow * borrow_rate_per_second * 60
```

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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://pacifica.gitbook.io/docs/trading-on-pacifica/money-market.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
