Essay
The settlement points at the proof
I ran a $1 task through Taskmarket, where someone other than the buyer or worker decides whether the work passed. That decision ended up carrying a fingerprint of the signed Spoolis receipt behind it.
I went looking for a real market where a judgment about work already decides whether money moves.
Not our sandbox. Not a demo where we control the whole workflow. A third-party system where someone else's rules decide whether work passed and whether money can eventually move.
Taskmarket turned out to work a little differently from most marketplaces I've looked at. The person who posts the task doesn't have to be the person who decides whether the work passed. You can assign someone else to judge it before the worker even starts.
It's an agent task marketplace built by the daydreams team, running on Base with USDC held in escrow while the work happens. The requester posts a task and funds it. A worker claims it and submits. The evaluator is picked before the worker starts and can't be swapped later. They earn a fee and deliver the verdict: approve, reject, or partial, with a score, a confidence, per-worker awards, and one more optional field, a 32-byte evidence hash. The verdict doesn't settle the task by itself. There's an appeal window, and once it expires, anyone can call a finalize step that actually moves the money.
That optional field is why I'm writing this.
What I ran
A small, deliberately self-contained experiment. I controlled all three roles using separate wallets: requester, worker, and evaluator. It proves the plug fits, not that anyone wants this. Nobody hired us; we hired ourselves.
- The requester created a private $1 task: deliver 10 B2B SaaS company records, each with a company name, website, and pricing URL, no duplicate websites, every URL well formed. The acceptance criteria were written into the task description, along with exactly how they'd be judged.
- The worker claimed it and submitted a JSON file. Taskmarket committed a hash of the submission on-chain. I recomputed it locally from the raw file and it matched. Their tamper evidence works.
- The evaluator didn't eyeball anything. It sent the delivered rows to the Spoolis sandbox, which ran the four agreed checks: 10 of 10 records accepted, $1.00 of $1.00 earned, and a signed Outcome Receipt at a public URL showing what was checked, what passed, and what was earned.
- The evaluator submitted its on-chain verdict: approve, with the evidence hash set to a fingerprint of that receipt JSON.
- After the appeal window, I called Taskmarket's permissionless finalize step and settlement completed.
The payment can point all the way back to the work.
- 1 · The delivered file
taskmarket-deliverable.json · 10 records - 2 · Taskmarket commits it on-chain
keccak256 0x29ee5d37… = local recompute ✓ - 3 · Spoolis verifies the agreement
signed receipt · spoolis.com/r/ocr_4da1f60a… - 4 · The verdict includes the receipt hash
evidence_hash keccak256 0x1911e9a2… - 5 · The settlement, on Base, forever
tx 0xe8616988… · approve · escrow released
What the hash actually gives you
Taskmarket stores 32 bytes alongside the verdict. Think of it like a fingerprint of the receipt.
The fingerprint doesn't tell you where the receipt lives. But if someone gives you the receipt later, you can hash it yourself and prove byte for byte that it's exactly the document the evaluator committed to before settlement. And the receipt itself is signed, so you don't have to trust my copy of it either.
So the settlement points at the proof in the only way a hash can: it doesn't host the evidence, and it can't fetch it for you, but nobody can swap in a different receipt later without the hash giving them away. Whoever holds the receipt can prove it's the one that justified the money moving.
Why this matters
I wrote about the general version of this gap in payments know when money moved, not whether it was earned. Most marketplaces own the whole loop. The platform decides what counts as done, the platform moves the money, and the record of why usually lives inside the platform, if it exists at all.
Judgment is a role, not a property of the platform.
What caught my attention is that Taskmarket separates doing the work from judging the work. The worker does the work. Someone else decides whether it passed. And the marketplace moves money based on that answer. The judge can be whoever the parties trust: a person, a group, or software checking explicit rules. Taskmarket doesn't really care how that decision gets made. It cares about the verdict that comes back.
The protocol did not need to know that Spoolis existed.
Taskmarket kept its own way of deciding what happens. Spoolis gave the evaluator a signed record of what passed and what was earned, and Taskmarket let the verdict include a fingerprint of that record.
The numbers look wrong until you see the boundary
At first glance the numbers look like a bug. The Outcome says $1.00 earned, but the worker's award is $0.95.
They're measuring different things. Spoolis records what the work earned under the agreement: 10 of 10 records accepted, so the full dollar. Separately, Taskmarket applies its own rules to the $1 escrow. The evaluator's 5% fee comes out of the escrow, so the worker's gross award is $0.95. At payout, Taskmarket's 7.5% platform fee comes out of the worker's award, so the worker actually received $0.878750.
One dollar of escrow became roughly $0.88 to the worker, $0.05 to the evaluator, and $0.07 to the platform. All of it visible on-chain, and none of it in conflict with the receipt. Spoolis records what was earned. Taskmarket decides how settlement is allocated. Keeping those as separate facts, each with its own record, is the whole design.
A verdict is more useful when the proof travels with it.
verdict → approvewhy → opaqueAn opinion. You trust the evaluator or you don't.
verdict → approveevidence_hash → 0x1911e9a2…Points to the signed Outcome behind it: what was checked, what passed, what was earned.
10 of 10 records accepted against the agreement.
| worker award | $0.95 |
|---|---|
| evaluator fee | $0.05 |
| escrow | $1.00 |
What I learned the hard way
- I initially tried to award the worker the full dollar and pay the evaluator on top. Taskmarket rejected the verdict: "Evaluation awards exceed task escrow." The evaluator's fee comes out of the escrow, so with a 5% evaluator fee on a $1 task the worker can receive at most $0.95. I couldn't find that documented anywhere, so now it's documented here.
- I assumed "unlisted" visibility meant hidden. It only hides a task from Taskmarket's own listings; everything stays readable on-chain. Their CLI help says this plainly, which I respect. I used private visibility with invited viewers instead.
- I assumed the verdict settled the task. It doesn't. There's a separate, permissionless finalize step after the appeal window, and the window runs from the verdict's on-chain timestamp, so my first finalize attempt bounced as too early.
- When I ran the canary,
taskmarket legal statusreported the legal bundle as a counsel-review draft with enforcement disabled, and the CLI wouldn't let me accept it. The platform runs anyway while it's in draft. We capped the experiment at a few dollars partly for that reason.
What this does not prove
- No one asked for this. All three roles were ours and the spend was ours. It proves the pieces can work together, not that anyone wants this yet.
- It doesn't prove Taskmarket needs Spoolis. Their evaluator setup works with any judge, and that generality is exactly what makes it good.
- The marketplace itself is early and small. What's interesting is how it's designed, not the volume.
One detail I'll admit to enjoying: the receipt from this walk is the first real use of a field we shipped the same day. A receipt can now say what decision it was used for, the same idea that drives outcome-gated workflows, and this one says: a payment, a Taskmarket escrow release. The verdict, the settlement, and the receipt all agree about what happened and why.
The part I keep coming back to
Taskmarket didn't have to outsource judgment to Spoolis for any of this to work.
It kept its evaluator. It kept the escrow. It kept its own rules for moving the money. Spoolis just gave the decision a signed record that someone else can check later.
Keep your judge. Standardize the Outcome.
That feels a lot more interesting to me than asking every marketplace to replace the way it already decides whether work passed.
Notes
- Taskmarket protocol docs: https://docs.taskmarket.dev
- Task: TSK-1BMHV35J, claim mode, private, $1.00 USDC escrow, evaluator assigned at creation with a 500 bps fee, on Base.
- Verdict tx: 0xe86169887d1d22399312a8b56dd8e2a85081b48223eef44075207af88157cba6. Evidence hash 0x1911e9a24baac20fd6a4dfcd4513cd7138c1aaf60cdecfd5708f5983240034c4 is the keccak256 of the hosted receipt JSON.
- Receipt: https://spoolis.com/r/ocr_4da1f60a37bddd9df0ca0d56 (10/10 accepted, $1.00 earned, four deterministic checks).
- Submission integrity: the submission manifest's keccak256 and sha256 both matched a local recomputation of the delivered file.
- Settlement finalized (permissionless finalize-verdict) in tx 0x939e7e4e448052dd37ed5a960a6e8bcc97745b09d007077754817a287751cfc9. Worker received $0.878750 ($0.95 award minus the 7.5% platform fee); evaluator fee $0.05; task status completed.
- We used Taskmarket as an ordinary self-serve participant. No partnership, no contact beforehand, no endorsement implied in either direction.
Related reading: the workflow doesn't continue · two services, no accounts, one signed Outcome · pay per verified unit