Skip to content

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.

  1. 1
    Record
    Open 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.
  2. 2
    Review
    A 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.
  3. 3
    Get paid
    Approved 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.
  4. 4
    Labs train
    Consented, 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.

StonkFunpump.funAxiomPhotonJupiterxStocksGMGNBullXRaydiumMeteoraOther

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.

  1. 1
    Sign in
    Connect a Solana wallet and sign a one-time login message. This sets a session cookie, it does not send a transaction.
  2. 2
    Link for fills
    Sign a consent message that names the wallet and states what is shared: its swap history while it stays linked. Signing proves you own it.
  3. 3
    Sync
    We pull the wallet's swaps through Helius and normalize each one: time, side, token, size, SOL and USD value, venue, signature.
  4. 4
    Attach
    Swaps 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.

earning
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
  • 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.

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.

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.

request
curl https://replay.fan/api/stats
response
{
  "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.

request
curl https://replay.fan/api/bounties
response
{
  "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.

request
curl https://replay.fan/api/leaderboard
response
{
  "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.

request
curl https://replay.fan/api/config
response
{
  "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.

request
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"
  }'
response
{ "ok": true, "id": string }

$REPLAY.

The token that funds the treasury that pays traders.

$REPLAY
Loading contract…
  • 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.