DevnetData labelling, settled on Solana

Human judgment, measured and paid on‑chain.

AI teams fund a campaign into escrow. People label the data, other people check it, and every accepted answer is paid from a payout batch the team approves. Nobody works on a promise.

  • Money held in a program vault
  • Sign in with your wallet
  • Paid in any classic SPL token
Campaign Example dataOpen
Street furniture detection v2
Northlake Vision Lab · bounding boxes · 2 reviewers per task
Tasks done3,184 / 5,000
In the vault14,253.75 TEST
Payout batch #741 h left to decide
Trainers 386.00Reviewers 309.00Treasury 144.75Buyback 144.75
386 accepted · 26 not accepted984.50 TEST

If you do nothing, the batch is approved automatically on 8 Oct, 14:00 UTC.

Reject…Approve 984.50 TEST
40/30/15/15

Trainer, reviewer, treasury and buyback shares of every accepted task.

ProtocolConfig *_bps, read live; sum 10,000
72h

Default window to approve or reject a payout batch. Silence approves it when the window ends.

approvalWindowSecs 259,200; product default
2of 3

Independent reviewers per task by default; a tie adds one more review.

reviewersPerTask 1..3; majority decides
4

Task types at launch: image classes, bounding boxes, pairwise comparison, free text.

taskType, 4 values, read live
One protocol, three seats

Everyone at the table answers to the same ledger.

Organizations pay only for work that passes review. Trainers and reviewers are paid from money that was locked before they started. ZONEM AI prepares every transaction; your wallet signs it.

Organizations

Price a task, import a dataset, fund it once. Watch work arrive, then approve what you pay for.

  1. Create a campaign and see the priceYou set the trainer reward; the rest is derived
  2. Import JSONL or CSV with imagesBad lines are listed by number
  3. Fund the vault from your walletOne signature; unspent money comes back
  4. Approve or reject each payout batchWith a sample of the work in front of you
Start a campaign

Trainers

AI learns from people. Pick a campaign, take a task, answer it in a player built for the job, and get paid when reviewers agree.

  1. Browse funded campaignsEvery reward is already in a vault
  2. Take a task, with a timerYour draft is saved as you work
  3. Submit when the check turns greenYou see a problem before you press Submit
  4. Get paid to your walletSent automatically; you can also claim yourself
Find paid tasks

Reviewers

Judge the work, not the worker. Rate each submission and say why. You are paid when your call matches the final verdict, including when you reject junk.

  1. Ask for reviewer accessAn administrator approves it
  2. Take the oldest waiting submissionNever your own work
  3. Approve or reject, rate 1 to 5, add a noteAll from the keyboard
  4. See where you agreed with the othersAgreement decides what you are paid
Become a reviewer

Escrow, not promises

Each task's deposit sits in a program vault before a trainer can see it. Close the campaign and the remainder comes back.

Payout batches you can audit

Every batch publishes the list of work it pays for, and Solana records a fingerprint of it.

Reject with a reason

Exclude submissions from a batch inside its window. The reason and the excluded set are recorded on-chain.

Results with receipts

Answers stay sealed until a batch is approved. Exports include what you need to check each answer against the public record.

Sign in with your wallet

No passwords. A readable message bound to this site, a single-use code, and no transaction or fee.

Four players, one standard

Image classes, boxes, comparisons and free text. Every player works from the keyboard and checks the answer before it is sent.

For trainers

A player for every kind of judgment.

The image sits on a dark stage that never changes with the theme, so its colours stay true. Boxes snap to whole pixels, the crosshair shows where you are in the image, and the answer is checked before you send it.

zonem.ai/train/lease/7f3c…a91e
Example data
Marketplace/Street furniture detection v2
Pays 1.00 TEST when accepted24:18Give back?
Labels · max 20 boxes
1Traffic sign1
2Traffic light1
3Bollard2
4Bench1
5Bin0

Press a number to pick the label the next box gets. With a box selected, the same key relabels it.

