One night, in five lines.

Everything below is in the contracts. Nothing here is a promise. The wind does not know who you are.

  1. Mine a spark with your phone. It costs nothing but gas.
  2. Light a candle with a spark and 0.002 ETH. Every 111 candles the price rises by 0.0005.
  3. Seven winds, every two hours from 14:00 UTC. The first blows out 5% of the candles, the seventh 35%.
  4. What a candle held stays with the ones still burning.
  5. Leave at any hour with nine tenths. After the seventh wind, the ones still burning keep the hall.
WhatHow much
Candles3,333, and never more
Sparks3,333, one lights one candle
A sparkfree, a hash under the mark
The mark2^22 hashes, twice as hard every 256 sparks
Sparks per address, first 2 hours3
A candle0.002 ETH, 0.0005 more every 111 candles, or what one candle holds divided by 0.85
Into the hall, of every candle85%
To the chandler15%
The windsseven, every two hours from 14:00 UTC
Leave: to you, stays in the hall90% and 10%
Trades on OpenSea: to the hall, to the chandler3% and 2%
After the seventh wind: to the keepers, to the chandler3% and 2%

A candle is never sold for less than what it brings into the hall, so a new candle takes nothing from the ones already burning. The price follows what one candle holds.

Saturday, 12:00 UTC, the sparks are out and candles can be lit. The first wind comes at 14:00 UTC, two hours later. Then one every two hours, seven in all: 14:00, 16:00, 18:00, 20:00, 22:00, 00:00 and 02:00 UTC.

Candles can be lit until the seventh wind. A spark that is not lit by then cools and lights nothing. There is one hall and one night. In the morning, after the seventh wind, SEVEN WINDS is finished.

WindUTCBlows outAlive after it
114:005%95.0%
216:0010%85.5%
318:0015%72.7%
420:0020%58.1%
522:0025%43.6%
600:0030%30.5%
702:0035%19.8%

Every candle has its own draw at every wind: the hash of the wind and the candle number, against the same odds for every candle. Nothing makes a candle safer, and there is no task to come back for. A phone, a farm and a bot face the same wind.

The hash of a wind comes from a block that nobody knows when the draw is sealed, and it carries every spark, every candle lit and every leave of the night, so the last one to act cannot steer it.

In the model, a candle lit for 0.002 ETH that sees the morning holds about five times that, eight in a strong night. One in five does. The price rises every 111 candles, so an early candle pays least; a late one faces fewer winds. The wind decides the rest.

Anyone can count a wind, and the site asks whoever is there. The first call after the hour seals the draw; the next ones count the candles in batches. Counting pays its gas out of the hall: 0.00002 ETH for the seal and 0.000002 ETH for every candle counted, about half a percent of the hall over the night.

From the hour of a wind until it is counted, candles cannot be lit, left or moved, so nobody who has seen the draw can act on it. It takes minutes. After it, the metadata of every candle is refreshed.

Leave at any hour: your candle burns, you take nine tenths of what it holds, one tenth stays with the ones who stay. On the site the button shows the exact amount before you press it. Leaving closes at the hour of each wind and opens again when it is counted.

After the seventh wind the candles still burning are the keepers. A keeper collects everything it holds, without the tenth. The candle stays: a stub of seven winds with the word KEEPER in gold.

From then on, 3% of every trade of a candle or a spark goes to the keepers, shared equally, for as long as they trade. There is no second night.

  • No admin. No pause. No token. The contracts cannot be changed.
  • Royalties are enforced with ERC721-C: every transfer asks Limit Break's validator, fixed at the deploy. The deployer sets the policy there, as the marketplaces require: which marketplaces may move candles, and it could freeze an address. It cannot move, burn or take a candle, and it cannot touch the hall.
  • The chandler takes 15% of every candle and 2% of every trade, sent at once. Nothing else.
  • Not one wei of the chandler is in the hall. The hall is only what the candles brought.
  • The hall pays in ETH. Royalties come in ETH or WETH; WETH is unwrapped.
  • The wind is a draw. Your candle can go out at the first wind, and what it held stays in the hall.
  • A quiet night makes a small hall. The multiple for the ones who stay does not depend on its size.
  • A wind nobody counts holds the hall still: no candles lit, left or sold, until someone counts it. The pay is there so that someone does.
  • A sale on a marketplace that lands in the minutes a wind is counted does not go through.
  • The chain's sequencer could in theory influence a block hash. The hash of a wind also carries every move of the night.
  • A marketplace that skips royalties cannot move candles or sparks.

Bots are welcome. The wind draws the same for everyone.

ignite()                      once, from the opening: seeds the mine
strike(uint256 nonce)
  keccak256(seed, msg.sender, nonce) < 2^256 / (2^22 * 2^(k / 256)), k = sparks mined

light(uint256 sparkId) payable
  price = max(0.002 ether + 0.0005 ether * (lit so far / 111), holds / 0.85), until the seventh wind

blow(uint256 maxCount)        seals the draw, then counts the wind in batches, 0 for all
  pays 0.00002 ETH for the seal, 0.000002 ETH for every candle counted

leave(uint256[] ids)          90% of holds, the candle burns
collect(uint256[] ids)        after the seventh wind: all of holds, then 3% of every trade

views: state(), holds(), price(), windAt(n), oddsOf(n), due(), windLog(n), claimable(id)

Robinhood Chain 4663. Sources verified on Sourcify and the explorer.