New user allocation
A fresh address joining a small pool has a meaningful initial cap. The protocol explicitly avoids "cold-start lockout" where new participants can't get in.
The first-operation math
The cap formula is C_max · 12λ(1−λ)² / √(n+2) where:
- λ is the share the deposit would represent (
balanceOf(user) / totalSupply()after the operation). - n is the protocol-wide
largeHolders()count: addresses currently holding at least one whole token unit. It is not a per-user counter, and it is not zero in a fresh pool —Position.largeHolders()is floored at the governance parameterMIN_HOLDERS_ID(default1e18, see theConstantlibrary).
So for a brand-new pool just past genesis, n = MIN_HOLDERS_ID and the cap divisor is √(MIN_HOLDERS_ID + 2). As real depositors arrive and largeHolders() rises above the floor, n grows accordingly.
For a brand-new user joining a pool that's still at the floor (n = MIN_HOLDERS_ID), the first-operation cap is:
The cap is self-consistent — the protocol solves for the maximum λ such that the cap function evaluated at that λ permits the deposit. At default parameters and a near-empty pool, a brand-new user can deposit a meaningful share (well below the 1/3 peak of the beta function); the exact percentage depends on C_max (CAP_ID, see position-parameters) and MIN_HOLDERS_ID.
Cap floor
In addition to the formula, the protocol sets an absolute cap — the CAP_ID parameter on the position — that caps any single user's mint room regardless of pool state. The floor ensures a small new user can always make a meaningful first deposit, even into a deep pool.
The default CAP_ID is configured per-pool. Governance can adjust this within the standard lethargic bounds (0.5×–2× per MONTH).
What this means for adoption
- The very first user of a new pool can deposit aggressively — the pool is empty, so
λcan grow large andnis still at theMIN_HOLDERS_IDfloor. - Early users in a small pool also have generous caps relative to the pool size —
nis still low. - New users in a large established pool face a
√(n+2)divisor that's tightened by every existing large holder. The absoluteCAP_IDthen dominates.
What this doesn't allow
- A fresh address can't deposit more than 1/3 of the pool in a single operation, regardless of capital — that's the peak of the
12λ(1−λ)²factor. - An attacker can't bypass the cap with a flash loan: the cap is computed on the post-deposit state, including the flash-loan amount.
- Cycling deposits and withdrawals doesn't help —
nonly ticks down when a holder's balance drops below the unit threshold, not when they withdraw to a still-positive balance.
Where to go next
- How caps grow — the dynamics of subsequent operations
- Position parameters — the
CAP_IDandMIN_HOLDERS_IDdefaults