> For the complete documentation index, see [llms.txt](https://docs.stoxa.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.stoxa.app/using-the-protocol/odds-and-rtp.md).

# Odds & RTP

Every number on this page is read from the deployed contract and can be verified by anyone. Call `tier(i)` on the Machine and check for yourself.

### The prize table

| Tier        | Chance     | Face value       | On an 8.88 pack | Contribution to RTP |
| ----------- | ---------- | ---------------- | --------------- | ------------------- |
| Common      | **70.87%** | 0.70×            | $6.22           | 49.61%              |
| Common+     | **21.98%** | 0.88×            | $7.81           | 19.34%              |
| Rare        | **5.00%**  | 1.88×            | $16.69          | 9.40%               |
| Epic        | **1.50%**  | 3.88×            | $34.45          | 5.82%               |
| Legendary   | **0.60%**  | 8.88×            | $78.85          | 5.33%               |
| **Jackpot** | **0.05%**  | the growing card | —               | —                   |

**Rack RTP: 89.50%**

Face value is a multiple of the pack price, so the table is identical on every pack size. A legendary on the $88 pack is worth $781.44.

### Total return to players

The rack is not the whole story. Two more streams flow back to players:

| Stream               | Share of every spin | Who gets it                    |
| -------------------- | ------------------- | ------------------------------ |
| Card prizes          | 89.50%              | the spinner                    |
| Golden egg           | 1.00%               | a random spinner in the window |
| Jackpot feed         | 0.50%               | whoever hits the 0.05% tier    |
| **Total to players** | **91.00%**          |                                |
| Protocol fee         | 2.50%               | the operator                   |
| **Bankroll edge**    | **6.50%**           | the LPs                        |

**91% of everything wagered comes back to players.** The house's gross margin is 9%, and most of that belongs to the people funding the bankroll, not to the operator.

For context, that is meaningfully better than most physical gacha and comparable crypto card machines, which commonly sit at 70–85%.

### Which stock you get

The tier decides **how much**, not **which company**.

Every listed stock is permitted on every tier. What you actually draw is uniform across the cards physically on that tier's shelf, so if a tier holds 5 SPYB and 1 MSFTB, you draw SPYB five times out of six.

That means a "common" card and a "legendary" card can hold the same asset in different sizes. A common NVDA card holds $6.22 of NVDA; a legendary NVDA card holds $78.85 of it.

### The jackpot

One card. It never gets drawn from a rack, it grows.

0.5% of every spin feeds a fund. Periodically that fund is swapped into the jackpot stock and **topped up into a single certificate**, so the prize compounds continuously. Hit the 0.05% tier and the whole card is yours, plus any fund not yet swapped in.

Jackpot odds are hard-capped at **0.20%** by the contract. The operator cannot raise them past that, and `setTable` reverts if they try.

### The golden egg

1% of every spin feeds the egg. When cumulative spin volume in the current window crosses **$10,000**, the egg cracks on the next settlement and the entire fund is credited to **one randomly chosen spinner from that window**.

Not the spinner who cracked it but a random one. Every spin in the window has an equal chance, so the person who happened to push volume over the line has no advantage. The window then resets.

The winner is picked from the same VRF word using a separate hash lane, so it cannot be predicted or steered.

### Verifying a spin yourself

Every spin emits `SpinRequested(spinId, player, packId, price, requestId)` and later `SpinSettled(spinId, player, tierIndex, certId, payoutUsd, jackpotWon, fallbackPaid)`.

Take the `requestId`, look up the fulfilment on the Chainlink coordinator, and you have the random word. `word % 10000` gives the tier; walk the table and check it matches. The word existed on chain before the outcome did.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.stoxa.app/using-the-protocol/odds-and-rtp.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