DrawB
SelectV
PanH
Undo⌘Z
street_0417.jpg1280 × 960
cursor 668, 776·drawing 34 × 84·5 of 20 boxes·100%
Boxes 5 of 20
  • 1Traffic sign#1x 250 · y 350 · 100 × 104
  • 2Traffic light#2x 898 · y 244 · 64 × 142
  • 3Bollard#3x 554 · y 692 · 34 × 84
  • 4Bench#4x 1012 · y 676 · 186 × 98
  • 3Bollard drawing#5x 634 · y 692 · 34 × 84
Instructions I
  • Box every listed object at least half visible.
  • Boxes hug the object; include the pole for signs, not for lights.
  • One box per bollard, even when they touch.
Answer check
Ready to submit: 5 boxes, all inside 1280 × 960zonem:bounding_box:answer:v1 · draft saved 14:42:31
SkipSubmit 5 boxes ⌘↵
For reviewers

Judge the work, not the worker.

The task and the trainer's answer appear in the same player, read-only, with the trainer's pick marked. Decide, rate and say why without leaving the keyboard. Your note reaches the trainer once the verdict is final.

zonem.ai/review/lease/c21d…07b4
Example data
Review/Support replies: which answer helps more?Pairwise
Paid when your call matches the verdict08:41
Criteria: Which reply resolves the customer's request more completely and politely? Ties are allowed.
Customer messageMy order #4471 arrived with a cracked lid. I would like a replacement, not a refund. Can you help?
AReply A Trainer's pick42 words
I am sorry the lid arrived cracked. I have sent a replacement for order #4471 at no cost. It ships within 2 business days, you do not need to return the damaged one, and a tracking link will reach you by email.
BReply B30 words
We apologize for the inconvenience. Please return the item using the prepaid label and we will process a refund within 5 to 7 business days once it reaches our warehouse.
Trainer's answerChoice A is betterConfidence 4 / 5Reason: “A gives the replacement the customer asked for; B offers a refund instead.”
Your decision
Approve YReject N
Rating keys 1 to 5
12345
Note required
Correct: A meets the request (replacement, no return needed). The stated reason is accurate; confidence could be 5.
Shown to the trainer once the verdict is final115 / 2,000
Ready: decision, rating and note are set
Submit review ⌘↵
Earnings and states

Every amount has a state. Every error has a next step.

Earnings are shown state by state, in the order money moves, never as one unexplained total. When something goes wrong the screen says what happened in plain words, what to do next, and gives a request id support can trace.

zonem.ai/earnings
Example data

Earnings

TEST · one row per token you have earned in
In review
12
submissions, no amount yet
Accepted, waiting for a batch
18.00TEST
usually batched within a day
On hold
0.00TEST
only after a rejection
Awaiting approval
9.00TEST
batch #7 · 41 h left
Ready to claim
4.00TEST
Claim now
Paid
212.00TEST
to 9Wq2…Lm4T
Payouts are sent to your wallet automatically, usually within minutes. Claim now if you would rather not wait.
Error · lease
Someone just took the last task in this campaign.

Nothing was lost; you had not started it. Other campaigns still have open tasks.

Back to the marketplaceTry again
no_task_available·request 7c1e0a9b42d1f6e3 Copy
Empty · marketplace
No open tasks right now.

New campaigns appear here as organizations fund them.

Check my earnings
Loading · same shape as the content
For organizations

Every task and every unit of money, accounted for.

Progress, vault and spend are read from the chain. When a payout batch needs you, it waits at the top of the page with its deadline, its arithmetic, a sample of the work, and what happens if you do nothing.

zonem.ai/org/northlake/campaigns/street-furniture-v2
Example data
Campaigns/Street furniture detection v2

Street furniture detection v2

Open
Bounding boxes · 5 labels · up to 20 boxes · 2 reviewers per taskDeadline 14 Nov 2026 (39 days)Funding wallet 7xKX…9fQe
PauseAdd tasksResultsComplete…

