Docs
Protocol
What a launch is
One launch is one bonding curve holding a fixed supply of 1,000,000,000 tokens, priced in a quote asset. That asset is ETH or one of the tokenized stocks approved on the factory, so a coin can be paired against TSLA or AAPL as easily as against ETH. Buying mints from the curve, selling burns back into it, and the price is the constant product of the two sides.
A curve ends one of two ways. It graduates into a full-range Uniswap v3 position the factory holds forever, or it dies and pays out. There is no third outcome and no admin key that creates one.
The bond
Opening a launch costs 0.0005 ETH in fee and a bond of 0.005 ETH. The bond is not ours: the curve holds it, and the creator gets all of it back 1 day after the coin graduates. If the coin dies instead, the bond is forfeited to the people holding it.
Two things move the bond and neither is a penalty on who you are. Asking for a creator fee adds 0.00002 ETH per basis point, because a fee is a claim on every buy the coin ever takes. And a wallet with three clean graduations pays a third. There is no surcharge for a rug on your record: a wallet costs nothing, so a rugger is always on their first launch and a penalty priced on history prices nothing. Rugs are counted and published anyway, because they are still true.
What the creator cannot do
This is the part worth reading twice, because it is the whole product.
- The creator wallet is transfer-locked from the moment of launch until the coin graduates. They cannot sell a single token while it trades.
- Creator fees accrue into escrow on the curve and cannot be claimed before graduation. They cannot take out fee revenue while it trades either.
- Anyone who buys inside the first 3 seconds is locked the same way until graduation, so an opening bundle cannot dump on everyone behind it.
- At graduation the liquidity moves into a Uniswap v3 position the factory holds. The factory can collect the trading fees and can never withdraw the liquidity. Nobody can, the creator included.
Taken together: a creator cannot take a single wei out of a live coin. Not the bond, not the fees, not their own bag. That is a property of the contract, not a promise from us.
The lock the creator chooses
After graduation the creator serves whatever lock they picked at launch, anywhere from nothing to 365 days, fixed for the life of the curve. Zero is allowed and is shown as zero next to how much they hold, because a lock means nothing until you know what is locked.
A bag they kept sets a floor under their own answer: a day of lock for every percent of the supply they still hold at graduation, whichever is longer. A creator who bought none of their own coin owes nothing. The rule is proportional to the hole they could make, not a flat tax on everyone, and it is measured at graduation because that is the bag that matters.
A creator can also retire that bag rather than lock it, from the launches section of their own page, part of it or all of it. The lock has never stopped a burn and was never meant to: a lock is there to stop an exit, and burning is the opposite of one. It is worth doing because it is the only promise not to sell that cannot be taken back, and because the lock is priced on what they still hold, so a creator who burned owes less of one. Burned supply leaves the count everywhere, including the share a dead coin pays its holders.
Fees
Every trade pays 1% on the quote leg, split 50% to the protocol and the rest into the creator’s escrow. On top of that a creator may set their own tax at launch, up to 10%, which goes entirely to them and is never raisable afterwards.
The protocol’s share works out to 0.5% of volume whatever the creator charges, because their tax grows their side rather than ours. It can be swept off any curve at any time by anyone, and only ever to the treasury address the factory names.
Coverage
A buyer can tick a box and pay 2% on top. The premium comes off the top of what they send, is held apart from the reserve so it never moves the price, and buys them a claim: if the coin is later declared dead, that money comes back ahead of the pro-rata split.
Two rules keep it honest. It pays out of that coin’s own bond, fees and reserve and never from anywhere else, so a creator insuring their own rug only loses more. And selling gives up the coverage on the tokens sold, pro-rata, so nobody sells the top, buys the crash back cheap and still claims the original principal. The creator and the snipe-window buyers cannot buy coverage at all. If the coin graduates the premiums are earned, the way a premium is earned when the risk expires.
The coverage ratio shown on every coin is measured, not scored: what the coin can actually cover right now over what it owes, capped at 100%.
Graduation
A curve graduates when its reserve reaches the threshold for its pair. The whole reserve and the pool slice of the supply go into a full-range Uniswap v3 position owned by the factory, the unsold remainder is burned, and the creator gets the bond and every escrowed fee back 1 day later. Graduation costs the creator nothing. It is the outcome the bond is there to reward.
Death, and who gets paid
A coin dies when the creator walks away, or when it has been alive 1 day and its reserve sits at or under 10% of the high it held. Held is the word that matters: a level counts only once the reserve has still been standing there half an hour later, so nobody can lift the mark a coin is judged against by buying and selling straight back. The second one is permissionless: anyone can call it, and the caller keeps 10%.
The bond and every escrowed fee are forfeited and split: 60% plus the entire remaining reserve goes pro-rata to that coin’s holders, who claim by burning; 30% goes to the platform pot; and 10% to whoever called it dead. A creator who walks is not a caller and is paid nothing, so on that path their 10% stays with the holders too.
Only ETH reaches the pot. A coin paired against a tokenized stock forfeits its ETH bond there and leaves the stock side with its own holders, because a pot holding forty different assets cannot be drawn. Get rugged on a TSLA-paired coin and you are paid in TSLA.
The pot
One pot for the whole platform, drawn once every 1 day. Every coin that dies pays into the day it died in, and every buy on every live curve mints tickets into the day it happened in, sized by the pair’s own ticket unit so a stock-quoted buy is worth what the same money is worth in ETH.
Tickets are bought, never given: there is no free ticket for showing up, because one wei across two hundred coins would buy two hundred of them. They expire with the day. And a ticket lives as long as the bag that bought it: any way a wallet parts with those tokens, selling them or sending them on, it gives up the tickets they earned, pro-rata. Without that a wallet could buy and sell in the same block, pay only the round trip, and hold tickets against a pot it took no risk on.
Closing a finished day and drawing it are both permissionless and the caller keeps 2%. The draw is seeded by the hash of a block 20 blocks after the day was closed, inside a 200 block window, and recommits if that window is missed.
Integration
Contracts
Robinhood Chain, id 4663. The pot, the deployer and every curve and token are reached from the factory, so this is the only address you need to write down.
Curves are reached with curveOf(token) or by reading the launches array; every launch also emits Launched.
Reading the parameters
Do not hardcode any number on this page. Every one of them is an owner dial that applies to future launches only, and a curve keeps whatever it was born with for life. Read launchFee, baseBond, bondPerFeeBps and curveParams off the factory, and params off a curve for what that particular coin agreed to.
launchCost(creator, quote, devBuy, creatorFeeBps) returns exactly the value a launch transaction must carry. bondFor(creator, creatorFeeBps) is the bond alone. minLockFor(devTokens, supply) is the shortest lock a creator with that bag will serve.
Launching, buying, selling
launch(meta, quote, devBuy, minDevTokens, creatorFeeBps, creatorLockSeconds) on the factory, with launchCost as the value. It returns the token and the curve.
buy(quoteIn, minTokensOut, recipient, covered) and sell(tokensIn, minQuoteOut, recipient) on the curve. For a native pair, quoteIn must equal msg.value; for an ERC-20 pair, approve the curve first and send no value. Quote either side with quoteBuy or quoteSell before you sign.
The permissionless calls anyone can make: graduate() once a curve is full, declareDead() once it is dead by the numbers, claimConsolation(amount) to burn and be paid, sweepProtocolFees(), and on the pot close(epoch) then draw(epoch).
Events
Curves emit Buy, Sell, Covered, Graduated, Died, Consolation and BondReleased. The factory emits Launched, RugRecorded and GraduationRecorded, which is enough to follow every launch on the platform from one address. The pot emits Funded, Tickets, TicketsVoided, Closed and Drawn.
Security
What has been checked
57 tests pass against these contracts, including five fuzz suites at 512 runs each covering value conservation through death, graduation, coverage and the pot. Two of them are fork tests that run against the real Uniswap v3 and a real tokenized stock on Robinhood Chain mainnet, so graduation is exercised against the actual pool contracts rather than a mock.
What has not
No audit. Not pending, not in progress: none has been commissioned.
These contracts have been read closely by one person. That pass found three real bugs, two of which were money that would have become permanently unreachable, which is the honest reason to assume more remain. The code is immutable once deployed and it holds real money. Size your position accordingly, and treat everything on this page as a description of intent that the contract may not perfectly match.
Assumptions we are making
- The draw is seeded by a block hash. Nobody calling it can aim it, because the block does not exist when the day is closed. The party that orders blocks could. This chain has one sequencer, and there is no VRF on it to use instead.
- A ticket is not re-checked against a balance at the draw. It is voided when the tokens leave the wallet, which is the same thing done at a time we can afford it.
- The odds view reads the first two thousand buys of a day. The totals are exact; the per-wallet breakdown under the ring is partial on a busier day than that.
- Quote assets are trusted to behave. A tokenized stock that reverts on transfer, or takes a fee on it, would break a curve paired against it. Only assets approved on the factory can be used.
Contact
Security disclosures go to security@vigfamily.app. If you have found something that moves money, please write before you write about it.
Everything else, including integration questions, goes to contact@vigfamily.app.
See also how it works for the short version, and terms.