Skip to content
3F Docs

Deposit Cap Calculation

The Facility deposit cap is the maximum total amount that an intent will accept. For leveraged Position Manager deposits, the cap is recalculated from the borrow liquidity available to finance the leverage.

Caps are recalculated every 5 minutes while an intent is open for deposits.

Each cap change is an on-chain transaction. A newly calculated cap therefore takes effect after that transaction is confirmed, so the observed update may take slightly longer than 5 minutes.

For each Morpho market, the calculation targets 90% utilization:

market headroom
= max(0, 90% × supplied assets - borrowed assets - committed borrow)

committed borrow is liquidity already reserved for deposits that are still being processed. Subtracting it prevents the same liquidity from being offered twice.

Market headroom is then split into:

shared market headroom = min(market headroom, allocator vault allocation)
local market headroom = market headroom - shared market headroom

The local portion can only fund intents using that market. The shared portion can be reallocated by the Morpho allocator. The complete shared budget is:

shared borrow budget
= max(0, allocator vault assets - active market allocations)
+ sum(shared market headroom)

This combines assets that can be moved into a market with unused capacity already available inside managed markets.

Convert Borrow Capacity to Deposit Capacity

Section titled “Convert Borrow Capacity to Deposit Capacity”

For intent i, define:

borrow multiplier mᵢ = leverageᵢ - 1

A 2× intent therefore needs one unit of borrow for each unit deposited, while a 4× intent needs three.

Deposits already accepted consume borrow capacity first:

borrow usedᵢ = deposited amountᵢ × mᵢ

For intents sharing the same asset and market:

borrow already used F = Σ(deposited amountᵢ × mᵢ)
remaining borrow R = max(0, group borrow budget - F)
deposit headroom per intent h = R / Σ(mᵢ)
capᵢ = deposited amountᵢ + h

Each dynamically calculated leveraged intent in the group receives the same amount of new deposit headroom. Higher-leverage intents consume that shared borrow capacity faster because they have a larger multiplier.

When several asset and market groups share a borrow budget, remaining capacity is divided between the active groups. Capacity that is specific to one market stays within that market.

A deposit can only succeed if the resulting deposited amount remains within the current on-chain cap. Once accepted:

  1. The deposit immediately uses some of the intent’s available room.
  2. At the next recalculation, the deposit is treated as borrow capacity already consumed.
  3. The remaining headroom is recalculated across every open intent sharing the same capacity.
  4. New caps are submitted on-chain.

As a result, a deposit into one intent can reduce the unused room on the other intents. A lower cap does not remove deposits that have already been accepted.

Assume the available borrow capacity is:

Input Amount
Allocator vault total assets 10,000,000
Active managed-market allocation 8,000,000
Market supply assets 12,000,000
Market borrowed assets 9,000,000
Committed borrow 500,000
market headroom = 90% × 12,000,000 - 9,000,000 - 500,000
= 1,300,000
borrow budget = (10,000,000 - 8,000,000) + 1,300,000
= 3,300,000

Two intents share this capacity:

Intent Leverage Multiplier Deposited amount
A 2× 1 400,000
B 4× 3 200,000

The existing deposits already use:

borrow already used = 400,000 × 1 + 200,000 × 3
= 1,000,000
remaining borrow = 3,300,000 - 1,000,000
= 2,300,000
deposit headroom = 2,300,000 / (1 + 3)
= 575,000

The resulting caps are:

Intent Calculation Planned cap
A 400,000 + 575,000 975,000
B 200,000 + 575,000 775,000

If both caps are filled, intent A consumes 975,000 × 1 of borrow and intent B consumes 775,000 × 3, for exactly 3,300,000 total.

Suppose a user deposits 300,000 into intent A. Its deposited amount increases from 400,000 to 700,000.

borrow already used = 700,000 × 1 + 200,000 × 3
= 1,300,000
remaining borrow = 3,300,000 - 1,300,000
= 2,000,000
new headroom = 2,000,000 / (1 + 3)
= 500,000

The caps rebalance to:

Intent Deposited before Cap before Deposited after Cap after Room after
A 400,000 975,000 700,000 1,200,000 500,000
B 200,000 775,000 200,000 700,000 500,000

Intent A’s total cap rises to cover its larger deposited amount, but the unused room on both intents falls from 575,000 to 500,000. The deposit consumed 300,000 of borrow capacity, which reduced shared headroom by 75,000 per intent.

If the same 300,000 were deposited into the 4× intent instead, it would consume 900,000 of borrow capacity. Shared headroom would fall further, to 350,000 per intent.

  • Dynamic caps for 6-decimal assets move in 1,000-token increments. Calculated values are rounded down, but not below deposits already accepted.
  • A 1× intent does not consume borrow capacity and uses its configured cap.
  • USCC intents are closed to new deposits with a cap of zero. Existing deposits remain and still consume borrow capacity.
  • A temporary manually set cap takes precedence while active and consumes capacity according to the intent’s leverage. When it expires, the cap returns to automatic calculation.

Small changes may not produce a visible cap update immediately because of rounding and on-chain confirmation time.