> ## Documentation Index
> Fetch the complete documentation index at: https://docs.auora.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# Settlement

> How outcomes are verified on-chain — Pyth for asset prices, UMA for real-world events.

Every round settles against a **cryptographically signed result from an independent oracle**. The smart contract verifies the signature before paying anyone. There is no manual override.

## Asset prices — Pyth Network

Up/down markets (crypto, metals, stocks) settle with **Pyth Network** price feeds.

* Publishers are the same exchanges and trading firms that originate the prices.
* Prices are signed by the **Wormhole guardian set** — the contract verifies the signature on-chain.
* Each market has a **confidence gate** (`maxConfBps`). If the oracle's spread is too wide (e.g., metals during a holiday weekend), settlement is delayed automatically.
* The operator's role is **liveness only** — carry signed bytes from Pyth to the contract. Cannot fabricate or substitute prices.

## Real-world events — UMA / ResolverAdapter

Sports, esports, and event-based game modes (playoffs, parlays, rolling pot) settle through one of two resolvers:

**ResolverAdapter** (optimistic oracle with challenge window):

1. Proposer submits the outcome + posts a bond.
2. A challenge window runs (minimum 1 hour). Anyone can dispute by posting a counter-bond.
3. If undisputed, outcome finalizes automatically. If disputed, an arbiter resolves it.

**UMA Optimistic Oracle V3** (decentralized dispute resolution):

1. Same propose-and-challenge flow, but disputes go to **UMA's DVM** (decentralized token-holder vote) instead of a single arbiter.
2. Bond currency is ERC-20 (typically USDC).

Both resolvers expose the same interface (`getStatus`, `getFinalOutcome`), so game contracts work with either one.

## The operator cannot

* Substitute a different price or outcome.
* Forge an oracle signature.
* Settle at a timestamp the oracle did not sign.
* Bypass the confidence gate or challenge window.
* Change which oracle the contract trusts (immutable at deploy).
