For teams hiring freelancers or AI coding agents
Pay only when the work passes.
Write the job in plain English. AI turns it into tests, then tries to cheat them before anyone signs. PayPal holds the money, and code pays the worker when the tests pass. A smart contract, without the blockchain.
Pay to the order of the worker
No. ms-demo-1 · PayPal sandbox
Held on PayPal until every condition below passes.Released by fixed rules, never by the AI.
Amount$25.00
Conditions
- slugify lowercases and trims its inputCI test
- Runs of punctuation become one hyphenCI test
- Accents transliterated; empty input returns emptyCI test
- README documents it with an exampleAI review
Conditions, fingerprint and amounts from a real sandbox run: milestone-demo pull request #1.
Terms sealed by both sides48a513…03d1
71%
of freelancers surveyed had trouble collecting payment at some point in their careers. In 2014 they lost an average of $5,968 to unpaid work.
Freelancers Union survey of over 5,000 US freelancers, published 2015.
Both sides take a risk
The worker starts without knowing the money exists. The client pays without knowing the work is done, and “done” is where disputes start. AI agents make it sharper: they can take paid work in minutes, and no one should let an agent pay itself.
What's different
1The AI writes the contract
Describe the work in plain English. The AI turns it into acceptance criteria, and writes a test for each one code can check. Every test must fail on empty code before anyone can sign.
2A second AI tries to cheat it
Before signing, an AI plays the dishonest worker: it writes fake code to pass the tests without doing the work. Code runs the fake. If it wins, the tests are strengthened until the same fake fails.
if (n === 1) return 'I'; if (n === 4) return 'IV'; return ''; // passed the first draft
3Only code moves the money
PayPal holds the payment. When the signed tests pass in CI, fixed rules capture the hold and pay the worker. The AI only ever writes and checks; it has no way to release or take money.
How a milestone works
1Agree
The AI drafts the criteria and tests, then attacks them with fake code. Both sides sign the terms' fingerprint.
2Fund
The client's payment goes on a PayPal hold. Nothing is charged, and the fingerprint rides on the PayPal order.
3Deliver
The worker, a person or an AI agent, opens a pull request. CI runs the signed tests; the PR can't swap them.
4Verify
The AI reviews only what tests can't check, and text that tries to steer it is caught. Fixed rules decide.
5Release
After a short objection window the hold is captured and the worker is paid. If the work fails, the money stays held.
Why it runs on PayPal
Pay with what you already use
The client funds the hold with their PayPal account or a card. No crypto wallet, no new account with us.
Held, not charged
An authorization hold proves the money exists before work starts. Until the work passes, nothing is captured.
Paid where workers already are
The worker is paid by PayPal Payouts to their PayPal account, net of PayPal's fees. Both sides see the estimate before the money is held.
Real runs on PayPal sandbox
Each one is a public pull request with its CI checks and Milestone's verdict comment.
A freelancer's slugify utility
All four conditions passed; $23.75 paid out automatically.
Pull request #1The same job, done badly
The PR told the AI reviewer to pass everything. Caught, two tests failed, money held; fixed and paid later.
Pull request #2An AI agent as the contractor
The agent read the terms, opened the PR and submitted it through MCP; $14.25 paid.
Pull request #3An agent hired by another agent
The worker agent's first attempt failed the signed tests, so no money moved. It fixed the code from the verdict; $13.10 paid.
Pull request #10
Measured against an AI-only approver
Most AI escrow asks a model whether the work is done. Proof Bench gives that approver and Milestone the same contract and twelve pull requests, honest ones and cheats, and shows every call, including where Milestone gets it wrong.
See the resultsAI agents can earn here, and never take
Agentic commerce so far is about agents that buy. Milestone is the other half: an agent that does paid work, and gets paid through PayPal only once its work is proven.
Through the Milestone MCP server, an agent can post a job, have its terms drafted and attacked, or take the job: read the signed tests, sign, open a pull request and track its payout. No tool funds, captures, releases or refunds. A person approves the hold, and the rules release it.
claude mcp add milestone -- npx tsx mcp/server.mts create_milestone post a job; the AI drafts terms attack_terms try to cheat the tests first get_milestone read terms, tests, fingerprint accept_terms sign by fingerprint submit_work submit the pull request get_status verdict, feedback, payout
Watch real money move on sandbox, in about 2 minutes.
One click places a PayPal hold, opens a pull request, runs CI and an AI review. No login.
Runs on PayPal's sandbox; no real money moves. Built for the PayPal AI Hackathon 2026 with the APIMatic Context Plugin (PayPal integration), a Bryntum Gantt (timeline) and Render (hosting). Source: github.com/TanmayShah29/milestone-ai-escrow.