One trap per floor
Pagoda is a climb. Each of the nine floors shows a row of tiles, exactly one of which is a trap; pick a safe tile and you rise a floor, pick the trap and the stake is gone. Between floors you may cash out at the ladder value for the floors already cleared, and clearing the ninth floor pays the top of the ladder automatically. The difficulty is the number of tiles per floor: four on Easy, three on Medium, two on Hard. Designing Pagoda’s ladder explained why the ladder is shaped the way it is; this article prices it rung by rung and checks the promise it makes.
Two consequences of the derivation set up everything below. The trap positions are fixed when the round starts, so which tile you press never changes the odds — a floor is a (tiles − 1) in tiles draw whatever your habit. And each floor uses its own HMAC cursor, so the floors are independent: clearing k of them in a row has probability ((tiles − 1) ÷ tiles)ᵏ, a plain power.
The ladder, priced
The engine builds the ladder from the same power. After k cleared floors the fair multiplier — the one that would return every stake in the long run — is (tiles ÷ (tiles − 1))ᵏ, and the engine starts from 0.99 instead of 1 and multiplies by tiles ÷ (tiles − 1) once per floor. That is a single 1% haircut applied once, not once per floor: the Hard ladder doubles every floor, the Easy ladder grows by a third, and the target return at every rung is 99%.
| FLOORS CLEARED | CHANCE | ONE IN | FAIR MULTIPLIER | ENGINE PAYS | RETURN |
|---|---|---|---|---|---|
| 1 | 75.00% | 1.33 | ×1.3333 | ×1.32 | 99.00% |
| 2 | 56.25% | 1.78 | ×1.7778 | ×1.76 | 99.00% |
| 3 | 42.19% | 2.37 | ×2.3704 | ×2.34 | 98.72% |
| 4 | 31.64% | 3.16 | ×3.1605 | ×3.12 | 98.72% |
| 5 | 23.73% | 4.21 | ×4.2140 | ×4.17 | 98.96% |
| 6 | 17.80% | 5.62 | ×5.6187 | ×5.56 | 98.96% |
| 7 | 13.35% | 7.49 | ×7.4915 | ×7.41 | 98.91% |
| 8 | 10.01% | 9.99 | ×9.9887 | ×9.88 | 98.91% |
| 9 (top) | 7.51% | 13.32 | ×13.3183 | ×13.18 | 98.96% |
Chance = (3 ÷ 4)ᵏ. Fair multiplier = 1 ÷ chance. Return = chance × engine multiplier. The “engine pays” column is ladder100(EASY) ÷ 100, reproduced from the source formula.
| FLOORS CLEARED | CHANCE | ONE IN | FAIR MULTIPLIER | ENGINE PAYS | RETURN |
|---|---|---|---|---|---|
| 1 | 66.67% | 1.50 | ×1.5000 | ×1.48 | 98.67% |
| 2 | 44.44% | 2.25 | ×2.2500 | ×2.22 | 98.67% |
| 3 | 29.63% | 3.38 | ×3.3750 | ×3.34 | 98.96% |
| 4 | 19.75% | 5.06 | ×5.0625 | ×5.01 | 98.96% |
| 5 | 13.17% | 7.59 | ×7.5938 | ×7.51 | 98.90% |
| 6 | 8.78% | 11.39 | ×11.3906 | ×11.27 | 98.94% |
| 7 | 5.85% | 17.09 | ×17.0859 | ×16.91 | 98.97% |
| 8 | 3.90% | 25.63 | ×25.6289 | ×25.37 | 98.99% |
| 9 (top) | 2.60% | 38.44 | ×38.4434 | ×38.05 | 98.98% |
Chance = (2 ÷ 3)ᵏ. Floors one and two are the cheapest rungs anywhere on the board: 0.99 × 1.5 = 1.485 is floored to ×1.48, and 0.99 × 2.25 = 2.2275 to ×2.22, each giving up a third of a cent per stake.
| FLOORS CLEARED | CHANCE | ONE IN | FAIR MULTIPLIER | ENGINE PAYS | RETURN |
|---|---|---|---|---|---|
| 1 | 50.00% | 2 | ×2 | ×1.98 | 99.00% |
| 2 | 25.00% | 4 | ×4 | ×3.96 | 99.00% |
| 3 | 12.50% | 8 | ×8 | ×7.92 | 99.00% |
| 4 | 6.25% | 16 | ×16 | ×15.84 | 99.00% |
| 5 | 3.13% | 32 | ×32 | ×31.68 | 99.00% |
| 6 | 1.56% | 64 | ×64 | ×63.36 | 99.00% |
| 7 | 0.78% | 128 | ×128 | ×126.72 | 99.00% |
| 8 | 0.39% | 256 | ×256 | ×253.44 | 99.00% |
| 9 (top) | 0.20% | 512 | ×512 | ×506.88 | 99.00% |
Chance = (1 ÷ 2)ᵏ. Every Hard multiplier is 0.99 × 2ᵏ, which is an exact number of cents for every k up to nine, so nothing is floored away and every rung returns exactly 99.00%.
Read across the three tables and the design shows through. Hard is the pure version of the game: fair odds doubled every floor, a single 1% taken once, 99.00% at every rung to the cent. Easy and Medium are the same design with one arithmetic wrinkle, which is the subject of the next section, and the wrinkle is worth at most a third of a cent per stake.
Where the cents go
Designing Pagoda’s ladder said the game pays exactly 99% at every cash-out point. That is true of the formula and not quite true of the number on the screen. The engine computes 0.99 × (4 ÷ 3)ᵏ or 0.99 × (3 ÷ 2)ᵏ to twelve decimals, then floors the result to whole hundredths before it is shown or paid. On Easy and Medium those powers are not exact cents, so the floor removes between 0.1 and 0.9 of a cent from each multiplier, and the return at that rung falls below 99% by the same fraction times the chance of reaching it.
| RUNG | UNFLOORED | ENGINE PAYS | CENTS DROPPED | RETURN |
|---|---|---|---|---|
| Easy 3 | ×2.3467 | ×2.34 | 0.67 | 98.72% |
| Easy 4 | ×3.1289 | ×3.12 | 0.89 | 98.72% |
| Easy 8 | ×9.8888 | ×9.88 | 0.88 | 98.91% |
| Easy 9 | ×13.1851 | ×13.18 | 0.51 | 98.96% |
| Medium 1 | ×1.4850 | ×1.48 | 0.50 | 98.67% |
| Medium 2 | ×2.2275 | ×2.22 | 0.75 | 98.67% |
| Medium 5 | ×7.5178 | ×7.51 | 0.78 | 98.90% |
| Medium 9 | ×38.0589 | ×38.05 | 0.89 | 98.98% |
| Hard, any | 0.99 × 2ᵏ | same | 0 | 99.00% |
Unfloored = 0.99 × fair multiplier. Return = chance × engine multiplier. The loss is largest in return terms on the low rungs, where the chance of being paid is high: half a cent at Medium floor one is paid on two rounds in three, so it costs 0.33% of the stake; nine-tenths of a cent at Medium floor nine is paid once in 38 rounds and costs 0.02%.
So the honest statement is: Pagoda returns 99.00% on every Hard rung and on Easy floors one and two, and between 98.67% and 98.99% everywhere else, with the shortfall never larger than a third of a stake per hundred. The design-notes article now carries this correction. The flooring itself is a deliberate choice rather than an accident: the ladder must be displayed and paid in cents, and the engine rounds once, in one direction, so the number shown before you pick is the number you are paid.
The direction matters for a second reason. Flooring makes every rung an equal or worse deal for the player than the formula, never better, so no sequence of cash-outs can be worth more than 99% of the stake in expectation. A game that rounded half-up would have some rungs above 99% and invite players to fish for them; a game that floors has none.
Cashing out or climbing
Because every rung costs about the same 1%, the choice of when to cash out is not a choice about price. It is a choice about how the 1% is collected — in small frequent pieces or in one rare large one — and the tables above give the shape. On Easy the top pays ×13.18 and is reached once in 13 rounds; on Hard it pays ×506.88 and is reached once in 512. A player who never cashes out and always climbs busts on the first floor half the time on Hard, and on average clears 1.00 floors per round; on Easy, 2.77.
| STRATEGY | WIN CHANCE | PAYS | RETURN | SWING PER ROUND | SWING OVER 100 ROUNDS |
|---|---|---|---|---|---|
| Easy, cash out after 1 | 75.0% | ×1.32 | 99.00% | 0.57 | 5.7 |
| Easy, cash out after 5 | 23.7% | ×4.17 | 98.96% | 1.77 | 18 |
| Easy, climb to the top | 7.5% | ×13.18 | 98.96% | 3.47 | 35 |
| Medium, cash out after 3 | 29.6% | ×3.34 | 98.96% | 1.53 | 15 |
| Medium, climb to the top | 2.6% | ×38.05 | 98.98% | 6.06 | 61 |
| Hard, cash out after 1 | 50.0% | ×1.98 | 99.00% | 0.99 | 10 |
| Hard, cash out after 4 | 6.25% | ×15.84 | 99.00% | 3.83 | 38 |
| Hard, climb to the top | 0.20% | ×506.88 | 99.00% | 22.4 | 224 |
Swing per round is the standard deviation of one round’s result per unit staked, √(chance × pays² − return²); over N rounds it grows as √N. Expected loss over 100 one-unit rounds is about 1 unit for every row; the swing column is how far a real 100-round session usually lands from that.
The last row is the one to sit with. A Hard climb to the top costs the same 1 unit per 100 rounds as cashing out after one floor, but its swing over those 100 rounds is 224 units: the typical outcome of 100 attempts is either nothing at all — 82% of 100-round sessions never reach the top — or one payout of 506.88. Risk of ruin puts numbers on how long a bankroll survives that shape; the price it is surviving is the same 1% either way.
One more thing the ladder does not reward is hesitation. Cashing out after k floors and starting a new round is priced identically to continuing, because the next floor is a fresh (tiles − 1) in tiles draw at a multiplier that already includes the haircut. There is no floor at which stopping is “due” and none at which the trap is more likely than one in tiles; the traps were placed before the first pick and do not move.
Checking a round
- From the round’s fairness panel take the revealed server seed, the client seed and the nonce, and the difficulty and picks from the result.
- For each floor f from 0 to 8 compute HMAC-SHA256 keyed by the server seed over “clientSeed-nonce-f”, take the first 8 bytes as a fraction of 2⁶⁴, multiply by the tile count and floor. That is the trap on floor f.
- Compare with your picks: every pick before the bust must differ from that floor’s trap, and the bust pick, if any, must equal it. For the payout, multiply 0.99 by tiles ÷ (tiles − 1) once per cleared floor at twelve decimals and floor to cents; stake × that number, floored to two places, is the settlement.
The open-source verifier’s pagoda command does the three steps in one call. If a floor’s trap disagrees with the engine, check the cursor first — Pagoda draws one cursor per floor, floor 0 for the ground floor, not one draw for the whole layout.
What are the odds of reaching the top in Pagoda?
Nine floors in a row: 7.5% on Easy (1 in 13.3), 2.6% on Medium (1 in 38.4) and 0.2% on Hard (1 in 512). Each floor is cleared with probability (tiles − 1) ÷ tiles and the floors are independent.
What is the house edge in Pagoda?
Target 1% at every cash-out point. The engine floors each multiplier to cents, so the actual return is exactly 99.00% on Hard and on Easy floors one and two, and between 98.67% and 98.99% on the other Easy and Medium rungs.
Which difficulty is the best value?
Hard, marginally: all nine of its rungs return exactly 99.00% because 0.99 × 2ᵏ is a whole number of cents. Easy and Medium lose up to a third of a cent per stake to flooring on some rungs. The difference is at most 0.33% of the stake; the difference in swing between the modes is far larger.
What does the Pagoda ladder pay?
Easy ×1.32, 1.76, 2.34, 3.12, 4.17, 5.56, 7.41, 9.88, 13.18. Medium ×1.48, 2.22, 3.34, 5.01, 7.51, 11.27, 16.91, 25.37, 38.05. Hard ×1.98, 3.96, 7.92, 15.84, 31.68, 63.36, 126.72, 253.44, 506.88.
Does it matter which tile I pick?
No. The trap on every floor is fixed by the seed pair and nonce before the round starts, and every tile is equally likely to be it, so any habit — always left, always the same column — has the same (tiles − 1) in tiles chance.
Is it better to cash out early or climb?
Neither in expectation: every rung costs about 1%. Cashing out early collects that 1% in small frequent losses with a swing near one stake per round; climbing collects it in rare large payouts with a swing of up to 22 stakes per round on Hard.
Can I verify a Pagoda round?
Yes. One HMAC-SHA256 per floor keyed by the revealed server seed over “clientSeed-nonce-floor”, first 8 bytes ÷ 2⁶⁴, times the tile count and floored, gives each trap; the verifier’s pagoda command reproduces the layout and the ladder.
- Betkyo engine source, house service: PagodaDerivation.kt — FLOORS, Difficulty tiles, trapAt() (per-floor cursor, floor(u × tiles)), mult100() (0.99 × (t ÷ (t − 1))ᵏ at scale 12 HALF_UP, floored to hundredths), ladder100(); OriginalPagodaService.kt — pick(), cashout(), TOP settlement and applyEarned() (stake × mult100 ÷ 100, FLOOR to two places)
- Betkyo engine source, client mirror: PAGODA_FLOORS, PAGODA_TILES and pagodaMult100() in _shared/demoLocal.ts (BigInt mirror of the house arithmetic)
- Exact calculations written for this article: ((t − 1) ÷ t)ᵏ clearance probabilities, the unfloored ladder 0.99 × (t ÷ (t − 1))ᵏ against the floored engine values, per-rung return and cents dropped, the mean floors cleared under an always-climb policy, and the per-round standard deviation for each cash-out point
- Betkyo provably-fair verifier (GitHub, MIT): the pagoda command reproduces the trap layout and ladder from serverSeed, clientSeed and nonce



