v0.1 custodial demo. Tiny amounts only. USDC on Base, USDG on X Layer. Stripe is sandbox. Not regulated escrow, not a money transmitter, not insured.

settle.

v0.1 · note
Ronak Daya · June 2, 2026
settle.ronakdaya.com

Agentic commerce is here. I won't spend time arguing why, since there's plenty written on that already. What I couldn't find was a clean way to pay for work: commit the money upfront, check whether the work actually happened, then release it or send it back. So I built the smallest version of that I could run. It's called Settle, it's live, and it's small: settle.ronakdaya.com.

x402 tells agents how to pay. Settle tells them when payment is allowed to finalize.
settle.ronakdaya.com home page
settle.ronakdaya.comhome · v0.1

01 How I got here

After I left Paxos I spent a while tinkering, running flows across the primitives that make agentic payments work today: x402, Cloudflare Workers, stablecoins (the part I know best), MPP, AP2. I wanted to see where the rails are solid and where they aren't.

One thing kept nagging at me. Almost everything is built around instant payment: agent asks, agent pays, agent gets the thing. But work usually takes time, and it needs verifying before money should move. The instant model has nowhere to hold that gap.

Escrow is the obvious answer, and it mostly doesn't fit. On-chain escrow is good at on-chain proofs but blind to an HTTP check, a merged PR, or a person saying "done." Off-chain escrow handles the humans but settles slowly, shows you little, and isn't all that reliable. I wanted one contract object whose condition could be any of those, and that still lands in the same handful of end states either way.

So I built a small version to fix it: Claude to run the workflow, Claude Design for the brand and UX, Codex for the code. It's live. Here's what it does.

02 What it does

A contract has six fields: client, provider, amount, deadline, condition, fallback. The client commits funds upfront. The funds sit held while the work happens. Something checks the condition. The money then releases to the provider or returns to the client. Every transition fires a signed webhook, and you can rebuild the whole path from that stream, so nothing about how a contract reached a state is hidden.

01pending_fundingContract created.
02heldFunds custodied.
03condition_metVerifier passed.
04settlement_pendingPayout submitted.
05settledReceipt confirmed.
state machine4 terminal: settled · refunded · expired · disputed

Conditions in v0.1 are kept simple: api_response, github_pr_merged, file_delivered, manual. Here's a real contract that walked the whole path: funded, verified, paid out, settled, with real transactions on both ends.

settled contract detail page
stl_82ad7a81-c9a1-48a0-8363-06ca6a271b111.00 USDC · settled

03 What it is, and what it isn't

It's a custodial demo for tiny amounts. Both stablecoin rails run the full loop end to end (create, fund, verify, pay out on-chain, settle), and each has done it with real, small funds.

Base USDClive and tested · funding and payout
X Layer USDGlive and tested · funding and payout
HMAC webhookslive on every transition
Agent discovery/skill.md · /openapi.json · /.well-known/*

And here's what it isn't, so nothing reads as hidden:

Stripe livecard payments are sandbox only
Off-rampno fiat off-ramp
ed25519 webhooksHMAC today, ed25519 next
Non-custodialfunds sit in a personal vault
Dashboardno UI for non-developer payers
Compliancea production version needs a different path

04 Tell me where it's wrong

I'd like to hear from people building agent tools, paid APIs, bounty flows, or small freelance handoffs. Run a tiny contract and tell me where the shape breaks. The things I'm unsure about:

  • Does the contract object (client, provider, amount, deadline, condition, fallback) cover your case, or is there a field missing?
  • Which condition would actually pull you in: API response, GitHub PR, file delivery, or manual?
  • Is /skill.md enough for your agent to integrate in one shot, or did it leave you guessing?
  • Where does the payout feel too manual, and where does it feel too magical to trust?

The agent-friendly way in is one line: curl -fsSL settle.ronakdaya.com/skill.md | claude. If you'd rather read first, the examples and recipes have copy-paste contracts for each condition type. If something breaks, and it will, reply wherever you found this or email me at hi@ronakdaya.com with the part that broke.

This is v0.1 and things will be wrong, which is why it's out now rather than later. A write-up of how it was built, including the Claude and Codex workflow and the reusable skills behind it, is coming next.

Ronak

About. I'm Ronak, a product & GM in Brooklyn, by way of Paxos, Block, Coinbase, and Deutsche Bank. I'm building a few small things in public this year and writing up what I learn as I go. Settle is one of them. More at ronakdaya.com.
v0.1 · june 2026