THE WHOLE DESIGN, AND EXACTLY WHERE WE ARE
How to read this. The commitments on this page are fixed — they are what we are promising not to do, and we do not intend to edit them. Every number is read from the chain by your browser when you open the page, so nothing here can quietly go stale or be quietly corrected. If a figure below looks wrong, it is because the chain says so, not because we updated a paragraph.
First published 2026-09-20 · reading the chain…
A launchpad whose income has exactly one exit.
Every launchpad says it will support its token. Almost none can show you the three transactions that would prove it — the fee arriving, the buy on the open market, the burn. We went through a list of 113 launchpads while designing this; seventeen could show a real market buyback. The rest said it and could not demonstrate it.
So we did not write a promise. We removed the ability to break one. The contract that receives the platform's share of every fee on Robinhood Chain has no owner, no withdraw function, no setter and no upgrade path. The only way value leaves it is buying $SPRIVIO on the market and sending it to the burn address. Anyone can trigger that and keep 0.5% for the gas. We do not have to be involved, and we cannot take the money out — not because we promise not to, but because the function does not exist.
Everything below is checkable. Contract addresses are in section 4; the live numbers are on the Proof page, which your own browser reads straight from the chain.
🔴 We are stuck at step 1, and we will say so until it changes. Steps 2 through 5 are built and have run end to end — but the money that ran through them was ours. The flywheel does not begin when the treasury ships. It begins the first time somebody who is not us launches a token. That is the single number we are watching.
Founding rate, for the first … launches
per chain. After that it becomes … to the creator.
Both numbers
are constant in the factory with no setter, so they cannot change for a token
after it launches. For comparison: on pump.fun the creator receives none of the trading fee;
Ethics Launch publishes 70/30, which is the same as our standard rate.
A tax on buys in the opening seconds, halving fast. A bot that buys in the
first second pays almost all of it away. Half of that penalty is paid to the creator
— it is not our fee. The creator is exempt from it on their own opening buy. These figures are
computed from the contract's own SNIPE_TAX_START_BPS and SNIPE_TAX_SECONDS,
not written by hand. We think three seconds is too short and intend to lengthen
it; see the roadmap.
| Chain | Launch fee | Launches so far |
|---|---|---|
| reading the chain… | ||
Bridging between any of the four is free — we take nothing on it; you pay the underlying network and routing provider only. A creator may also set their own trade tax of up to 10%; that one is paid to them in full and we take none of it.
Four pieces. Each is a plain contract you can read on a block explorer.
Creates the token and its bonding curve in a single transaction, mints the creator's share
to them, and opens the rest as a public curve that anyone can buy from immediately. The fee
recipient is immutable — there is deliberately no setter, because being able to
change where the money goes is the same as being able to take it.
| Chain | Factory | On-chain size |
|---|---|---|
| reading the chain… | ||
🔴 Addresses change when we redeploy — and the roadmap below says we intend to. That is why this table is read from our deployment config and verified against the chain as you load it, rather than typed into a document that cannot be edited.
The same address on two chains is not a mistake — with the same deployer and nonce, CREATE produces the same address everywhere. It is also how a token launched through "all four chains" ends up at one address on all of them.
A constant-product curve with a virtual reserve that sets the opening price and can never be
withdrawn by anyone, including us. Selling is always open, including after
graduation is reached — an earlier design closed both sides at graduation, which would have
buried every holder's money in a contract with no way out. Fees accrue inside the curve and
are pulled on demand; claimPlatformFees() is callable by anyone and always pays
the treasury.
… — … on Robinhood Chain.
This is the piece the whole design rests on. It has no owner, no withdraw, no setter, no
upgrade path, and its bytecode contains neither SELFDESTRUCT nor
DELEGATECALL. Two paths out, both written in the contract: buy $SPRIVIO and send
it to the burn address, and pay the caller 0.5% for triggering it. There is no third.
A limitation we are not hiding: the buying venue is fixed
at construction. When $SPRIVIO graduates to a DEX, the current venue's buy() stops
working and whatever balance is left in this contract becomes unreachable. We chose that over
adding an emergency-withdraw, because an emergency-withdraw is an owner by another name. The
exposure is small and bounded on purpose: the keeper fee means the balance is drained
continuously, so at any moment it holds only what has arrived since the last burn.
One page, two routes. Base → Arc USDC goes through Circle CCTP. Everything else between the four chains is routed through Relay — measured today at three seconds from Robinhood Chain to Arc. Before sending, we check that the transaction targets the chain you picked, carries the exact amount, and has your address encoded in its data; if any of those is off we refuse to send. Sprivio's fee on bridging is zero.
Buy and sell on the curve from the token's page. Selling is always available. When a curve reaches its graduation target it migrates into a real DEX pool and the liquidity position is burned, so nobody — including us — can pull it.
Pick a route on the bridge, get a live quote, sign once. We add no fee.
Anyone can. Call buybackAndBurn(minTokensOut) on the treasury when it holds a
balance; you keep 0.5% of it. You do not need our permission and we cannot stop you. Current
balance and every past burn are on the Proof page.
Two different kinds of thing get called a roadmap. This chapter is the first kind: work that depends only on us, with a condition that has to be true on-chain before we announce it. The second kind — things gated on how far this actually gets — is the next chapter. We publish the day a condition becomes true, not the day we decide to do it.
| Item | The condition | State | |
|---|---|---|---|
| B0 | Foundations — four chains, proof page, free bridge, treasury, burn ledger | All live and readable | done |
| B1 | First outside creator | launchCount() exceeds our own launches and the creator is not one of our wallets | waiting |
| B2 | First burn funded by fees that are not ours | Burn count rises and an outside creator has paid a fee | waiting |
| B3 | Visible in the charting tools | Main pool liquidity ≥ $1,000 and our logo and socials render on the aggregators | waiting |
| B4 | Next factory deployment — longer launch window, no launch fee | New factory bytecode live on all four chains and the numbers on this page change with it | next |
All three need a redeploy, so they ship together rather than spending a deployment on each. When they do, the numbers on this page, in the API, in the docs and in the contract all change in the same commit — there is a test that fails if they drift apart. Nothing on this page is a hand-typed number; every figure you see was read from the chain by your own browser when you opened it, which is why this document can promise never to be edited and still never go stale.
This chapter is the part of the roadmap that does not depend only on us. Each rung has a condition anyone can check from a public source, and a thing we have committed to do when it is met. A roadmap without a trigger is a mood; a trigger you cannot verify is a press release.
🔴 These are conditions, not predictions. Nothing here says any of these numbers will be reached, and none of it is a forecast of price. If a rung is never reached, the thing attached to it simply never happens. Do not treat any of it as a reason to buy anything.
Reading the market from your browser…
These numbers come from the bonding curve itself, read by your
browser. That matters: $SPRIVIO has not graduated, so every trade happens on the
curve — and the charting sites index the empty Uniswap v4 pool instead, which makes them
report a market cap and a liquidity figure that are wrong by several orders of magnitude.
We would rather show you the contract than a number that flatters or insults us. The ETH
price used for the dollar conversion comes from CoinGecko's public API; everything else is
quoteReserve() and tokenReserve() on the curve, which you can call
yourself.
🔴 Correction, 2026-09-20. This paragraph originally said our pool was thin enough that "a few dollars moves the quoted price a long way", and quoted a market cap of $2,559 and liquidity of $0.78. Those figures were wrong, and they were wrong against us. They came from a charting site that indexes an empty Uniswap v4 pool; $SPRIVIO has not graduated, so every trade actually happens on the bonding curve, which that site does not index. Read from the curve itself, the depth is three to four orders of magnitude larger. We are correcting it in place rather than quietly editing it, because a paper that promises not to change has to show its corrections.
Market cap is still only the last price multiplied by supply, and a rung written on market cap alone would still not be a condition — it would be a public bounty: whoever pushes the price through it forces us to act, then sells into us acting. That is a documented attack, not a hypothetical. A 2026 study of 34,988 tokens found that 82.8% of those that rose more than 100% showed signs of manipulation, and the most common method was small, targeted buys against a shallow pool. The ladder keeps all three conditions for that reason, and we are not loosening them now that the real number is better than we thought.
So every rung needs three things at once, and the third is the one that matters:
launchCount() on each chain, minus our own
launches, and it is the number we actually care about.The first two are read from the same public page as the market cap itself. The third is read straight from the chain by your own browser. We would rather publish a ladder that is hard to trigger than one that can be triggered with fifty dollars — a promise anyone can force is not a promise, it is an exploit.
| When all three of these are true | What we do | |
|---|---|---|
| M1 | $500K market cap as a 14-day average, liquidity ≥ $25K, and ≥ 25 launches by people who are not us | Everyone who was here before it gets paid — and we built it so that we
cannot change our minds. A distributor contract holds a fixed slice of the
team's tokens. It has no owner and no withdrawal function. We can do exactly one thing
with it: publish, once, the list of wallets that launched or traded on Sprivio before
the block where the condition was met, reconstructed from public events. Those wallets
then claim directly from the contract — we never handle the tokens. If we never publish
the list, or publish it and nobody claims, burnUnclaimed() becomes callable
by anyone after a deadline fixed at deployment, and every remaining
token is destroyed. The contract has no withdraw function, so we cannot simply take
them back. What the contract cannot stop is us publishing a dishonest list —
so we took that discretion away from ourselves separately, below. Plus: the next two
chains. We publish the shortlist of chains that meet the four conditions in chapter 8
and holders pick the order. No date is attached to that, on purpose — a date we control
only half of is a promise we would end up breaking on a technicality. |
| M2 | $1M market cap as a 14-day average, liquidity ≥ $50K, and ≥ 100 launches by people who are not us | The sealed envelope opens — see below; its hash is already published, so we cannot swap it for something smaller. Alongside it: one $SPRIVIO supply across every chain, so burning anywhere reduces the global number, with several independent verifiers and a timelocked multisig rather than the single-signer default. |
| M3 | $5M market cap as a 14-day average, liquidity ≥ $150K, and ≥ 500 launches by people who are not us | Solana, which is a real port rather than another deployment — new virtual machine, new account model, the bonding curve and the fee split rewritten and re-verified rather than redeployed. We are deliberately not attaching a funding promise to this rung: the platform's share of every fee already goes to a treasury with no withdrawal function, so there is no pot to grant from, and we would rather drop the idea than quietly weaken that. |
| M4 | $10M market cap as a 14-day average, liquidity ≥ $250K, and ≥ 2000 launches by people who are not us | We end at zero. Every token still held by the team is given away in public, recipient by recipient, until our wallets are empty. After that the people running this hold none of it, and the protocol keeps working exactly the same, because nothing in it depends on us being here. |
| M5 | Beyond that | Not ours to decide. By then the team holds nothing, and whatever comes next is chosen by the people who do. We would rather write that down than pretend we can plan a number we have no way to reach alone. |
It is deployed and funded. This is not a description of something we intend to build — you can open it right now and read what is in it. One third of everything the team held went in on the day this paper was published.
The honest limit of what the code guarantees. There is no withdraw function, so we cannot move those tokens to ourselves directly. But the contract does let whoever holds the publisher key set any list — which means code alone does not stop us from publishing a list with our own addresses on it. We are saying so rather than letting someone find it. Here is what we did about it instead: the eligibility rule — who counts, how much each address gets, which addresses are excluded — was written and sealed today, before we know who will be on that list, and its fingerprint is published here:
0x1251f14baaeaea6239731c0d298a3b05e7041a4faeebf9296f731625b4448be8
keccak256 of the M1 eligibility rule, sealed 2026-09-20. When we publish the list we publish the rule, the block it was taken at, and the script that turns public chain events into the list. You hash the rule and compare it to the string above, then re-run the script and compare its output to the list. If either fails to match, we cheated, and it is arithmetic rather than opinion. Our own wallets are named in that rule as permanently excluded.
Reading the contract from your browser…
The deadline is one year. That number is not arbitrary: the most
expensive broken promise in this industry recently was an airdrop that was announced and
then postponed for 365 days, with the price falling every time the delay was confirmed. The
difference here is that after 365 days we do not get to postpone — anyone can call
burnUnclaimed() and the tokens stop existing. Delay costs us the same as
refusal, which is why neither is worth anything to us.
There is one thing at M2 we are not describing yet. Writing "there will be a surprise" would be worth nothing — anyone can invent one afterwards, or quietly shrink it. So we did the honest version instead: the text is written, and its fingerprint is published here, today.
0x1a54ecfe1a8938aa5fed656313de1756a01cfa64ad0ec2eadc2fcc85cc8e06f6
keccak256 of
"sprivio-surprise|M2|<text>|<nonce>", sealed 2026-09-20, before
this paper was announced anywhere. When M2 is met we publish the text and the nonce; hash
them yourself and compare. If the result is not the string above, we changed our answer
after the fact and you can prove it. Publishing a fingerprint of something already
written is the only honest way to say "there is a surprise" — it fixes the answer on a
date, and it makes quietly shrinking it impossible.
The ladder above is the one everyone asks about. These matter more, and they are the ones we actually control least:
| When this becomes true | What we do | |
|---|---|---|
| P1 | The first creator who is not us launches a token | That creator keeps 100% of the trading fee on their token for 30 days. |
| P2 | 10 tokens launched by people who are not us | The launch-protection window is lengthened and the creator-selectable fee tiers ship, both in the B4 deployment. |
| P3 | 100 outside launches | A reward pool that concentrates on one token a week instead of scattering thinly across all of them. |
P1 is the one that has not happened yet, and everything else on this page is downstream of it. The honest summary of where we are: the machine is built, tested and readable, and nobody outside our own wallets has used it yet. That is stated again, with the live number, in chapter 10.
M4 is the one we expect people to disbelieve. Here is why it is within our power: our holding is roughly — of supply, in wallets that are already listed on the Proof page. Giving it away is entirely our own decision, and because those wallets are public, the promise fails visibly if we break it. We would rather be held to that than hold a bag.
Four is where we are, not where we are going. The design does not care how many chains there are — the factory is one contract deployed per chain with the same constants everywhere. Adding one is a deployment, not a rewrite.
Until M4 we choose, and we say why. From M4 onward we publish a shortlist of chains meeting the four conditions above and holders pick the order. A chain that fails condition 3 does not reach the shortlist however popular it is — we would rather say no than ship a chain whose token list is blank half the time.
Two different things, usually sold as one:
Before building any of this we went through the other launchpads — 113 of them on the list we worked from, and for a dozen we read the deployed bytecode rather than the marketing page. We are not going to publish our feature queue here; what is worth writing down is the rule we took away from it, because the rule is what you can hold us to.
Every claim we make has to survive someone checking it, and we build the checking first. That sounds like a slogan until you see how often it is not true elsewhere. Four patterns we found, often enough to design against each one:
DELEGATECALL in its bytecode.Credit where it is earned: the clearest working buyback we found belongs to someone else, and we checked it the same way we ask you to check ours — by reading their burn address twice, an hour apart, and seeing it grow. Good work exists in this category. It is just rarer than the marketing suggests.
One more thing worth stating plainly: of the projects we examined closely, none had a public audit, none had a public repository, and none appeared in the large protocol trackers. We are in the same position and are not pretending otherwise. What we are trying to earn is not a badge — it is that every number we publish can be recomputed by you.
This settled a decision rather than inspiring a feature. We checked the relayer configuration on each of our chains directly:
Everything in this section is read from the chain as you open the page. We keep the uncomfortable lines in on purpose: a status section that only lists wins gives you no way to tell this project from one that is pretending.
reading the chain…
The full breakdown, including every wallet we control and every burn with its transaction, is on the Proof page.
Read the full risk list before you use anything here.
Those chapters describe conditions, not expectations. Writing "if the market cap holds $500,000 as a fourteen-day average we will do X" is not a statement that it will, that we think it will, or that anyone should act as though it might. We have no opinion to offer on the price of $SPRIVIO. Every rung on that ladder is contingent, most of them depend on behaviour by people we have never met, and the most likely outcome for a project at our stage is that none of them are ever reached.
Two things we did to stop those commitments becoming the kind of promise that gets broken. The rewards that involve our own tokens sit behind a contract that destroys them if we fail to distribute them, so failing costs us exactly as much as succeeding. And no rung depends on a third party agreeing to anything — no exchange, no venue, no partner. Where we could not remove the dependency, we removed the rung.