Manual · v1
The whole mechanism, no adjectives.
The loop
- 01
Someone trades a ballasted meme
40 bps of that volume is routed away from the pool fee.
- 02
Intake receives ETH or WETH
Permissionless. It holds nothing back for the team.
- 03
Sweep buys the basket
Fixed weights, one transaction, anyone can call it.
- 04
Hold stores stock tokens
The only exit is a BLST burn. No admin withdrawal.
Intake
Intake is a receiver, not a vault. It accepts ETH and WETH from anyone: fee splitters of ballasted tokens, one-time bonds paid at listing, and plain donations.
The route is carved out of the fee a pool already charges. A Pons-style pool charging ~1% keeps charging ~1%; Ballast takes 40 bps of the volume from inside it. Nothing is stacked on top of the trader.
Intake never holds a balance on purpose. Anything sitting in it is either waiting for the next sweep or was deferred because a leg was too illiquid to fill.
Accounting per token
Every source credits paid_in for that token in the registry. That number is the only reputation the registry has.
Sweep
Weights, welded
A sweep converts whatever Intake holds into the four legs at their fixed weights. It is callable by anyone, so the protocol does not depend on a keeper being polite.
net_i = (WETHin × 0.995) × w_i
If a leg would cost more than 1.5% in slippage, that slice stays in WETH and waits. A deferred slice is logged as deferred_weth against the sweep — the hold can honestly be part cash for a while.
Hold
The hold owns tokenized stock exposure. It has exactly one outbound path: a redeem triggered by a BLST burn. No governance vote can move it, no multisig can sweep it out, and no rebalance job touches the weights.
Stock Tokens are exposure instruments. They are not broker shares: no dividends, no voting, no custody claim on the underlying company.
Invariants
- Outflow happens only through redeem.
- Weights are constants in the bytecode, not storage.
- No mint function on BLST. Supply only ever falls.
- Every redeem leaves k = 2% of the computed share behind.
Redeem
a_i = B_i × (x / S) × (1 − k), k = 0.02
Why 2% stays
arithmetic, not a quotebacking′ / backing = (1 − 0.98r) / (1 − r)
Exits never dilute the people who stay. The larger the exit, the more the remaining claim thickens. That is the whole reason for the leftover.
Epoch tail
A small tail of each epoch is weighted by how long BLST actually sat still. Holding time is capped so an early wallet cannot farm the mechanism forever.
walletw = balance × min(hours / 168, 2)
Rules
Supply
Fixed supply of 1,000,000,000 BLST. No mint function exists, so the number above is a ceiling that only burns can lower. The hold seed is paid as ETH into Intake so the seed buys real basket, not team tokens.
What v1 refuses to do
- Governance over basket weights
- Leverage, perps or meme tokens inside the hold
- Paying redeem in BLST
- Weekly “optimize the basket”
- Redeem-to-stable by default
- LP tokens earning epoch weight
- A team fee taken from the hold after launch
Contracts
BLST
Fixed-supply ERC-20, 1,000,000,000, no mint
Intake
Permissionless receiver. Sweeps into the hold.
Hold
Stores the basket. Pays out only on redeem.
Registry
Ballasted tokens and their fee routes
Addresses appear here the moment they are recorded, read from the database on every request. Until then this page says so rather than showing a placeholder.