PROTOCOL DOCUMENTATION

How EloVault Works

EloVault is parametric insurance for ranked play. There is no adjuster and no judgement call: a fixed set of rules runs against your game's official match data, and if they pass, the Oracle pays. This page is the complete rulebook.

The flow

From wallet to payout in six steps

  1. STEP 1

    Connect & sign in

    Connect Phantom or Solflare, then sign a free message. The signature proves you control the wallet; it never moves funds.

  2. STEP 2

    Pay the $15 USDC premium

    One on-chain transaction into the EloVault vault buys 30 days of coverage. The Oracle verifies that exact transaction before coverage starts.

  3. STEP 3

    Verify your game account

    Prove you own the account you play on: Steam login for Dota 2 and CS2, Riot Sign-On or a summoner-icon challenge for League. One account per wallet, one wallet per account.

  4. STEP 4

    Wait 24 hours

    Coverage has a short waiting period so nobody can buy a policy after their second loss. Matches played before it ends do not count.

  5. STEP 5

    Play ranked

    Queue normally. The dashboard tracks your live streak from the game's official data so you always know where you stand.

  6. STEP 6

    Claim and get paid

    When your last 3 full ranked games are carried losses, press File Claim. The Oracle re-fetches your matches, runs every check, and pays $30 USDC.

The rules

What counts as a qualifying streak

3 losses in a row

Your most recent full-length ranked matches, newest first. One win resets the count.

Top of your team in 2 of 3

Highest impact score on your team (damage, combat score or ADR), or at least the listed share of your team's total.

KDA above the floor in all 3

You can lose while carrying; you cannot be the reason the game was lost.

GameRanked queuesCarry KDAKDA floorImpact shareMin. length
League of LegendsRiot match-v5 (ranked solo/duo & flex)2.01.030%15 min
ValorantRiot val-match-v1 (competitive)1.20.828%20 min
Dota 2OpenDota (ranked matchmaking)2.01.030%12 min
Counter-Strike 2FACEIT Data API (matchmaking)1.10.828%15 min

Remakes, abandons, early surrenders and matches shorter than the minimum are skipped entirely: they neither count as losses nor break a streak. Non-ranked queues are ignored.

Payouts

How and when you get paid

The numbers

Premium
$15 USDC per 30 days
Payout per claim
$30 USDC
Claims per period
2
Waiting period
24 hours after the premium confirms
Account binding cooldown
24 hours after linking a new game account
Cooldown between claims
6 hours
Network
Solana mainnet-beta
Paid to
Your wallet's USDC token account

What happens when you press File Claim

  1. 01Your policy is checked: active, past the waiting period, claims remaining.
  2. 02Your linked account is checked: verified, past its binding cooldown.
  3. 03The Oracle fetches your ranked matches since coverage began directly from the game API. Nothing you type is trusted.
  4. 04The rules above run, then the fraud checks below.
  5. 05Pass: the Oracle signs the USDC payout transaction and it lands in your wallet, typically in under 10 seconds. The transaction hash is shown on your dashboard.
  6. 06Flagged: the claim is held for manual review and settled within 24 hours.
  7. 07Fail: you see every reason immediately. Nothing is burned, so you can claim again once your streak qualifies.
PAID
Seconds. Matches burned, streak reset, claim counted.
REVIEW
Within 24h. Happens when a soft fraud signal fires or the daily payout cap is hit.
DENIED
Instant, with reasons. Nothing consumed; try again when you qualify.
Anti-fraud

How the system stays honest

Every claim is a request to move real money, so every input is verified against a source the claimant cannot forge. These are the checks, and what each one stops.

Wallet signature login

Nobody can file claims or link accounts for a wallet they do not hold the key to.

On-chain premium verification

Coverage only starts after the Oracle reads your premium transaction from the chain and confirms the vault balance went up. Each transaction activates one policy, once.

Proven account ownership

Steam and Riot log-ins, or a summoner-icon change only the owner can make. No typing someone else's tag.

