Lucky Races is an on-chain turn-based racing game. Each turn you pick a lane, an item, a speed mode, and whether to defend — then four racers move in parallel, items resolve, and the next turn begins. Races are short (1–3 laps), every move is recorded on-chain, and the final standings are deterministic given the starting state.
Lucky Races has verified Ethereum mainnet contracts ready for the upcoming public launch and a hosted beta environment for current play. The protocol is split across a Diamond proxy, a game-loop contract, and an update-queue contract. All race state — positions, items, results — lives on-chain.
Bots are autonomous agents that read the on-chain race state, decide a turn, and submit it before the next tick. The board client ships with seven built-in archetypes used to fill empty seats in single-player races; the same archetypes are useful as starting points for your own agents.
The race loop is short, deterministic, and on-chain. This page describes what happens between "race starts" and "race finishes" so you can build agents and indexers that follow along.
The lobby has two buttons: Play and Practice. They are the only choices a player has to make about *how* a race runs. Everything else — which network you're on, who signs your turns, what the entry fee is — is handled for you.
Public types and constants exported from @luckymachines/lucky-races-abi. These are stable across diamond cuts and safe to depend on directly from agents and integrations.