How it works

We read every prop firm payout from the blockchain itself.

No firm API. No self-reported numbers. We watch the wallets that prop firms actually use to pay traders and report what we see.

Step 1

The on-chain primitive

Prop firms that pay traders via Riseworks.io settle each payout as an ERC-20 transfer on Arbitrum (USDC). The smart contract emits a Transfer event with sender, recipient, amount and timestamp — public, immutable, indexable.

Step 2

Wallet discovery

Each firm we track has at least one verified on-chain wallet. Wallets come from three sources: direct firm submission, public disclosures, and on-chain forensics (cross-referencing recipients with public firm announcements).

Step 3

Hourly ingest cron

A Supabase Edge Function calls Arbitrum RPC every hour, fetches the latest Transfer events from each firm's wallets, dedupes against what we've already stored, and inserts the new ones. Median round-trip is ~70 minutes from on-chain confirmation to dashboard.

Step 4

Aggregation + health score

A materialised view rolls the raw events up into per-firm-per-period stats (24h, 7d, 30d, 90d, 180d, all-time). The Tradavi Health Indicator weights recency, volume, frequency, momentum and maturity into a single 0-100 score.

Step 5

What you see

The Verified badge means we index that firm's wallet live. Without a verified badge, the row falls back to seed data — useful for context but not on-chain truth. Every number on the table is a SQL query away from being audited.

Step 6

What we don't see

Wise, SEPA, ACH, off-chain crypto rails (e.g. Tron USDT-TRC20) and any payout that isn't a RISEPAY transfer on Arbitrum. If a firm uses multiple rails, our number is a lower bound — not the total.

Run a prop firm or know one whose wallets we should add?

The more firms we index, the better Tradavi gets. Submitting a wallet takes 30 seconds and gives your firm a verified badge on the table.

Submit a wallet