The law of the candle.
A candle burns in blocks. Buys add wax, sells add nothing, and the pot opens on one thing only: the flame going out. Everything below is either a rule the contracts enforce or a limit we are telling you about. Nothing is a promise.
1 · The candle
One candle burns at a time. It is a counter of blocks, called the wick: every block the chain produces takes one off it, and when the wick reaches zero the candle is out. A new candle is lit with a fixed length, the same for every candle.
The candle counts blocks, never seconds. There is no clock in the contract and no timestamp is read: the sequencer sets the blocks, not the hour, and the candle follows the blocks. Anyone can read the wick at any moment, and everyone reads the same number at the same block.
2 · The wax
A qualified buy of $CANDLE, one whose output is above a minimum, adds a fixed number of blocks to the wick. The wick is capped: a candle can never be longer than its maximum length, however many people buy at once. A buy that would push it past the cap adds what fits and no more.
A buy under the minimum pays the toll like any swap and adds nothing. A sell adds nothing either, and takes nothing off: the wick only ever moves on a qualified buy, and only ever upward, apart from the block by block burn.
The contract writes a qualified buy to the address that made it, which is what the last stretch is measured on. It can only do that through the router this site points to: a buy that reaches the pool by another route pays the toll and adds wax, but is written to nobody, so it cannot be in the last stretch. The site says this next to every buy, and the FAQ says it again.
3 · The toll
The hook takes a fixed share of every swap in the pool, buy or sell, in the quote asset. Part of that share is burned. The rest goes into the pot of the candle that is burning. Nothing else feeds the pot, and nothing takes anything out of it before the flame dies: there is no withdrawal function, not for a team, not for a multisig, not for anyone.
The protocol's own liquidity position is locked in a locker with no withdrawal function, and the fees it collects follow the toll into the pot. At launch the toll may open high and fall over the first blocks, so that sniping the opening pays full price and fills the first pot; whatever the toll is at a given block, it is the same for everyone at that block.
4 · The last stretch
For every qualified buy, the contract keeps the block and the amount. When the candle goes out, the buys of the last K blocks before the extinction block form the last stretch. That is the whole definition: a window of blocks at the end, not a buyer.
It has a consequence worth reading twice. A buy is in the last stretch only if the flame goes out within K blocks of it. Every buy after yours pushes the end further away, by the same number of blocks each; if enough people buy after you, the end moves out of your window and you are no longer in the stretch. Buying when the wick is long is wax, not a ticket. The ticket is a buy near the end, and the candle on the home page shows exactly who is in and who fell out as it burns.
5 · The snuff
When the wick is at zero, anyone can call snuff(). The pot, less the share that rolls into the next candle, is split between the addresses of the last stretch, in proportion to what each of them bought inside it. Claiming is a pull: the contract never pushes anything to anyone.
If no qualified buy landed in those K blocks, there is nobody to pay, and the whole pot rolls into the next candle. Either way the sum that leaves plus the sum that rolls is the pot, to the last unit.
6 · The next candle
snuff() also lights the next candle: the wick goes back to its starting length, the rolled share is already in the pot, and the count of candles goes up by one. That count is public, and so is the history of every extinction: it is the record of the game.
7 · Nothing for the last
The address that made the last buy before the flame went out gets nothing for being last. It is in the last stretch like the others, paid for what it bought, at its share. This is structural, not a choice of tone: the order of transactions inside a block belongs to the sequencer, and attaching the pot to a single last buy would turn every extinction into a lottery run by the sequencer. A stretch of K blocks is what makes the end of a candle a share and not a race.
8 · What the contracts enforce
- I1 · The pot opens at extinction only, when the wick reaches zero.
- I2 · Only a qualified buy changes the wick, and never beyond the maximum length.
- I3 · A sell never changes the wick.
- I4 · What is paid at extinction, plus the share that rolls, equals the pot, with nothing kept back.
- I5 · The split covers exactly the qualified buys of the last K blocks, in proportion, with no bonus for the last one.
- I6 · The toll is the same for everyone, at every moment of a candle.
9 · What can go wrong
The sequencer orders the block. Two buys sent for the block the candle goes out in: one lands in it, the other in the next candle. That is true at the margin, and it is why the last stretch is K blocks and not one. At the scale of K, where a transaction lands changes a share, not a winner.
The whale that keeps the candle burning. One address can buy every few blocks and never let the flame die. It pays the toll every time and takes nothing while it does: the cap bounds what its wax can build, and every buy it pays for fills the pot of the others.
The bot that buys at the last block. It will see the wick at one before you do. It enters the last stretch like anyone, at its share, and its buy adds blocks to the candle: it has just given everyone more time, and pushed the end further from every buy before its own.
A pot that never opens. If the chain's own traffic is enough to land one buy per wax step, the candle burns for ever and the pot never opens. The cap is the answer: a candle that cannot grow past its length always ends up with a last stretch worth waiting for. How long and how often is the subject of the simulation gate before deployment, and the answer is published here.
The split is by amount. The last stretch pays in proportion to what was bought: a large address takes a large share. That is the rule, stated plainly. A candle has no vote.
Collusion. A group can let the candle die on purpose to take the last stretch. It succeeds only if nobody else buys for a whole wax step, which is another way of saying the candle was finished.
A stretch nobody bought in. If the candle burns its last K blocks with no qualified buy, nobody is paid and the whole pot rolls. The next candle opens richer for it.
The contracts can be wrong. Every rule on this page is only as good as the code that enforces it and the audit that reads it.
10 · Parameters
Constants are fixed at deployment and published here. Until then, none of them has a value, and no number you may read elsewhere is ours. The candle on the home page runs the rule on its own numbers; they are not these.
| Parameter | What it does | Value |
|---|---|---|
| Clock | What the candle counts | blocks, fixed |
| Starting length | The wick a new candle is lit with | set at deploy |
| Wax per buy | The blocks one qualified buy adds | set at deploy |
| Maximum length | The cap the wick can never pass | set at deploy |
| Minimum qualified buy | The smallest buy that adds wax | set at deploy |
| Toll | The share of every swap the hook takes | set at deploy |
| Burn share | The part of the toll that is burned | set at deploy |
| Last stretch | The K blocks before extinction that are paid | set at deploy |
| Roll share | The part of the pot that goes into the next candle | set at deploy |
| Quote asset | What the pool prices the candle in, and what the pot holds | set at deploy |
| Last buyer bonus | Anything extra for the address that buys last | none |
| Team share | What the team takes | none |
11 · Chain and venue
Candle runs on Robinhood Chain, chain 4663, and trades on Uniswap v4 through the PoolManager at 0x8366a39CC670B4001A1121B8F6A443A643e40951. The pool is ours and the hook is ours: its afterSwap takes the toll, sends it to the candle contract and reports the qualified buy. The protocol liquidity position is locked in a locker with no withdrawal function.
Gas is paid in ETH, at a gas price around 0.02 gwei on this chain. That is what lets a candle live at the scale of the block: adding wax costs a buy, not a gas bill, and the wick can be read and pushed back every block without the transaction underneath swallowing the point.
The candle needs no clock, no randomness and no oracle: a counter, a cap, a window and a proportional split. Explorer: robinhoodchain.blockscout.com. Contract addresses are published on this page and on X at launch, and nowhere else.
12 · FAQ
Does selling shorten the candle?
No. A sell pays the toll and touches nothing else. The wick moves down one block at a time on its own, and up only on a qualified buy. Selling to end a candle does not work, and never will.
Who gets the pot?
Everyone who made a qualified buy in the last K blocks before the flame went out, in proportion to what they bought inside those blocks. The share that rolls goes into the next candle. Nobody else gets anything, including us.
Is the last buyer paid more?
No. The last buy is in the last stretch like the others, paid at its share. Nothing rides on being last, because the sequencer decides who is last.
Is the last stretch a fixed number of blocks?
That is the open question of the design, and we are telling you rather than hiding it: a fixed K, or a share of the candle's length at the moment it goes out. It is decided before deployment, from the simulation of real activity on this chain, and the answer is published on this page before anything is deployed.
Does part of the pot really roll into the next candle?
The design says a share rolls, so that a new candle never starts empty. How large that share is, and whether a fresh candle should instead start at zero and fill faster, is decided before deployment and written in the table above.
Can a whale keep the candle burning for ever?
It can try: a buy every few blocks holds the flame. It pays the toll on every one of them, fills the pot of everyone else, and the cap keeps its wax from building anything past the maximum length. The moment it stops, the candle burns down like any other.
What if I buy through another router or an aggregator?
The buy pays the toll and adds wax, so the candle gets longer. But the hook only learns who bought when the buy comes through the router this site points to; a buy by any other route is written to nobody and cannot be in the last stretch. Buy through the site.
Is there any randomness?
None. A counter, a cap, a window of blocks and a proportional split. No dice, no oracle, no draw.
Can you empty the pot, or stop a candle?
No. The pot leaves at extinction, to the addresses of the last stretch and into the next candle, and there is no other door in the contract. A candle burns until its wick is at zero, whoever asks.
Where do I find the contract address?
On this page and on X at launch. Anywhere else, it is somebody else's.