No stake, no lock. Holding $LOOT is your ticket. Every mechanic below is enforced on-chain — verify it yourself.
| Contract | Address | Function |
|---|---|---|
| LootMining | 0x860fD1…3D4a | Lottery engine — startRound / settleRound / claim |
| $LOOT Token | 0xbf89Ef…d22af | Standard ERC-20 — holding it = mining power, no tax |
| LOOT/WETH LP Pool | 0xf66163…4ad7 | Excluded from mining power (see exclusions below) |
Keeper calls startRound(). The entire $LOOT pool balance locks as the prize. A future block (targetBlock) is committed for randomness.
Once targetBlock passes, the Keeper submits a merkle root of holder balances (built off-chain from Transfer events) plus the committed blockhash to pick a winner.
Winner is paid automatically in the same transaction as settlement. If the transfer somehow fails, a fallback claim() function exists.
Uses the blockhash of a committed future block (targetBlock), combined with the merkle root, hashed via keccak256, then modulo the total mining weight. No off-chain oracle, no Chainlink VRF — pure on-chain commit-reveal against Robinhood Chain block production.
Admin control only — can update cooldown, keeper address, and commit delay. Cannot touch the prize pool or pick winners.
Separate wallet, runs an automated bot that calls startRound() and settleRound() on schedule. Cannot touch admin functions.