Payout batch #7 is waiting for your approval

412 reviewed submissions: 386 accepted, 26 not accepted. If you do nothing, it is approved automatically when the window ends. Reject it only if the work does not meet your instructions.

Window closes in41 h 12 m8 Oct, 14:00 UTC
Accepted386
Not accepted26
Total to release984.50TEST
Payout leaves547
Trainers386 × 1.000000386.00
Reviewers412 × 0.750000309.00
Treasury386 × 0.375000144.75
Buyback386 × 0.375000144.75
Grosspaid from the vault984.50
Your wallet signs one transaction. No funds leave escrow until it confirms.Reject with reason…Review and approve 984.50 TEST
Tasks done
3,184/ 5,000
63.7% · 397 in review
Acceptance
89.5%
3,184 of 3,558 final
In the vaultTEST
14,253.75
of 19,872.00 deposited
Owed to claimsTEST
244.25
approved, not yet claimed

Tasks by status

5,000 tasks · 4,968 funded
Done3,184
In review397
Being labelled86
Open1,149
Waiting for funds32Fund 32 tasks
On hold0
Out of attempts152
Void0
Submissions by verdictView as table
Accepted3,184
In review397
Not accepted374
7,812 reviews written

Spend

TEST
Settled5,862.50
Awaiting your approval984.50
On hold after a rejection0.00
Final, not yet in a batch1,393.50
Committed8,240.50
You rejected batch #4 on 24 Sep and excluded 12 submissions. When the dispute window passed, the other 108 were paid in batch #5.
Per task: trainer 1.00 · reviewer 0.75 · treasury 0.375 · buyback 0.375 · deposit 4.00

Payout batches

7 batches · TEST · decide within 72 h of a proposal
BatchStateAcceptedNot acceptedGrossWhen
#7Needs your approval38626984.50auto-approves 8 Oct 14:00Review
#6Claims open452411,160.75claims until 2 JanOpen
#5Claims open498471,280.25claims until 27 DecOpen
#4Released after rejection120912 excludedrejected 24 SepReason
Approve payout batch #7

984.50 TEST from the campaign vault · signer 7xKX…9fQe, the connected wallet

Example data
  1. PreparedBuilt and checked by ZONEM AI
    built
  2. 2
    Approve in your walletYour wallet shows one transaction to sign
    built
  3. 3
    Sending to SolanaRelayed for you; no fee prompt from this page
    submitted
  4. 4
    Confirmed, waiting for finalityUsually under a minute
    confirmed
  5. 5
    DoneThe batch shows Claims open
    finalized
If it expires, nothing is charged and you can build it again.Rebuild
One word for every state
Example data

Each value has one label, one tone and one icon, everywhere it appears.

Batch
PreparingNeeds your approvalOn holdIn disputeReleased after rejectionClaims openClaims closedWithdrawn
Transaction
Waiting for your walletSentConfirmedDoneFailedExpired
Verdict
In reviewAcceptedNot accepted
Campaign
DraftFundingOpenPausedWrapping upClosedCancelled
Pricing

You set one number.

Enter what a trainer earns for an accepted task. The protocol derives the reviewer, treasury and buyback shares from its basis points, and reserves enough for the rejections you allow. Work that is not accepted pays reviewers only; you never pay the trainer share or fees on it.

Worked example from the protocol design: 1.00 per task in the campaign's token, 40/30/15/15, two allowed rejections. Unspent deposit is refunded when the campaign closes. Shares read live from the protocol.

Example dataTrainer reward per accepted task
1.000000TEST
Trainer4,000 bps1.000000
Reviewers, shared3,000 bps0.750000
Treasury1,500 bps0.375000
Buyback1,500 bps0.375000
Price per accepted task2.500000
Reserve for 2 rejections × 0.751.500000
Deposit per task4.000000
5,000 tasks20,000.00 TEST

Put your next dataset in front of people who are paid to get it right.