# Market Resolution

{% hint style="info" %}
**Resolution** is the process of determining the outcome (YES or NO) of a prediction market after it ends.
{% endhint %}

## How It Works

BaseCase uses the **UMA Optimistic Oracle** for decentralized, trustless resolution on mainnet:

{% @mermaid/diagram content="flowchart LR
A\["Market Ends"] --> B\["Anyone Proposes Outcome"]
B --> C\["2-Hour Dispute Window"]
C -->|No Dispute| D\["Outcome Confirmed ✓"]
C -->|Disputed| E\["UMA Voters Decide"]
E --> D
D --> F\["Winners Claim $1/share"]

```
style A fill:#f0fdf4,stroke:#22c55e,color:#000000
style D fill:#eff6ff,stroke:#3b82f6,color:#000000
style F fill:#fef3c7,stroke:#f59e0b,color:#000000" %}
```

***

## Resolution Timeline

| Step              | Duration    | What Happens              |
| ----------------- | ----------- | ------------------------- |
| 1. Market Ends    | —           | Trading stops             |
| 2. Proposal       | \~Minutes   | Anyone proposes YES or NO |
| 3. Dispute Window | **2 hours** | Community can challenge   |
| 4. If Disputed    | 24-48 hours | UMA token holders vote    |
| 5. Settlement     | \~Minutes   | Outcome is finalized      |
| 6. Claims Open    | Forever     | Winners claim anytime     |

***

## Proposing an Outcome

Anyone can propose the market outcome by posting a **bond**:

| Detail            | Value                 |
| ----------------- | --------------------- |
| **Bond Currency** | USDC                  |
| **Bond Amount**   | \~$250 (configurable) |
| **Bond Return**   | Returned if correct   |
| **Dispute Cost**  | Same as bond          |

### How to Propose

1. Navigate to the resolved market
2. Click **Propose Outcome**
3. Select YES or NO
4. Post the bond (USDC)
5. Wait for dispute window

{% hint style="success" %}
If your proposal is correct and undisputed, you get your bond back. If you're wrong and disputed, you lose your bond.
{% endhint %}

***

## Dispute Process

If someone believes the proposed outcome is wrong:

{% stepper %}
{% step %}

#### Challenge Posted

The disputer posts an equal bond and challenges the proposal.
{% endstep %}

{% step %}

#### UMA DVM Votes

UMA token holders vote on the correct outcome over 24-48 hours.
{% endstep %}

{% step %}

#### Resolution

* **If proposer was right:** Disputer loses bond
* **If disputer was right:** Proposer loses bond
* Winner receives loser's bond as reward
  {% endstep %}
  {% endstepper %}

***

## Claiming Winnings

BaseCase uses a **Winner Profit Guarantee** payout system: winners receive exactly **$1 per winning share**, plus a share of the **OG Bonus Pool** if they were bonding phase participants.

### Fixed $1 Redemption

```
Your Payout = Winning Shares × $1.00
```

> \[!SUCCESS] **All winners profit.** Since you can never pay more than $1 per share during bonding (thanks to the $1 ceiling), winning always means profit.

### OG Bonus Pool

If you bought during the **bonding phase** and held to resolution, you also receive a share of the OG Bonus Pool:

```
OG Bonus = (Your OG Shares / Total OG Shares) × OG Bonus Pool
```

The OG Bonus Pool is funded by excess vault funds after graduation (typically from unbalanced markets).

### Example

| Trader  | Bonding Phase?  | Shares | Entry Cost | Base Payout | OG Bonus | Total  | Profit |
| ------- | --------------- | ------ | ---------- | ----------- | -------- | ------ | ------ |
| Alice   | YES             | 1,000  | $600       | $1,000      | $50      | $1,050 | +$450  |
| Bob     | YES             | 500    | $350       | $500        | $25      | $525   | +$175  |
| Charlie | NO (order book) | 200    | $180       | $200        | $0       | $200   | +$20   |

{% hint style="warning" %}
If you hold **losing** shares, they are worth $0. You cannot claim anything.
{% endhint %}

***

## Edge Cases

### What if the market is ambiguous?

UMA voters may resolve the market as **INVALID** if:

* The question is unclear
* The outcome is undeterminable
* Both YES and NO could be argued

In invalid resolutions, funds are returned pro-rata.

### What if no one proposes?

Markets cannot pay out until someone proposes an outcome. Any user can propose if they're willing to post the bond.

***

## Technical Details

### Mainnet (UMA Oracle)

| Parameter       | Value                    |
| --------------- | ------------------------ |
| Oracle Contract | UMA Optimistic Oracle V3 |
| Liveness Period | 2 hours (7200 seconds)   |
| Identifier      | `ASSERT_TRUTH`           |
| Currency        | USDC                     |
| Minimum Bond    | \~$250                   |

### Testnet (LocalResolver)

| Parameter          | Value                       |
| ------------------ | --------------------------- |
| Resolver Contract  | LocalResolver               |
| Challenge Period   | 30 minutes                  |
| Bond Amount        | $100 USDC                   |
| Dispute Resolution | Admin-based (simulates UMA) |

***

## FAQ

<details>

<summary><strong>Can I propose and dispute the same market?</strong></summary>

No. That would be self-dealing. The oracle prevents the same address from both proposing and disputing.

</details>

<details>

<summary><strong>What happens to my bond if no one disputes?</strong></summary>

You get it back in full after the dispute window closes.

</details>

<details>

<summary><strong>How do I become a UMA voter?</strong></summary>

You need to hold UMA tokens and stake them in the UMA DVM. See [UMA documentation](https://docs.uma.xyz) for details.

</details>
