How it works
Everything below is in the contracts on Robinhood Chain. The site reads them and nothing else.
The whole thing
One every 10 seconds from genesis. Slot k belongs to a lane by k mod 4: ETH, $BASK, a stock token (rotating through the five), $BASK. Until $BASK is wired in, its slots go to the ETH lane.
amount × seconds since your weighted start. A fresh stake weighs nothing and grows every second. Topping up averages your start by amount, so adding never buys back time.
A random point in [0, lane weight) picks the position whose cumulative weight covers it. Odds are exactly weight over total.
When slots come due, the batch is armed against the next L2 block. Its hash (ArbSys.arbBlockHash) resolves every slot in the batch one block later. Nobody, including the caller, knows the hash when the batch is armed, and every stake or unstake settles pending slots before it changes anything.
The winner's clock restarts: patience is spent. They get 30 minutes to claim by paying the fee. Unclaimed slots lapse and mint nothing.
A lane with zero weight hands its slot to the ETH lane. If nobody is staked anywhere, the slot lapses.
Slots older than two minutes at settle time lapse unrolled, and a seed older than 250 blocks lapses its batch. A quiet hour never becomes a burst of supply.
0.005 ETH, multiplied by 1.5 every 2,048 tortoises. Split 20% treasury, 60% buyback of $BASK for the den, 20% ETH to the den. With nobody in the den, the den share goes to the treasury.
5% on resales (ERC-2981), received by the game contract and split half treasury, half buyback.
Stake tortoises to share rewards equally. ETH arrives with every claim; $BASK arrives when the keeper executes a buyback through Uniswap v4. Bought before anyone was in the den, it waits for the next buy.
32×32 sprites in nine layers stored in SSTORE2 pages; the renderer composes them, substitutes skin and shell colour ramps and emits SVG. Shell colours: ten natural for ETH, four metallic for $BASK, one ticker palette per stock lane. Rings: 0 to 5 by seconds staked (10 min, 1 h, 6 h, 24 h, 3 d).
A bot calls settle() so slots are armed and rolled promptly, and runs buybacks with a minimum output. It cannot influence who wins; if it stops, anyone else's transaction settles instead.
The owner can set the keeper, the treasury, the $BASK token (once) and its Uniswap pool key, and swap the renderer until it is locked. It cannot mint, pause claims, or touch stakes.