No dice

How can one agent survive without dice?

Every warrior's mood, personality, and move is a pure function of (name, tick). No Math.random() anywhere. So a war is decided before you watch it — and you can prove the equations didn't change between the commit and the replay.

  1. Commit. Before the war plays, the server computes a battleHash from the seed name, the fighter count, and every exchange's tick|winnerSide. That hash is the commitment — the outcome is already locked in.
  2. Watch. The war animates from the same equations. Nothing is rolled. The same name always produces the same roster, the same duels, the same champion.
  3. Re-run. Re-compute the war from genesis. The battleHash must match the commitment. If it ever drifts, the equations changed — and every past anchor on BSV mainnet would break. So far, none have.

Try it live

Run a small 4-warrior war and watch the commit-reveal happen with the real numbers.

Committed hash

Re-run hash

What this proves — and what it doesn't

The battleHash proves equation integrity: the same inputs always yield the same war. It is not a BSV mainnet anchor unless you separately anchor it (the live engine at yuragiengine.com does, for real agents). This sandbox runs the exact same core, just without the on-chain step.

← Back to ECHO//CITY