Skip to content

The ELO System

Proovly tracks every trader’s skill with an ELO rating. It works the same way ELO works in chess, poker, and competitive gaming: your rating goes up when you prove something the rating didn’t expect, and goes down when you fail to prove what it did expect.

The entire point of Proovly’s rating is that it lives on-chain, on Base, against your wallet address. It’s not a database row you lose when the platform changes. It’s a credential.

Three reasons:

  1. It’s adversarial. ELO assumes you’re competing against some expected difficulty, and it updates based on whether you beat that expectation. This maps perfectly onto “pass a challenge harder than your current rating expects you to pass.”
  2. It’s well-understood. Chess has used it for 60 years. Poker players recognise it. Game designers recognise it. We don’t have to teach anyone what a rating of 1500 “means” — they already know.
  3. It normalises for difficulty. A Bronze pass and a Gold pass aren’t worth the same ELO points. The system automatically weights harder challenges higher, without us writing special cases.

Every challenge has an expected pass rate, set by the tier:

TierExpected pass rate
Bronze30%
Silver20%
Gold10%

When you pass at tier T, your rating gains:

gain = K × (1 - expected_pass_rate[T])

with K = 40 for new traders (under 10 challenges), dropping to K = 20 once you’ve played at least 10 challenges (same K-factor schedule chess uses for provisional vs established players).

Worked example:

  • You’re a new trader, so K = 40.
  • You pass a Silver challenge. Expected pass rate 20%.
  • Gain = 40 × (1 - 0.20) = 32 ELO.

When you fail, you lose rating based on how you failed:

loss = K × expected_pass_rate[T] × severity

where severity depends on the failure mode:

Failure modeSeverity
Missed profit target only0.5
Daily drawdown breach1.0
Max drawdown breach1.5
EA tamper or wash trading3.0

Worked example:

  • Same new trader, K = 40.
  • Fails a Silver challenge with a daily drawdown breach.
  • Loss = 40 × 0.20 × 1.0 = 8 ELO.

Note the asymmetry: passing a Silver gains 32 ELO, failing one costs 8. This is deliberate. A hard challenge that you pass is worth many soft challenges that you fail, which is how it should be — if the system punished every failure the same as it rewarded every pass, traders would simply stop trying.

Every new wallet starts at 1000 ELO. This is low enough that early passes gain meaningful points, high enough that early fails don’t bottom out.

There is no “provisional period” — your first challenge counts, your first pass counts, your first fail counts. The K-factor schedule handles the math.

  • Floor: 500. Your ELO never drops below 500 no matter how many challenges you fail. This keeps the rating meaningful (i.e., you can still progress from below) and prevents the registry from accumulating a tail of -∞ wallets.
  • Ceiling: none. The rating has no theoretical upper limit. In practice, ~2200 is “world class” territory because of how much sustained high-tier passing is required to get there.

Nothing about this math requires a blockchain. We could calculate ELO in a database and publish it as a number. The reason it lives on Base is verifiability:

  • Anyone can read EloRegistry.sol and confirm your current rating
  • Anyone can read the full event log and reconstruct your rating from scratch using the same formula
  • If we ever change the formula in the future, the old events stay on-chain unchanged and any observer can compute either version
  • Third-party tools can use your ELO as a gate without asking us for permission

In short: the blockchain doesn’t make the math better. It makes the math permanent and portable.

It is important to be honest about this:

  • ELO does not measure profitability. A trader who passes 10 Bronze challenges and fails 2 Silver ones might have a higher ELO than a trader who’s made more real dollars on their seeded account. ELO measures challenge outcomes, not lifetime P&L.
  • ELO does not measure specific skills. Two traders with the same rating might have completely different styles — one a scalper, one a swing trader — and both deserve the rating.
  • ELO is not a prediction. A 1800-rated trader can still blow up their next challenge. The rating says “their track record is X,” not “they will certainly pass next time.”

If you want a richer metric, query the registry yourself and compute whatever you want — pass rate by tier, Sharpe ratio of seeded-account P&L, longest streak. The raw events are there. ELO is just the single most legible summary.

No. That’s the point. You can abandon a wallet and start a new one, but your old wallet’s history stays on-chain forever. This is a feature, not a bug — a portable reputation that can be reset isn’t a reputation at all.