THE DOCS
How the house actually works — rail, games, money. No hand-waving.
OVERVIEW
BullStake is a simulation market: short shows (races, fights, more coming) run around the clock on Solana devnet. Each show is a betting round — everyone bets into one shared pot, a verifiable random seed decides the outcome, winners split the pot and mint $BEEF. The numbers that matter:
| Round length | ~60s + settle |
| Bet size | 0.01 – 0.1 ◎ per ticket |
| Winner split | 95% of the pot, by stake |
| House rake | 5%, fixed on-chain |
| $BEEF emission | 1,000 per settled round |
| $BEEF mint authority | program PDA |
THE RAIL
Every show is a round account on Solana. A keeper opens the betting window; at the buzzer the round steps into a MagicBlock ephemeral rollup, where VRF draws the seed (~2.5s measured live) and the result is computed — then everything is stamped back to Solana in one commit. Measured on a real round: VRF in ~2.6s, undelegation back to L1 in ~2.3s.
The engine is a pure function of (seed, level): same inputs, same show, on any machine, forever. That determinism is the whole proof — the studio pages accept seed deep-links so anyone can replay a settled round bit-for-bit and compare it with what the chain paid on.
THE GAMES
One provably-fair rail; each show is a different game on top of it.

🏁 MARBLE RUN ● LIVE
Eight bulls roll one brutal course — pegs, kickers, doors, pistons, the squeeze. Finish order is the settle order. Arenas rotate between rounds.

🥊 FIGHT NIGHT ● LIVE
1v1 auto-battler on the same round rail — a fight is a round whose level encodes the matchup. The keeper fixes the pair before betting opens; the seed stays the provable part.

🚜 FARM HOUSE SOON
The idle show: stake a plot of the farm, let the herd graze it, split the harvest with the plots that survive the round. New game, zero new trust assumptions.
BETTING & PAYOUTS
All bets pool per round. Odds on screen are implied live from the pool sizes — there's no bookmaker line to move against you. When the round settles, winners split 95% of the pot in proportion to their stake:
A claim is one transaction: your SOL share out, your $BEEF minted, receipt on-chain. Nothing custodial — the program pays you directly. Ticket accounts close after settling with rent returned to the bettor, and round accounts recycle their rent into future rounds.
$BEEF — NEW SUPPLY IS WON
A launch supply is minted when the token is created. That mint then moves to the program: set_beef refuses a mint whose authority isn't the beef_auth PDA, so from the moment the layer is wired the house cannot sign a mint even if it wanted to. Every settled round emits 1,000 BEEF, split among winning tickets by stake — after the handover, winning a show is the only way new BEEF appears.
Bulls minted at the machine are MPL Core NFTs, and holding one or more bulls earns you $BEEF from the shows your bulls appear in — the herd works while you sleep.
THE MACHINE
The jackpot machine is a 3×3 slot face with one control: the lever. Each spin runs through the same ephemeral-rollup VRF as the games — the reels land where the seed says, and lining up a bull mints it to your wallet on the spot. Spins run from a session wallet so the lever feels like an arcade, not a signature queue. Pull it on the front page or at /machine.
VERIFY IT
Every settled round hands you its seed and its L1 transaction. Feed the seed to the studio (race / fight) and the exact same show runs again in front of you. Check the transaction on the explorer. If the two ever disagree, we're lying — they won't.
BullStake