StockPacks

Parameters

What is tunable, what it is set to, and what bounds it. Anything not listed here is fixed in code. Terms that matter to an open pack — the surcharge, the bid rate, the windows — are frozen onto each acquisition at purchase, so no change here can re-cut a pack already paid for.

Economics

Surcharge10%

capped at 30% in the contract

Bid rate90% of backing

bounded 50–100%

Backing floor111.11% of value

bounded 100–150%; the bid must clear the stock

Protocol cut, acquisition1% of each pack

capped at 5%

Protocol cut, settlement1% of backing return, keeps only

capped at 5%

Depositor share60%

of surplus — the only depositor profit

$SP buy share20%

of surplus

Protocol share20%

of surplus, plus rounding dust

Min backing0.001 ETH

floor so dust listings cannot distort weight

The three surplus shares must sum to 100%; the contract rejects any split that does not. They are runtime parameters on purpose — depositor supply is the launch-critical constraint, so the weighting needs to be tunable toward depositors during bootstrap and rebalanced once supply is healthy.

The window and the crown

Settlement window15 minutes

purchaser-exclusive; ≤ finalize window

Finalize window2 hours

then anyone may close to the keep-default; ≤ 7 days

Crown tithe5% of compensation

capped at 20%

Crown threshold10% over the holder

capped at 100%

Both windows are frozen per-pack at purchase. The durations are tunable because the right length is an empirical question — the window is an option the pool writes to purchasers, and its cost scales with the square root of time.

Mechanics

Unit size1 whole token

fixed — one listing is exactly one unit

Selection weight1e36 ÷ backing

fixed

Concurrent draws1

fixed — a correctness constraint, not a setting

Emission period15 days nominal

clock starts when draws first open; idle days stretch it

Emission weighting√value (depositors)

fixed; purchasers split daily pots

Buyback routing40 / 40 / 20

depositors / purchasers / burned; must sum to 100%

Tree capacity2²⁰ listings

concurrent, not lifetime — slots are recycled

Switches

acquisitionsEnabledowner

opens draws; also starts the emission clock

pausedowner

blocks deposits and draws; never blocks withdrawal

escapeModeowner, one-way

unconditional withdrawals, permanently

paused and acquisitionsEnabled are deliberately separate. acquisitionsEnabled holds the demand side closed while the supply side fills — the loading phase. paused is the incident lever and stops both at once.

Bounds that exist for a reason

Every economic parameter above carries a hard bound, and each bound is aimed at the same actor: a compromised owner key. The surcharge cannot become confiscatory, the bid rate cannot be pushed past what escrow can fund, the crown cannot drain compensation, and the cuts cannot quietly become the counterparty's margin. Similarly, the randomness coordinator cannot be changed while a draw is in flight, so a swap cannot be used to reach into an unresolved pack.