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.
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.
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).
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.
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.
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.
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