One account, one wallet

A game account can be bound to a single wallet. Rebinding to another wallet locks it out for 7 days.

Waiting period & binding cooldown

Matches played before coverage became eligible, or before an account was bound, never count. You cannot insure a streak that has already started.

Server-side data only

The Oracle fetches matches itself from Riot, OpenDota and FACEIT. The client sends nothing but the game name.

Burned matches & streak reset

A match can be paid once, ever. After a payout only newer matches count.

Collusion detection

Repeat opponents across your losses deny the claim (win-trading); a single repeat holds it for review.

Sabotage-party detection

A recurring party member who was the worst performer in multiple losses denies the claim.

Throwaway-account guard

Accounts need ranked history on record; new accounts and full-party streaks are held for review.

Data integrity

Overlapping match timestamps or incomplete data fail the claim.

Rate limits, locks & circuit breaker

One claim at a time per wallet, strict per-wallet and per-IP limits, and a daily payout cap after which claims go to review.

Coverage

Supported games

GameOwnership proofMatch dataYou need
League of LegendsRiot Sign-On, or a summoner-icon challengeRiot match-v5 (ranked solo/duo & flex)Public match history (default).
ValorantRiot Sign-OnRiot val-match-v1 (competitive)Riot Sign-On must be enabled on this deployment.
Dota 2Steam loginOpenDota (ranked matchmaking)Enable “Expose Public Match Data” in the Dota 2 client.
Counter-Strike 2Steam login → FACEIT accountFACEIT Data API (matchmaking)A FACEIT account linked to the same Steam account.
Overwatch Not covered: no official per-match API exists, so streaks cannot be verified.
League players

Finding your League of Legends info

Riot ID

Shown in the top-right of the League client next to your icon as Name#TAG (for example Faker#KR1). Enter the part before the # as the game name and the part after as the tag. Also visible at account.riotgames.com.

Region

The server you queue on: NA1 North America, EUW1 EU West, EUN1 EU Nordic & East, KR Korea, BR1 Brazil, LA1/LA2 Latin America, OC1 Oceania, TR1 Turkey, RU Russia, JP1 Japan, and PH2, SG2, TH2, TW2, VN2 for South-East Asia.

Icon challenge

The dashboard shows you a picture of a default summoner icon. In the client: click your icon → Profile → click the icon → Summoner Icons → select that icon → Confirm. Wait a minute, press Verify, then change it back if you like.

FAQ

Frequently asked

What exactly triggers a payout?

Your 3 most recent full-length ranked matches are all losses, your KDA stayed above the floor in every one of them, and you were the top performer on your team (or had the top share of team impact) in at least 2 of them.

Do remakes, dodges or early surrenders count?

No. They are not wins or losses, so they are skipped without breaking your streak. Only full-length ranked matches count.

How fast is the payout?

Usually seconds: the Oracle signs a Solana transaction as soon as the claim passes. If a claim is flagged for review it is settled by an operator within 24 hours.

Where does the money arrive?

In your wallet's USDC token account on Solana mainnet-beta. If you have never held USDC, the Oracle creates the account for you and pays the rent.

Can I claim the same losses twice?

No. Every paid match is burned forever, and your streak resets to zero after each payout. Only matches played after your last payout count toward the next one.

Why only 2 claims per period?

The pool pays $30 per claim on a $15 premium. The cap keeps the pool solvent so everyone who qualifies actually gets paid.

Can I link a friend's account?

No. Ownership is proven through Steam or Riot login, or by changing a summoner icon only the owner can change. Each game account can be linked to one wallet at a time, and moving it to another wallet locks it out for a week.

What if my claim is denied?

You see every reason on the dashboard immediately: the exact rule that failed and the matches involved. Nothing is decided by a human unless the fraud checks flag the claim for review.

What about Overwatch?

Overwatch has no official per-match API, so there is no trustworthy way to verify a streak. It is not covered until Blizzard exposes verifiable match data.