The floor only goes up.
A launchpad where every token is issued with its own vault of tokenized equities underneath it. Push the pawl up. Then try to push it back down.
Floor
$0.00001000
vault ÷ supply
Price
$0.00004000
what the pool would pay
Vault
$10,000
Supply
1,000,000,000
Pours
0
Claims
0
Every token shows two numbers.
Not one. A price on its own tells you what somebody else will pay today. Underneath it there is a second number, and it is the one this whole thing is built around.
Price
What the pool will pay for one token right now. It is set by whoever is buying and selling, it moves in both directions, and nothing in the protocol touches it.
Floor
What the contract will pay for one token if you burn it: your share of the vault, handed over in kind. It is not a target and not a promise about the price. It is a division.
floor per token = vault value ÷ circulating supply
The arithmetic, in three lines.
Two things move the floor and there is no third. Builders will check this, so here it is rather than a badge.
A fee pours in
rises
F′ = (V + f) ⁄ S = F + f⁄S
The vault gains, the supply does not move, so the ratio rises. Half of every trade fee arrives this way.
Somebody claims a tokens
unchanged
F′ = [V(S − a)⁄S] ⁄ (S − a) = V⁄S = F
The claimer takes a⁄S of the vault and burns a tokens. The (S − a) cancels exactly, so everyone still holding is left with the same floor they had a second earlier.
Anything else
no effect
V, S untouched
Transfers move balances. The pool trades against its own reserves. There is no mint after construction, no burn other than a claim, and no withdrawal function anywhere.
A claim is neutral for everyone remaining and accretive for nobody. That neutrality is exactly the property that makes it survivable to leave the function open to anyone, permanently, with no fee. Put a fee on it and the person leaving starts paying the people staying, which is a different product and a worse one.
Fees only add to the vault, and a claim removes vault and supply in exact proportion, so no function in the system lowers the ratio. The assets in the vault are priced by a market, and that market can fall. The invariant is about the share, not about the dollar, and the difference matters enough to say twice.
Run it forward and watch the two lines part.
Set a build size, a volume assumption and a horizon. The price wanders with no drift in either direction. The floor only moves one way, and after long enough it catches the price from below.
Simulation · not a forecast
seed 7 · 180 days
Floor at build
$0.00001000
Floor at the end
$0.000272
Price at the end
$0.000294
Poured into the vault
$225,000
20% funds the vault
0.5% of it pours in
how long the run is
The wander is seeded, so the same seed always draws the same picture.
What this model assumes
- Supply is fixed at 1,000,000,000 and no tokens are minted after the build.
- 20% of the raise funds the vault; 80% seeds the pool and the position is locked.
- Trades pay 1% and half of that pours into the vault, so the vault receives 0.5% of volume.
- The price wanders with no drift. Its expected return in this model is zero.
- Daily volatility is 12%, which is a guess about memecoins and not a measurement.
- When the price falls below the floor, claimers burn tokens until it returns to the floor.
- Vault assets are held at a constant price. Equity prices move; this model does not move them.
- No slippage, no gas, no failed purchase windows.
There is no withdrawal function.
Not paused. Not permissioned. Not behind a timelock. Absent from the source, which is a different kind of claim from a disabled one.
Everything a vault contract can do
- receive(asset, amount)
Anyone can send assets in. The pour arrives this way.
- claim(amount)
Burn tokens, receive your share of every asset in kind.
- buy(usdg)
Convert accumulated USDG into the allowlisted mix, inside a slippage cap that reverts rather than fills badly.
- withdraw(...)does not exist
- rescue(...)does not exist
- migrate(...)does not exist
- pause()does not exist
Default mix
60% SPY · 25% QQQ · 15% NVDA
Chosen at build from a fixed menu. There is no address field.
Own vault per token
One contract each
A shared treasury is one point of failure and one point of theft.
Owner
None
No owner, no role, no proxy. Not renounced — absent.
Stock Tokens are tokenized debt securities issued by Robinhood Assets (Jersey) Limited. They give economic exposure to a company's share price. They are not shares: no ownership, no votes, and no claim on the underlying stock.
Claiming pays in equity, not in cash.
Burn the token and the vault hands over your fraction of every asset it holds, at the same moment, in the asset itself.
claim(amount): share = amount / circulatingSupply payout = vault holdings × share // pro rata, every asset at once burn(amount) transfer(payout) // in kind, rounded to the vault
In kind rather than in cash for three reasons. The vault never has to sell into a bad book. The claim becomes a conversion into equity rather than a redemption for money. And the sentence at the end of it is “I burned the dogcoin and the contract sent me Nvidia”, which is the only marketing this needs.
Every division rounds down and the residue stays in the vault. That is one base unit per asset per claim, and it is the direction that stops a dust-claim loop from draining anything at 100ms blocks.
$FLOORR is burned to launch a build.
That is its job, and the supply falls with every build, forever. No revenue share, no governance, no staking, no yield.
It is also the protocol’s first product. The 20% protocol share of every fee on every build pours into $FLOORR’s own vault, so $FLOORR has a floor of its own — and it is the largest one on the platform, because it collects from all of them.
It is burned, and it is backed. There is nothing else to say about it, and no sale, presale or allocation to describe. No contract is deployed. No token exists. There is no address to publish and nothing on this page reads a Floorr balance, because there is not one.
What a build is not allowed to do.
Constraints, not features. Each of these is a thing the contracts must not contain, and a review that finds one is a failed review.
No withdrawal function
Not paused, not permissioned, not timelocked. Absent from the source. Renouncing an owner is a state; having no owner is a property.
No claim fee
A fee on claiming would make the person leaving pay the people staying, and the floor would rise on exit. That is a different product.
No admin key on any vault
No owner, no role, no proxy. Nothing that can be called by anyone to move a vault other than a claim.
No choosing your own vault asset
The composition is picked from a fixed allowlist set at protocol deploy. There is no address field, because an address field is a way to name something you can move.
No mutable launch burn
The $FLOORR burned to build is set once and is immutable. A setter is a way to price a competitor out.
No sorting by return
When there is an index, it sorts by floor. Never by performance, and there is no toggle for it.
No cached floor
Every floor shown anywhere is computed from vault balances and multipliers read at the current block. Nothing is stored and replayed.
No second claim path
One claim function, one set of arithmetic. A second route out with different rounding or a different payout is how the proof stops being true without anybody editing the proof.
One number on this page is read from a chain.
Splits and dividends arrive on this chain as an on-chain multiplier rather than as new tokens. It is the single most likely way to get a floor badly wrong, so it is read live rather than assumed.
Reading the chain
Waiting on the RPC. Nothing is shown here until it answers.
Nothing here is built yet.
Ten capabilities, each named, each with the state it is actually in. The counts come from the list rather than from a sentence, so they cannot drift away from it.
Live
0
Partial
2
Not built
8
The floor arithmetic
partial
Specified, proved on paper, and covered by unit tests that run on every build. It is not in a contract.
Reading uiMultiplier from chain
partial
Working, live, on this page — against deployed Stock Tokens, not against a Floorr vault, because there is no Floorr vault.
The vault contract
not built
Not written. Its most important property is a function it does not have, and that property cannot be demonstrated until it exists.
The token contract
not built
Not written. No supply exists.
A vault holding a Stock Token
not built
Untested. Whether a contract can receive one is the first thing to verify and it decides whether this product exists at all.
Building a token
not built
There is no launch flow, simulated or otherwise. Nothing on this site can create anything.
Claiming the floor
not built
The arithmetic is specified and tested. There is nothing to claim from.
Chainlink price feeds
not built
No feed address on this chain has been verified, so none is hardcoded. Configured through an environment variable, empty today.
Token pages and the build index
not built
Not built, and they will stay unbuilt until there is a build to index. An empty index is not a product.
$FLOORR
not built
Not deployed. Burned to launch when it exists; there is no sale, no presale and no allocation.
The metrics table
- Builds
- 0
- Vaults
- 0
- Total vault value
- $0
- $FLOORR burned
- 0
- Claims settled
- 0
- Contracts deployed
- 0
Every one of those is genuinely zero rather than withheld, and it is zero because nothing is deployed. When one of them is not zero it will be read from a contract, at a block, and it will say which.
The waitlist is the whole product today.
No token sale, no presale, no allocation. An email, and a note when a vault has held something.