Docs.
How Replay records, reviews, pays and licenses. Every number on this page comes from the code that runs the site.
How it works.
Replay pays Solana traders for screen recordings of real sessions. Four steps, and you only do the first one.
- 1RecordOpen the studio, share a screen, window or tab, optionally add a webcam bubble and mic narration, box out anything private, and trade. Up to 60 minutes per session, or upload a recording you already have.
- 2ReviewA person watches every session and scores it 1 to 5. Swaps from your linked wallet that land inside the session window are attached as verified fills.
- 3Get paidApproved minutes earn SOL by a fixed formula. An operator sends the payout from the treasury and the transaction signature shows up on your page with a Solscan link.
- 4Labs trainConsented, reviewed sessions join a corpus that AI labs license to train models that read screens, reason about trades and execute. Licensing revenue funds future payouts.
Recording and the studio.
Everything happens in your browser. Nothing uploads until you review the take and submit it.
- Capture
- Screen, window or tab via your browser's share picker
- Webcam
- Optional bubble composited into a corner
- Narration
- Optional mic track, worth +25%
- Max length
- 60 minutes per studio session
- Uploads
- mp4, webm or mov, up to 2 GB and 2 hours
- Minimum
- 30 seconds
- Browsers
- Desktop Chrome, Edge, Brave, Arc or Firefox. Mobile can upload, not record.
Before you hit record
- Close what you do not want seen. Other tabs, DMs, password managers and anything with a seed phrase.
- Draw redaction boxes over balances or panels that stay on screen. You can move and resize them while recording.
- Talk if you can. Narrated sessions earn more and are the most useful data in the corpus: what you see, why you act, what would make you wrong.
- Trade like you normally do. Losses are fine. A well-explained losing trade is worth as much as a winner.
Labels
After recording you can tag the session: setup (entry, exit, scalp, swing, snipe, DCA, cut loss), venues, assets, outcome and a short note on what you were thinking. Labels are optional and feed the decision labels dataset.
Large files upload in parts straight to storage with a progress bar. If the connection drops, retry from the same page.
Privacy and redaction.
The safest pixel is one that never left your machine.
The studio draws your screen, webcam and redaction boxes onto a canvas, and the recorder encodes that canvas. Redaction boxes are solid fills painted into each frame before encoding, so the hidden content is not in the file at all. There is no blur that can be reversed and no original copy kept anywhere.
- Nothing streams live. The take stays in your browser memory until you submit it.
- You see what we see. The preview before upload is the exact file that gets uploaded.
- Reviewers reject leaks. If a session shows a seed phrase or private key, it is rejected and kept out of the corpus.
- Pseudonymous in datasets. Licensed records carry a hashed contributor id, not your wallet address.
More detail in the privacy policy.
Wallets and verified fills.
Link a wallet so the footage comes with ground truth.
- 1Sign inConnect a Solana wallet and sign a one-time login message. This sets a session cookie, it does not send a transaction.
- 2Link for fillsSign a consent message that names the wallet and states what is shared: its swap history while it stays linked. Signing proves you own it.
- 3SyncWe pull the wallet's swaps through Helius and normalize each one: time, side, token, size, SOL and USD value, venue, signature.
- 4AttachSwaps whose block time falls inside a session's start and end are attached to that session as verified fills.
A session with at least one verified fill earns +25%. You can link more than one wallet and unlink any of them from your page. Linking never gives Replay the ability to move funds.
Earning formula.
One pure function computes every payout. These are the numbers it uses today.
sol = minutes x rate x quality x (1 + narration + fills + bounty)
minutes = approved length, capped at 60 (or the bounty max)
rate = 0.002 SOL/min base, or the bounty rate when eligible
quality = reviewer score: 1 -> 0.5x, 2 -> 0.75x, 3 -> 1x, 4 -> 1.25x, 5 -> 1.5x
bonuses = narration +0.25, verified fill +0.25, bounty match +0.1
cap = 1 SOL per session| Example | Inputs | Multiplier | Earns |
|---|---|---|---|
| Plain session | 30 min, score 3, no mic, no fills | 1x | 0.06 SOL |
| Chart read before entry | 15 min, score 4, narrated, 2 fills, bounty rate 0.004 SOL/min | 2x | 0.12 SOL |
- Plain session
- Inputs
- 30 min, score 3, no mic, no fills
- Multiplier
- 1x
- Earns
- 0.06 SOL
- Chart read before entry
- Inputs
- 15 min, score 4, narrated, 2 fills, bounty rate 0.004 SOL/min
- Multiplier
- 2x
- Earns
- 0.12 SOL
A bounty applies only when the session meets it: at least the bounty's minimum minutes, narration if it requires narration, and a verified fill if it requires fills. Otherwise the session still earns at the base rate. Sessions under 30 seconds earn nothing.
Payouts.
Paid in SOL, sent by a person, provable on chain.
- Accrues on approval. Each approved session adds its amount to what you are owed. You can see it on your page.
- Operator-sent. An operator reviews the owed list and clicks send. The treasury sends a plain SOL transfer to your wallet. Nothing pays automatically.
- Ledger first. A payout row is written before the transaction is sent, so a retry never pays twice.
- Capped. Every transfer is capped per payout and per day, and sending only works when the server has money switched on.
- Proof. Each payout stores its transaction signature, shown on your page with a Solscan link.
Bounties.
Specific sessions the corpus is short on. Matching one swaps in a higher rate and adds a bonus.
| Bounty | Rate | Length | Needs |
|---|---|---|---|
| Narrated StonkFun launch, first 10 minutes | 0.006 SOL/min | 10 to 30 min | Narration, Fills |
| An xStock swing trade with the exit explained | 0.005 SOL/min | 5 to 30 min | Narration, Fills |
| A losing trade, explained | 0.005 SOL/min | 3 to 30 min | Narration, Fills |
| 60 min session, no edits | 0.003 SOL/min | 50 to 60 min | Footage only |
| Sniping a fresh LaunchLab coin | 0.005 SOL/min | 3 to 20 min | Fills |
| Chart read before entry | 0.004 SOL/min | 3 to 20 min | Narration |
| Copy-trading a wallet | 0.004 SOL/min | 5 to 45 min | Fills |
- Rate
- 0.006 SOL/min
- Length
- 10 to 30 min
- Needs
- Narration, Fills
- Rate
- 0.005 SOL/min
- Length
- 5 to 30 min
- Needs
- Narration, Fills
- Rate
- 0.005 SOL/min
- Length
- 3 to 30 min
- Needs
- Narration, Fills
- Rate
- 0.003 SOL/min
- Length
- 50 to 60 min
- Needs
- Footage only
- Rate
- 0.005 SOL/min
- Length
- 3 to 20 min
- Needs
- Fills
- Rate
- 0.004 SOL/min
- Length
- 3 to 20 min
- Needs
- Narration
- Rate
- 0.004 SOL/min
- Length
- 5 to 45 min
- Needs
- Fills
Each bounty has a fixed number of spots. Progress counts on the bounty board come straight from submitted and approved sessions.
For labs.
A corpus of real trading sessions, joined across four datasets by session id.
| Dataset | Unit | Fields | Status |
|---|---|---|---|
| Screen sessions | sessions | 7 | Collecting |
| Narrated sessions | sessions | 5 | Collecting |
| Wallet tape | executions | 9 | Collecting |
| Decision labels | labeled sessions | 6 | Collecting |
- Unit
- sessions
- Fields
- 7
- Status
- Collecting
- Unit
- sessions
- Fields
- 5
- Status
- Collecting
- Unit
- executions
- Fields
- 9
- Status
- Collecting
- Unit
- labeled sessions
- Fields
- 6
- Status
- Collecting
Licenses come in 3 tiers: research, commercial, exclusive. All are quoted per request. Schemas, sample records and the request form are on the data page.
Buyer API.
Public, read-only JSON for anyone sizing the corpus. No key required. Dataset delivery itself is arranged after a license is signed.
GET/api/stats
Corpus totals and per-dataset counts, computed from the database and cached for about a minute.
curl https://replay.fan/api/stats{
"sessions": number, // all submitted sessions
"approved": number,
"pending": number,
"contributors": number,
"hoursRecorded": number,
"approvedHours": number,
"narratedSessions": number,
"fills": number, // verified on-chain executions
"linkedWallets": number,
"owedSol": number,
"paidSol": number,
"sessions24h": number,
"datasets": { [slug]: { "items": number, "hours": number } },
"updatedAt": string
}GET/api/bounties
Every bounty with live progress. Use it to see what the corpus is collecting right now.
curl https://replay.fan/api/bounties{
"bounties": [{
"slug": string, "title": string, "brief": string,
"requirements": string[], "ratePerMinSol": number,
"minMinutes": number, "maxMinutes": number, "spots": number,
"narrationRequired": boolean, "fillsRequired": boolean,
"venues": string[], "tags": string[], "dataset": string,
"status": "open" | "closed"
}],
"progress": { [slug]: { "spots": number, "submitted": number, "approved": number } }
}GET/api/leaderboard
Contributors ranked by approved hours and SOL earned. Wallets only, no other identity.
curl https://replay.fan/api/leaderboard{
"rows": [{
"rank": number, "wallet": string, "short": string,
"approvedSessions": number, "approvedHours": number,
"earnedSol": number, "paidSol": number
}]
}GET/api/config
Live site settings, including the $REPLAY contract once it is set.
curl https://replay.fan/api/config{
"tokenMint": string | null,
"xHandle": string | null,
"updatedAt": string | null
}POST/api/inquiries
Request access to the corpus. Rate limited per network. Errors return { error, message, fields } with an HTTP status.
curl -X POST https://replay.fan/api/inquiries \
-H "Content-Type: application/json" \
-d '{
"name": "Ada Example",
"email": "ada@lab.example",
"org": "Example Lab",
"role": "Research engineer",
"useCase": "Pretraining a screen-to-action model on trading UIs",
"datasets": ["screen-sessions", "wallet-tape"],
"budget": "unsure"
}'{ "ok": true, "id": string }$REPLAY.
The token that funds the treasury that pays traders.
- Launch. $REPLAY launches on StonkFun, which runs on Raydium LaunchLab.
- Creator fees. StonkFun forwards the creator share of trading fees as SOL to the creator wallet. That SOL goes to the Replay treasury and pays approved sessions.
- Licensing. Revenue from labs licensing the corpus goes to the same treasury.
- No promises. Holding the token does not entitle you to payouts. Payouts are for approved sessions only.
FAQ.
What exactly gets recorded?
Only what you share. The studio asks your browser for a screen, window or tab, plus your webcam and mic if you turn them on. Everything is composited on your machine and recorded locally. Nothing uploads until you review the take and press submit.
How does redaction work?
Draw black boxes over anything private: balances, seed phrases, DMs, other tabs. The boxes are painted into the video frames before the recorder sees them, so the hidden pixels never exist in the file that leaves your browser.
Why link a wallet?
You sign a message that proves you own it and states what is shared. We pull that wallet's swaps through Helius and attach the ones inside your session window as verified fills. Sessions with fills earn a bonus and are worth more to labs. You can unlink at any time.
How much does a session pay?
Base rate is 0.002 SOL per approved minute, scaled by the reviewer's score (0.5x for a 1, up to 1.5x for a 5). Narration adds 25%, verified fills add 25%, and matching a bounty swaps in its rate plus 10%. One session caps at 1 SOL.
Where does the SOL come from?
The Replay treasury. It is funded by $REPLAY creator fees, which StonkFun forwards as SOL to the creator wallet, and by data licensing revenue. An operator sends each payout by hand after review. Nothing pays automatically.
What gets a session rejected?
No trading on screen, unreadable footage, someone else's account, leaked secrets that should have been redacted, or footage that is not yours. Rejections come with a reviewer note so you know what to fix.
Limits?
Studio sessions run up to 60 minutes. Uploads take mp4, webm or mov up to 2 GB and 2 hours. Minimum length is 30 seconds.
Does it work on my phone?
Screen recording needs a desktop browser: Chrome, Edge, Brave, Arc or Firefox. Mobile browsers do not expose screen capture, so on a phone you can upload a recording you made with the OS screen recorder instead.
Skip to content