Graduation & Buybacks
A token graduates when its pool holds 4.2 ETH of real depth, measured at the pool’s own time-weighted average price. Graduation is one-way. It changes the route fee and it starts the buyback and burn; it changes nothing about the pool itself.
The Threshold
Depth is read by the GraduationReader contract, which values the locked position’s WETH side at the pool’s TWAP over a 1800 second window. If the pool’s price history is shorter than that, the reader uses what is available down to a floor of 900 seconds, and reports which window it used. Below the floor it reports that the TWAP is not ready rather than a number.
Valuing at the TWAP rather than the spot price means a single large buy does not graduate a token by itself. The depth has to hold.
The threshold, the window and the floor are public parameters. See Contracts to read them.
What Changes
| Before graduation | After graduation | |
|---|---|---|
| Pool | The token’s V3 pool at the 1% tier | The same pool, same address |
| Pool fee | 1%, split 30 / 50 / 20 | 1%, split 30 / 50 / 20 |
| Route fee on winr.games | 0.75% of the ETH side | 0% |
| Scheduled buybacks | Not yet scheduled by the platform | Run weekly from the token’s buyback fund |
| Status | LIVE | GRADUATED, then INACTIVE after 30 days without a trade |
Nothing is unlocked, moved or migrated. The token, the pool and the position are what they were the block before.
The Buyback Fund
Of the pool’s 1% fee, 20% is the token’s buyback fund. Whenever the locker collects fees for a token, it pays that share to the BuybackVault, which credits it to that token and to no other. The fund accrues from the token’s first trade.
The vault can spend a token’s credit on exactly one thing: buying that token in that token’s own pool and burning what it buys. The contract does not know what graduation is: a buyback can be executed whenever a token has credit. What graduation changes is the platform’s schedule, which runs buybacks weekly for graduated tokens.
The BuybackVault has no owner, no keeper role, no withdrawal function and no emergency function. WETH leaves it in one place, as payment to the pool inside a swap, and the tokens bought are sent by the pool directly to the burn address. It does not accept ETH at all.
That is the whole property, and it is what makes the buyback fund provable rather than promised: every unit of value credited to a token either sits in the vault or was spent buying and burning that token. There is no third path.
How a buyback runs
executeBuyback is permissionless. Anyone may call it for any token, and the guard is the price, not the caller:
- The pool is derived from the token, WETH and the 1% fee tier. A caller cannot name a pool.
- The minimum output is floored on chain by the pool’s TWAP. A caller may raise the floor and cannot lower it. If the spot price is worse than the TWAP, the swap fails and nothing is spent; buybacks pause during a pump and resume when the average catches up.
- At most 20% of a token’s credit is spent per call, and calls are at least 10 minutes apart per token.
- The tokens bought go straight from the pool to
0x000000000000000000000000000000000000dEaD.
These numbers are constants on the contract and can be read from any node. See Contracts.
Because the buyback pays the pool’s own 1% fee like any other swap, a fraction of every buyback flows back into the fund.
Inactive
A graduated token with no trade for 30 days is reported as INACTIVE. The next trade returns it to GRADUATED. The state exists so that a list of tokens can say which ones are still being traded; it has no effect on the pool, the fund or the game.