Reactor Deposit Waterfall
This is the protocol’s most important payment structure: exactly what happens to 1 ETH the moment a player callsinjectMass(ref). Every number below is a constant or a
verified line from UltimateSingularityProtocol.sol.
The waterfall
The code, verbatim
Worked example — 1 ETH deposit
Assume the gas-sponsor skim is set to 200 bps (2%) of the team chunk:
Effective deposit fee: 12.1% gross (10% + 1% + 1% + 0.1% skim) with default wiring —
the rest starts working for the depositor immediately as Reactor Nodes.
DUST earning — no ETH leaves
The DUST mint (_earnStardust) is a side effect, not a fee: it calls
StardustWheel.earn(user, amount, "deposit") which mints new DUST. Depositors get 500
DUST per ETH in addition to the waterfall above. Personal boosts and global Supernova
epochs multiply this (see Stardust).
The VIP pool auto-registration
When the 1% VIP cut arrives, the reactor calls — with the cut attached:- Pools the 1% fee into the current week’s pot (70% raffle / 30% dividend).
- Credits the depositor’s
depositedThisWeekwith the gross injection — so a 0.05 ETH deposit satisfies the 0.05 ETH weekly activity floor even though the pool only received 0.0005 ETH. - Auto-registers the depositor as a weekly member (weight = live NFT mass).
NFT auto-invest — no double fee
DarkMatterNFT mints can auto-invest the buyer throughinjectMassFor(user, ref). That
path forwards the stock dividend and earns DUST but deliberately does not forward
another Founder/VIP cut — the NFT mint already routed its explicit 40% protocol
allocation via routeProtocolAllocation(), and that allocation pays each pool 10%:
Compounding (condenseMatter) — a smaller waterfall
Compounding converts accumulated radiation into nodes and pays a 2% fee on the
compounded value:
The nodes themselves are minted from the radiation (
radiationUsed / 1_080_000) —
the fee is paid out of the radiation’s ETH value, not out of the node count.
Compounding also counts toward the VIP weekly activity floor (credited as the gross
ethValue).
Failure behavior — nothing is ever lost
Every forward in the waterfall is fail-safe:
Queued pool credits are retried by anyone via
retryPoolCredits() — permissionless
self-healing. The reactor’s available balance view explicitly reserves queued credits:
The casino’s own 1%
Casino deposits (intoCrashVault) run a parallel 1% fee at ledger-credit time
(vault-sweep.js), with the same half-dev / half-VIP split as the reactor’s deposit
fee: