Product & Engineering Dossier · for Stake Engine review

TAILS NEVER FAILS

A coin flip in its purest form — wrapped in an emotional layer that turns every spin into a clip. Built, published, and running on the live RGS.

Tails Never Fails — game tile
Coin-flip · 2 covers RTP 96.00% exact · 9 bet modes Max win ×15000 Custom HTML5 · full RGS client Bonus buy · Replay · Social mode
0.9600 RTP, exact ×9 modes
57,819 books, 0 mismatches
×15000 declared wincap
01 — The thesis

Why people play — and where the genius sits

People gamble for three primal reasons: the hope of winning, killing time, and a bracket of experience outside the social frame — a thrill at the edge of the "work = money" contract.

Most machines bury that essence under layers of complexity — paylines, scatters, nested bonuses. Tails Never Fails does the opposite: it distils gambling down to its most fundamental atom — a coin flip — that anyone understands in one second, with no tutorial, in any language.

The name comes from the superstitious phrase people mutter before flipping a coin: "tails never fails." It already carries the promise and the folklore of the gesture.

The genius layer — the antagonist made flesh. The game isn't neutral: it has a face. A villain who reacts emotionally to your result — he gloats when you lose, rages when you win, and breaks down in tears when you crack the EDGE. The player is no longer only chasing money: they come to make the villain cry. That schadenfreude hook is what turns a coin flip into a clip machine — and gives a streamer a goal beyond the payout.

Positioning note: the villain is a fictional character (an archetype of greed), never a real target — an ethical choice and a business one, keeping the game clean of any content built on a real group's identity.

02 — The game

One coin, three outcomes, two covers

A single three-faced coin per villain. The player covers one or both winning faces, sets a bet, and flips (FLIP button or spacebar). HEADS always loses.

TAILSpays ×3
HEADSalways loses ☠
EDGEpays the jackpot

The design strength: EDGE gives an intuitive name and image to the jackpot. Nobody needs it explained why it's rare and why it pays huge — it's playground physics.

Stream loop. Flip → villain reaction → result. The clip writes itself: rage on a big TAILS, an emotional apocalypse on an EDGE. Vertical-native, zero editing, infinitely repeatable.
03 — The roster

Choose your opponent (= your volatility)

Like a fighting-game select screen, the player picks the villain they want to face. Each villain = a volatility profile. The RTP stays fair and identical (96.00% exact, certifiable); what changes is the EDGE top multiplier and its rarity — the real lever of sensation.

Lead · High volatility

The Goblin Banker

A grasping goblin with hooked fingers, clutching his hoard. Grotesque, comic, 100% fictional greed. He keeps the biggest pile — so the biggest jackpot.

EDGE ×1000 · ~1 / 1,042
The ultimate moonshot.

Medium volatility

Panther Oligarch

A luxury-suited billionaire panther, cigar and gold chain. "The house that hates to pay," incarnate. Timeless, streamable, safe.

EDGE ×100 · ~1 / 104
The risk/frequency balance.

Low volatility

Punk Ferret

A blue-haired punk ferret, all attitude. Cocky, modern, ultra-streamable — and the softest ride of the three.

EDGE ×50 · ~1 / 52
Frequent wins, gentle sensation.

The roster is extensible: each new villain is a content event (season, streamer collab, event skin) with zero engine changes — same math shell, new EDGE multiplier.

04 — The math

Model, RTP & volatility — exact to the tenth decimal

The coin is a single three-faced object. Coverage = the bet mode. 9 bet modes total = 3 villains × 3 coverages:

ModeCostCoversReachRTPMax win
<villain>_tails×1TAILS×3 + bonus96.00%×15000
<villain>_both×2TAILS + EDGE×3 / jackpot + bonus96.00%×15000
<villain>_bonusbuy×100is_buybonusbuys the bonus96.00%×15000
Why RTP is exact, not "targeted". We don't rely on optimiser convergence. Every mode's RTP is computed and pinned in exact rational arithmetic (Python Fraction) so that sum(weight·payout) / (sum(weight)·cost) equals 24/25 = 0.9600000000 — verified to the tenth decimal across all 9 modes. Weights are uint64; the lookup tables and books were validated line-by-line (57,819 books, 0 book↔LUT mismatches, all config hashes valid), and the file format was checked against the math-sdk writers themselves (JSONL + zstd, LF line endings, index.json schema).

The base flip

Base probability of TAILS is P(tails) = 0.2801684. It's not 96/3 = 0.32 — it's slightly lowered to fund the bonus so the total RTP still lands on exactly 0.96. It solves, in closed form:

3·p  +  96 · q(p)  =  0.96        with  q(p) = p⁵(1-p)/(1-p⁵)
→  p = 0.2801684   (residual −2.1e-7, tighter than 6-dp rounding)

where q(p) is the stationary frequency of a 5-in-a-row streak — preserved by the in-book conversion (see §05). EDGE probability is P(edge) = RTP / edge, reachable only in the both mode.

EDGE — the volatility lever

