> For the complete documentation index, see [llms.txt](https://pallette-wars.gitbook.io/pallette-wars-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://pallette-wars.gitbook.io/pallette-wars-docs/how-the-jackpot-is-won.md).

# How the jackpot is won

X poll or pixel-count, Share Points, monthly claim.

This is the payout path. Spend paints the board and mints Share Points. The jury picks a faction. Only that faction can claim the **50%** war jackpot. **15%** accrues to a UTC monthly pool.

Supply and leftover-ink rules are on Tokenomics.

## Vault split (frozen)

On `resolveEpoch` the epoch vault is cut. These percents are constants on the Vault — no setters.

```
jackpotPool     = vault * 50 / 100
monthlyAmount   = vault * 15 / 100
treasuryAmount  = vault * 10 / 100
burnAmount      = vault - jackpot - monthly - treasury
```

Rollover resolutions skip the monthly credit. Burn is the remainder so the four slices always sum to 100%.

Example: 250,000 $WAR spent in the epoch

| Slice        | Amount       |
| ------------ | ------------ |
| Jackpot 50%  | 125,000 $WAR |
| Burn 25%     | 62,500 $WAR  |
| Monthly 15%  | 37,500 $WAR  |
| Protocol 10% | 25,000 $WAR  |

Burn goes to `0x000000000000000000000000000000000000dEaD`. Protocol goes to the treasury wallet. Jackpot stays in the Vault until winners pull it. Monthly stays in `monthlyPool[monthId]` until that UTC month closes.

## Who wins the war

When an X poll is posted and a tally is submitted before `juryEndsAt`, that community count picks the winner. Otherwise the hub uses **pixel-count** on the frozen board. The oracle attests the result on-chain with `resolveEpoch` (EIP-712 + `ORACLE_ROLE`).

If the oracle is silent for 12 hours after jury end, admin can `emergencyResolve`:

* PixelCount: faction with more painted cells wins (Blaze wins a true tie)
* Rollover: the whole vault rolls into the current/next epoch instead of paying a jackpot (no monthly credit)

{% hint style="warning" %}
The jury is oracle-attested, not a trustless on-chain vote. The oracle key can name a winner. Treat that key as sensitive. Overnight epochs use pixel-count unless a tally was submitted.
{% endhint %}

## Share Points (not raw spend)

A last-minute whale should not erase early builders with the same `$WAR`. Every spend mints time-weighted Share Points:

```
points = cost * (warDuration + timeLeft) / warDuration
```

| When you spend               | Approx multiplier         |
| ---------------------------- | ------------------------- |
| Hours 1-2 (creative / early) | about 2.0x down to 1.67x  |
| Hours 3-4                    | about 1.67x down to 1.33x |
| Hours 5-6 (late)             | about 1.33x down to 1.0x  |

All spend counts while you are locked to a faction: home pixels, sabotage, bombs, nukes, washers.

### Example

* Alice spends 100 $WAR in hour 1 (\~2.0x) = 200 Share Points
* Bob spends 100 $WAR in the last 30 seconds (\~1.0x) = 100 Share Points

Same spend, Alice claims 2x Bob if their faction wins. Bob still enlarged the jackpot for Alice.

## Claim formula (this war)

After resolve, each winner pulls:

```
userClaim = userSharePoints * jackpotPool / winningFactionSharePoints
```

* You must be on the winning faction for that epoch
* Claims are pull via `claim(epochId)` on the Vault — nothing is airdropped
* Rounding dust stays in the contract
* Losing faction gets 0 from the war jackpot (their spend still funded burn, monthly, treasury, and the winners pool)

## Monthly jackpot

`monthId` is UTC `year * 12 + month` from the war's `startedAt`. After that calendar month closes, pull with `claimMonthly(monthId)`.

Weight is Share Points from epochs your faction won that month — not every war you painted. A month you never won pays you 0 from the monthly pool, even if you spent heavily on losing sides.

Leftover ink in the tank is yours. It is not swept into the jackpot when the epoch ends.

{% hint style="success" %}
Paint early. Sabotage still earns Share Points for your side. A late nuke grows the pool but earns fewer points per `$WAR`.
{% endhint %}


---

# 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://pallette-wars.gitbook.io/pallette-wars-docs/how-the-jackpot-is-won.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.
