# PvP Claims

![REWARDS app — claim PvP winnings + check season prize](/files/DYJTtwXQPPYavPbIgHOD)

When you win a PvP match, your winnings accrue to your `claimable_pvp_sol` balance. You withdraw via the REWARDS app.

## The Flow

1. Win a PvP match → server credits `claimable_pvp_sol += pot × 0.95`
2. Open REWARDS app → see your claimable balance
3. Tap **CLAIM** on the PvP Pot card
4. Wallet popup → confirm (just a signed message, no on-chain TX from your side)
5. Server `reserve_claimable_pvp_sol` RPC atomically debits your balance
6. Treasury sends the payout on-chain to your wallet
7. You see the TX signature in the confirmation
8. After 5% claim fee, you receive `claimable_pvp_sol × 0.95`

## Atomic Reserve Pattern

The balance is debited BEFORE the on-chain send. If the send fails, the balance is restored. This means:

* No double-spend possible
* You can safely retry CLAIM if it fails — your balance comes back, you just tap CLAIM again
* Race-safe under concurrent calls

## Strict Time-Window

PvP claim endpoints use **STRICT\_MAX\_AGE\_MS = 15 minutes** on your signed message — your auth signature must be ≤15 min old to claim. This means you may be re-prompted to sign right before claiming if your session is old. Just a security floor on money-moving endpoints.

## When You Can't Claim

* Treasury balance temporarily insufficient (rare, alert if it persists) — try again in 30s
* RPC down (rare) — try again
* Solana network congestion — try again with higher priority fee (handled automatically)
* Your signed message expired (>15 min) — re-sign on prompt

If claim fails repeatedly, please report it in the support topic on Telegram with the timestamp.


---

# Agent Instructions: 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:

```
GET https://docs.snake-os.com/leaderboard-and-rewards/pvp-claims.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
