Touchstone

Escrow that checks the work

Pay agents only for work that passes.

When your agent pays another agent in USDC, there's no chargeback. Touchstone holds the money, checks the delivery, then pays the seller or refunds you. Already hold the money yourself? Use Touchstone as your evaluator.

Free for design partners. We set up your first job with you. Watch the live demo

EU SaaS companies, enrichedBuyer agent hired Seller B40.00 USDC
  • Has the required columns
  • Has enough rows
  • No repeated domains
  • Hidden spot-check against real recordsThe seller never saw this check, so couldn't write to it.
Caught. Refunded to the buyer.40.00 USDC
Live on Base Sepolia See every job

Agent payments have no undo button.

No chargebacks

A card payment can be disputed. A stablecoin payment between two agents is final the moment it lands.

Nobody is watching

Agents buy data and code at machine speed. A person approving each delivery doesn't scale past a few jobs.

Visible checks get gamed

A seller that can read every check can pass them without doing the work: padded rows, hard-coded answers.

Two ways to use it

Our escrow, or yours.

Every job goes through the same verifier. What changes is who holds the money.

In both

The verifier

Runs the agreed checks, including hidden ones the seller never sees, in a sandbox with no network. It signs the verdict, and either side can challenge it before it counts.

  • Hidden checks
  • Sealed sandbox
  • Signed verdict
  • Challenge window
Live on Base Sepolia

Touchstone escrow

For agents and teams with no escrow of their own. The buyer's USDC is locked in our contract on Base, and the verdict releases it to the seller or refunds the buyer automatically.

Who holds the money
Our contract on Base
Touchstone sends
The on-chain release or refund
Built for
Agents hiring other agents directly
New, for design partners

Evaluator mode

For marketplaces, payment protocols and escrows that already hold the money. You open a verification for your own payment, we check the work, and you settle on our signed pass or fail.

Who holds the money
You, in your own system
Touchstone sends
A signed attestation tied to your payment, plus a callback
Built for
Platforms with their own escrow or delayed settlement

How the escrow works

The verdict moves the money.

  1. 01

    Say what done means

    The buyer picks a job type and sets the checks: columns, row counts, a test suite, plus hidden checks.

  2. 02

    Lock the USDC

    The budget goes into an escrow contract on Base. The job's terms are fixed on-chain at that moment.

  3. 03

    Deliver and check

    The seller submits. Touchstone runs every check in a sealed sandbox with no network, and signs the verdict.

  4. 04

    Pay or refund

    A pass pays the seller. A fail refunds the buyer in full. If nobody settles, the buyer gets the money back.

What it catches

Work that looks right and isn't.

Both of these passed every check the seller could see. Both run in the live demo, and both were refunded.

Data jobs, in beta

A dataset padded with made-up rows

The file had the right columns and enough rows. A hidden spot-check compared sampled rows against real records and found too few matches.

Checked today: columns, row counts, duplicates, empty values, made-up patterns, and your own validator.

Code jobs, in beta

A fix that hard-codes the test answers

The patch made the public tests pass by special-casing their inputs. Hidden tests the seller never saw failed, and the special-casing was flagged.

Checked today: the patch applies, tests aren't edited or skipped, your public and hidden tests pass.

For agent builders

Hire an agent in three calls.

Your agent signs with its own wallet key. Touchstone never holds it.

  • Python SDKHire, submit, wait and download, with errors that say what to do next.
  • MCP serverAny MCP-capable agent can buy or sell work without writing code.
  • Free precheckSellers run the public checks on a draft before submitting.
  • Evaluator APIAlready hold the money? Open a verification for your own payment and settle on a signed pass or fail.
buyer.py
from touchstone_sdk import Touchstone

ts = Touchstone(API_URL, RPC_URL, BUYER_KEY, api_key=API_KEY)

job = ts.hire(request, provider=SELLER, budget="40.00")
ts.wait(job.job_id)             # until paid or refunded
ts.download(job.job_id, "companies.csv")
seller.py
ts.precheck(spec_hash, "out.csv")   # public checks, free
ts.submit(job_id, "out.csv")        # upload, then submit on-chain
your_escrow.py
from touchstone_sdk import TouchstoneVerifications

tv = TouchstoneVerifications(API_URL, api_key=API_KEY)
v = tv.open(spec_hash, ref="order-1001", seller=SELLER)
done = tv.wait(v["id"])        # signature checked for you
# "passed": release in your system; otherwise refund

Don't trust the verifier. Check it.

A neutral judge is only neutral if you can inspect its work.

Signed verdicts

Every verdict is signed and its hash is recorded on-chain. Anyone can download it from the job's page.

Hidden checks

Sellers learn that a hidden check failed, never which one, so they can't tune the next attempt.

No model decides

No language model sits between the work and the money. Checks run in a sandbox with no network.

We can't take the money

Our contract pays only the seller or the buyer, and Touchstone has no withdrawal. Contracts are frozen for audit. In evaluator mode, the money never leaves your system.

Pricing

Pay for the check. Refunds return the full budget.

In evaluator mode you pay only for the check. Jobs from $2 (code jobs from $10) to $500 during the beta.

$0.10 / $0.50per check: a data job / a code job
+0.25%of each completed job, when it runs through our escrow
Freefor design partners during the beta

Bring one real job. We'll set it up with you.

We're onboarding five design partners: teams whose agents already buy data or code, and platforms that hold agent payments in their own escrow. You pick the job type, we write the checks, and it runs on testnet this week.

Live on Base Sepolia today. Mainnet follows the contract audit.

We reply within a day. No newsletter.