Curve Launch: how it works
A fixed supply sold on a constant-product curve with a virtual quote reserve, then handed, at the same price and in the same transaction, to its own Uniswap v4 pool whose liquidity no one can remove.
The bonding curve
Each launch mints its entire supply S once and opens a constant-product curve against the approved quote asset. The curve trades against a quote reserve Q + vQ, the real quote held plus a virtual reserve vQ, and a token reserve R. The same rule governs the pool after graduation, so the price is continuous.
cs is the supply sold on the curve, R0 the starting token reserve (larger than cs, so part of it is virtual) and T the graduation threshold in real quote, net of fees. The price on the curve is (Q + vQ) / R. A sell never pays out virtual quote. From the opening of the curve to graduation the price rises by ((vQ + T) / vQ)2.
| Testnet configuration | Value |
|---|---|
| Supply S | 1,000,000,000 tokens |
| Virtual quote reserve vQ / threshold T | 1.4 ETH / 4.2 ETH |
| Sold on the curve cs / seeds the pool | 800,000,000 (80%) / 200,000,000 (20%) |
| Opening price / graduation price | 1.3125 × 10−9 / 2.1 × 10−8 ETH per token |
The virtual reserve and the threshold are set per quote asset and snapshotted per launch; values may differ on other deployments.
Graduation
- The buy that reaches the threshold is clamped to it; any surplus is refunded inside the same trade.
- When Q reaches T, vQ is set to zero and R to the real remaining supply S − cs: the pool holds the raised quote T and the reserved tokens, and its price T / (S − cs) equals the last curve price exactly.
- In that transaction the graduator opens the token's Uniswap v4 pool at the exact curve price and seeds it with the raised quote and the reserved supply, as one full-range position that it holds permanently. There is no LP token and no function to remove liquidity.
- Supply can only fall afterwards, through holder burns and the buy-and-burn.
Opening-buy tax
For a short window after a launch, buys pay a tax on top of the trade fee. It decays with the cube of the time left, so it falls fast and reaches zero at the end of the window.
s0 is the tier's starting tax, w its window in seconds and t the seconds since launch. Fee plus tax never exceeds 99% of the spend, so the buyer always keeps at least 1%. Compiled bounds: s0 at most 99%, w at most 60 seconds. Sells pay no opening tax.
| Testnet tier | s0 | w | Tax at 5 s | 10 s | 20 s |
|---|---|---|---|---|---|
| Strict tiers, the default included | 90% | 15 s | 26.7% | 3.3% | 0% |
| Standard tier | 50% | 30 s | 28.9% | 14.8% | 1.9% |
Where the tax goes
The opening tax is fixed by the protocol per tier and is booked to the protocol treasury only. It is not shared with the creator, the platform or a referrer, so it cannot be recycled by self-dealing.
The launcher's initial buy
A buy made inside the launch transaction itself pays no opening tax (the trade fee still applies) and can receive at most 10% of the supply. It is the only exemption in the system.
Fees and the ledger
Every trade pays a basis-point fee. On the curve the fee and its split are snapshotted from the launch tier; in the pool the fee hook charges one fee fixed for the deployment and books it to the same split. Nothing is pushed during a trade: every share is credited to a ledger in RtpCore and claimed by its owner.
| Item | Rule enforced by contract |
|---|---|
| Trade fee on the curve | Set per tier, more than 0 and at most 5%; 1% on every testnet tier. |
| Fee in the pool | One value for the deployment, at most 1%; 1% on testnet. |
| Split | The protocol share, the platform share and the referral share are set per tier and add up to at most 100%; the creator takes the rest, so no dust leaks. Each launch keeps the split of its tier at launch. Tier values are readable on-chain. |
| Missing recipients | With no platform payee, or no valid referrer, that share goes to the protocol treasury. |
| Launch fee | Paid at launch to the treasury, at most 1 ETH. |
Referral integrity. A referrer equal to the trader, the recipient, the launcher or the creator key is treated as no referrer. In pool trades the hook only sees the router, so the trader is taken to be the transaction's origin.
Creator keys and verified tiers
Creator fees accrue to an address key, or to a social-handle key that is later bound to a wallet through an attested proposal with a 72-hour public notice, during which the owner or the treasury can cancel it. A balance on an unbound handle can be claimed once the handle is bound, with no deadline; there is no sweep.
A tier can require the creator key to carry an identity attestation, read from the chain's attestation registry at launch and again when the creator key is transferred.
Buy-and-burn
After a launch migrates to its pool, a share of every fee, taken from the protocol's own share, accrues to that launch's buyback reserve: 5% of the fee on testnet, and a tier's protocol share can never be smaller. RtpBuybackEngine turns the reserve into buys in the pool whose whole output is burned in the same transaction. Anyone can call it; it has no owner, no setter and no pause, and holds nothing between calls.
| Price and size protection, fixed at deployment | Testnet |
|---|---|
| Reference price: mean tick over at least this window, from the fee hook's oracle | 30 minutes |
| Band: a buy may push the price at most this far above the lower of the reference and the spot price | 100 ticks, about 1% |
| Size per call: share of the reserve, and share of the pool's quote depth | 10%; 0.5% |
| Rate limit: a token bucket of the pool's depth, refilled over | 0.5%; 30 minutes |
| Cooldown between calls, scaled by how much of the size was filled | 600 s |
| Caller's tip, out of the quote spent (compiled maximum 0.5%) | 0.1% |
A front-run that moves the price past the band leaves no fill, and the call reverts without spending anything.