VillainEDGE ×P(edge)FrequencyRTPVolatility
Goblin Banker×10000.00096~1 / 1,04296.00%High
Panther Oligarch×1000.00960~1 / 10496.00%Medium
Punk Ferret×500.01920~1 / 5296.00%Low
The right lever. RTP is held identical across villains (fairness + simple certification). What changes the feel is the size of the top-multi and its rarity. Bigger jackpot ⇒ rarer EDGE ⇒ higher variance ⇒ shorter time-to-ruin — but honest expectation throughout.
A design note we corrected in review. Standalone EDGE-only modes were removed: at ~1 in 1,042 they read as ~99.9% non-paying, which trips the math-review "non-paying results" heuristic. EDGE is now reachable only via the both cover, whose ~28-30% hit rate is squarely in range. The player still gets full jackpot access — just always paired with TAILS.
05 — The bonus

Five free flips, a random announced stake, and a fully stateless trigger

The feature is the soul of the machine. Any TAILS win can trigger it (~1 in 803 rounds, i.e. 1 in ~225 TAILS wins), or the player can buy it for ×100.

Fair buy price, exact. The capped bonus EV is calibrated to 96× the base bet (exact 5-flip convolution over Fractions, residual 3.4e-6). Buy cost = EV / RTP = 96 / 0.96 = ×100 → buy-mode RTP = 96/100 = 0.9600 exact, scaling with the bet.
Fully stateless by design — no gauge, no streak. Stake's RGS is strictly stateless: an outcome can't depend on prior rounds. So the bonus lives entirely in the books — every tails-win book independently carries it with the exact conditional probability r ≈ 1/225, so it simply triggers at random on any TAILS win (~1 round in 803), with no cross-round state of any kind. Every payout — including the ×15000 wincap outcome — is pre-generated; the front end only animates the bonusFlip events. (That rate r = q/p is derived from a 5-in-a-row streak frequency — which is why P(tails) is tuned to 0.2801684 — but nothing is ever tracked between bets.) 100% RGS-compliant.

Odds, verified

MetricValueMethod
Bonus trigger (natural)~1 / 803 roundsexact — matches rules claim to ±0.05%
Bonus EV (capped)96× the betexact convolution + 2M Monte-Carlo cross-check
P(bonus pays 0)3.74%exact
P(hitting the ×15000 cap) per bonus-buy~1 / 12,730exact
Base hit rate (tails / both)28.0% / 28-30%from lookup tables
The "feint" — a deliberate, disclosed presentation. On ~5% of HEADS losses where EDGE is covered, the game plays the EDGE-win cinematic which then topples over at the very end. It is presentation only — the losing outcome is fixed in the book before the animation runs — and it is described in the game rules. We're flagging it explicitly so a reviewer never reads it as a misleading win; it's the coin-flip equivalent of a near-miss animation, fully server-truthful.
06 — Engineering & conformity

A custom HTML5 client, verified against your own source

Per the docs ("Developers utilizing their own frontend and/or math solutions are welcome"), we shipped a custom, self-contained HTML5 front end — not the web-sdk — that is a full RGS client. It is already published and running on the live RGS (real balance, real session).

AreaWhat we didStatus
RGS clientauthenticateplayend-round (+ balance, bet/event), micro-unit amounts (×1e6), rgs_url/sessionID/lang/device/social from the launch URL, active-round resume, full error-code handling.✓ live
Verified vs. sourceWe read the ts-client & web-sdk source and fixed to match: payoutMultiplier is a direct float (not ×100), /bet/event takes a string, errors can arrive in a 200 body, replay amount is micro-units.✓ matched
Bet Replayreplay=true path: GET /bet/replay/…, betting UI hidden, Play / Play Again, zero authenticated wallet calls.
Social (stake.us)Full restricted-phrase replacement (bet→play, pays→wins, buy→bonus, cash→coins…) across UI, rules and baked image text; SC/GC display without $.✓ audited, 0 residuals
CSP complianceThe CDN blocks blob:. Three.js decoded the coin's textures via blob URLs → white coin in prod. Fixed by shipping the coin as a data-URI glTF; verified against your exact connect-src policy.✓ golden coin in prod
Checklist UIOfficial disclaimer verbatim, per-mode cost/RTP/max-win + bonus-multiplier table in the rules, spacebar-to-flip, autoplay & buy-bonus confirmation steps, RGS bet levels & ~30 currencies, static-files-only (fonts & three.js self-hosted).
IP hygieneCinzel & Lilita One (SIL OFL), background music (Pixabay, certificate on file), three.js (MIT). Zero GPL/copyleft anywhere in the bundle.
Review artefacts ready. A REVIEW-EVENTS.md ships book IDs per mode for every outcome class — loss / normal win / big win / wincap ×15000 / bonus trigger — e.g. goblin_both: loss = 1, TAILS ×3 = 2, EDGE ×1000 = 3, wincap = 5460.
07 — Fit & status

Why it fits Stake Engine — and where it stands

Radical simplicity, native virality

No tutorial, understood in one second, in any language. The villain reaction makes every round a vertical clip with zero editing — content that films itself, which is exactly what drives organic reach and streamer engagement.

Certification-friendly by construction

One RTP (0.96) across all modes, a declared ×15000 wincap that's achievable, healthy hit rates, no cross-round state, stateless bonus. The math was engineered to pass review, not to squeak through it.

Extensible content engine

Each new villain is a drop-in EDGE multiplier + art pack — a season, a collab, an event skin — with no engine work. A roster is a roadmap.

Status

Built. Published. Running on the live RGS. Math package uploaded & validated, front end live, replay & social supported, all checklist items addressed. Ready for the approval queue.

In one line. We built this game with the platform's rigor in mind end-to-end — exact math, source-verified RGS integration, disclosed presentation, clean IP — and a hook designed to travel.