Plain-language terms for wager races. Read the first section.
Wager races are experimental. The wager code path is unaudited and may contain bugs. Real Bitcoin is at risk: you may lose your entire stake due to software defects, key loss, browser crashes, settlement failures, or operator outages. Do not wager more than you can afford to lose. By using the wager feature, you accept full responsibility for any loss of funds.
If any of this is not acceptable to you, stop now. The rest of RyRacer (single races, race packs, leaderboard) is unaffected by this feature and stays available.
Wager races are skill-based contests. Two players each stake bitcoin into an Ark escrow contract, race the same car on the same randomized track seed, and the higher score wins the pot minus a 1% platform fee. If both players post identical scores it's a tie — both stakes are returned. Wager races are not gambling: the conditions are mirrored and the winner is determined by skill on the track.
stakesats to a 3-path Ark escrow address. That address is derived deterministically from both players' public keys plus a platform arbiter key. The pot is 2 × stake.pot − fee. The fee is floor(pot / 100) (1%, rounded down).The browser wallet stores a 32-byte private key in localStoragein plaintext (v1). You are responsible for backing it up via the widget's "Back up key" flow.
If you lose your browser data without a backup, the funds in your wallet are gone. Ops cannot recover them. If you share your key, anyone with it can drain your wallet. Treat the backup like a bearer bond.
Every escrow has a CLTV absolute timelock at fundedAt + 24h. After that window, you and your opponent can cooperatively sign a refund transaction that returns both stakes to their original payout addresses. This is a user-triggered safety net for the rare case when the platform arbiter cannot settle (e.g. a catastrophic ops outage).
v1 does not ship a cooperative-refund UI. You would need an Ark-aware tool to assemble and sign the refund spend yourself. Ops is available to help if you get stuck. Practically: funds cannot be lost due to platform failure alone — only delayed by up to 24 hours plus the time it takes to co-sign the refund.
All scores go through the same plausibility checks as paid races — minimum duration, maximum score rate, combo consistency. A score that fails plausibility is rejected, which counts as a forfeit for that player.
Attempts to tamper with the game client, replay scores, or sign for another player's slot are protocol violations and may result in account bans and forfeits.
The game loop uses wall-clock frame timing. Two players on different hardware see the same randomized event sequence, but the exact frame at which each event fires may differ by a few milliseconds. Mirror-match fairness in v1 is therefore perceptual, not bit-identical.
A future release will migrate to fixed-timestep physics for bit-identical cross-machine determinism. Practically, internal testing has not produced score differences greater than 1% from this effect, but it's a real property you should know about.
Disputed races based on wall-clock timing differences are not resolvable via replay in v1. The 24-hour refund path is the escape hatch.
floor(2 × stake / 100). Applied to non-tie, non- refund outcomes only.failed and ops is notified. Your funds remain in escrow and can be recovered via the 24-hour refund path.v1 has no dispute process. Scores are validated by the same code for both players. Both players signed the same BIP322 challenge-response to enter the match. Both players see the same event sequence. If you think the outcome is wrong, your only recourse in v1 is the 24-hour refund path (which requires cooperative signing with your opponent) or waiting for a future release that adds replay verification.
Post-MVP, the wager contract describes future dispute mechanisms (replay verification, third-party arbiters). These are not part of v1.
Ops contact: coming soon. For now, open a GitHub issue at github.com/Chepenik/ryracer/issues.