Skip to content

Risks & Disclaimers

If you skip every other page in the docs, read this one. Trading is risky. Crypto is risky. Skill-based competitions where the prize pool is real money are risky. Pretending otherwise would put us in the same category as the prop firms we’re replacing.

Here’s everything that can go wrong, why, and what we do about it.

This is the obvious one. Every round is pay-to-play. If you finish outside the prize zone, your entry fee is gone. Phase 1 prize pools pay out the top ~25% of finishers — the other ~75% lose their entry. Plan accordingly.

What we do about it: We tell you the entry fee, the prize pool, and the historical win rates upfront. We don’t surprise you with hidden costs. There is no “verification fee,” no “scaling fee,” no “withdrawal fee.”

What you should do about it: Treat entry fees the way you’d treat poker buy-ins. Don’t play with money you can’t afford to lose. Don’t play with rent.

If you reach Stage 2 or Stage 3 and get a funded synthetic account, hitting -20% drawdown from your peak balance freezes the account. You don’t owe anything — there’s no debt — but the account is gone and your ELO drops one tier. You earn your way back the same way you got there: by competing in entry-fee rounds and climbing.

What we do about it: The drawdown rule is immutable code. It’s the same number for every trader. We don’t get to make exceptions and neither do you.

Proovly relies on Pyth Network for asset prices. If Pyth has a bug, an outage, or gets manipulated, trades can settle at incorrect prices. This is not a hypothetical — Pyth has had brief degradations before, as has every oracle.

What we do about it: We reject trades on four independent sanity rules, all enforced server-side on every trade:

  1. Pyth confidence interval > 0.5% of price → rejected (the oracle’s own market makers disagree)
  2. Pyth publish time > 60 seconds old → rejected (the price is stale)
  3. Pyth and Binance ticker disagree by more than 0.5% → rejected (independent cross-check)
  4. Single-tick jump from the previous price is more than 5% → rejected (catches flash crashes and obvious manipulation)

You can retry any rejected trade once the oracle calms down — nothing is voided. Round-final settlement uses the on-chain Pyth price snapshot at the moment of the closing tick, which is publicly verifiable on Base.

What you should do about it: Read the round’s Merkle root on-chain after settlement. If the payout you can prove yourself doesn’t match what the bot committed, the 24-hour challenge window is your time to make noise about it before the root locks.

Phase 1 contracts have two files: EntryEscrow.sol (custody + settlement) and EloRegistry.sol (event-only, holds no funds). They are not professionally audited in Phase 1. We’re explicit about this and we mitigate aggressively.

The trustless model:

  • No admin role. No DEFAULT_ADMIN_ROLE, no Ownable, no pause function, no upgradeability. Once deployed, the bytecode is the bytecode forever. To change anything — rake percentage, leverage cap, fee structure — we have to deploy a V2 contract (Uniswap pattern) and traders have to opt in by using the new address.
  • Hardcoded immutables. The rake recipient address, the rake percentage (10% / 1000 bps), the contract balance cap ($5,000), the 24-hour challenge window, and the 90-day stale-claim window are all immutable constructor arguments. They cannot change after deploy.
  • Bot can’t direct funds. The bot’s only on-chain power is publishing a Merkle root that commits to a payout list. The amounts in that list are derived deterministically from rank position via a fixed harmonic curve enforced by claimPrize. Worst-case bot key compromise is rank manipulation (which is publicly verifiable on-chain), never theft.
  • Pull-based claims. Winners pull their own prizes via claimPrize(roundId, rank, amount, proof). Funds never leave the contract except by a winner’s own signature.
  • 24-hour challenge window. Between root commit and claims-open, anyone can verify the root off-chain and post evidence in Telegram or X. The bot can re-publish a corrected root during the window.

Blast-radius caps:

  • Maximum contract balance is hardcoded at $5,000 USDC per round. Any entry that would push it above the cap reverts. This bounds the maximum loss from a hypothetical claimPrize bug to the amount inside the contract at one time.
  • Contracts use only OpenZeppelin’s audited primitives (SafeERC20, MerkleProof, ReentrancyGuard) — no custom cryptography, no novel patterns.
  • After 90 days, anyone can call sweepStale(roundId) to forward unclaimed funds to the rake recipient — capital efficient, also permissionless.

What replaces the audit:

  • 58 / 58 Foundry tests passing including a 30-player full-lifecycle integration test, a 500-player cap enforcement test, and fuzz tests over the rake math (256 random inputs per run) and the Merkle leaf format (256 random inputs per run)
  • via_ir optimized Solidity 0.8.24 with all OpenZeppelin v5.6.1 primitives
  • Halmos symbolic verification of the claim function’s safety properties (proof validity, idempotence, leaf format determinism, committer-only commit)
  • A real third-party audit ships before Stage 3 when the LP vault goes live. The vault is materially more complex and we will not ship it without one.

What you should do about it: Don’t put more in the contracts than you can afford to lose to a bug. Phase 1 entry fees are $10 per round — keep your exposure proportional.

Proovly is a small project run by a small team. We could fail. We could run out of runway. We could get a takedown notice from a regulator and have to wind down. If that happens, the contracts keep working without us.

What we do about it:

  • The contracts are immutable and hold no admin keys. Even if the website goes dark and the team disappears, the EntryEscrow contract still accepts entries (during the entry window) and pays out claims (after the challenge window). The Proovly UI is just a convenience layer over the contracts — it can be replaced by a community fork in an afternoon.
  • All round state, ELO state, and Merkle roots live on Base. Your trader history persists on-chain regardless of what happens to the website.
  • Smart contract source is open from day one. Anyone can interact with the contracts directly via Etherscan or a forked frontend.
  • The 90-day stale-claim sweep is permissionless — anyone can call it, including you. You don’t need our cooperation to recover funds from unclaimed rounds.

Proovly is a skill-based competition. We believe that’s the correct legal classification in most jurisdictions. We could be wrong. A regulator in a major market could decide that synthetic leveraged trading is a regulated derivative regardless of how we frame it.

What we do about it:

  • Geo-restrict access from jurisdictions where the legal risk is highest (US persons, certain EU member states, sanctioned jurisdictions)
  • No KYC means we can’t be coerced into handing over user data we never collected
  • Skill-competition framing is consistent across all marketing, docs, and contracts — we’re not trying to pretend we’re a brokerage to one audience and a competition to another
  • All assets stay non-custodial wherever possible — your wallet, your keys, your USDC

What you should do about it: Don’t access Proovly from a restricted jurisdiction. Don’t VPN around the geo-block; if a regulator comes after the platform, they will start with the people who explicitly evaded jurisdiction warnings.

The unspoken risk: trading is a negative-sum game for most participants once you account for fees and rake. Proovly does not change this. The 10% rake means the average player loses money over time. The top 25% of any given round wins something; the bottom 75% pays for it.

If you’re not actually good at trading, no on-chain leaderboard is going to make you good. ELO is a measurement, not a tutor.

What we do about it: We’re honest about it. Proovly is positioned for traders who already have or want to develop a real edge — not for “no-deposit guaranteed funded account” tourists.

What you should do about it: Track your real win rate over your first 20 rounds. If you’re consistently losing entry fees with no improvement, stop. The chain doesn’t care, but your bank account does.

Proovly is a skill-based competition platform. Nothing on this site, in the docs, or in the app constitutes financial advice, investment recommendations, tax guidance, or legal counsel. Past performance of traders or the platform is not indicative of future results. You are responsible for your own decisions, your own taxes, and your own jurisdiction’s legal status. Talk to a real professional before doing anything you’d describe as “investing.”