Skip to content

[research] Survey: are we the only native-ETH agent-to-agent escrow? #49

@Pattermesh

Description

@Pattermesh

Question. Of the active agent-payment / agent-escrow projects, which (if any) ship a native-ETH escrow primitive — `createPayment{value:}` style, no ERC-20 dance, settles in plain ETH on any EVM chain?

Switchboard's `AgentEscrow.sol` does this (see scene 14 in the lab — `createPayment(reqId, payee, timeout, challenge){value: 0.05 ether}`). It's the cheapest, most universal primitive for AI agents that need to settle on-chain without dealing with token approvals, wrapped assets, or per-chain stablecoin contracts. We've been claiming "native ETH escrow" as a differentiator but we don't actually know if anyone else has shipped this. This issue is to find out.

What to look for

Survey the agent-payment space for projects that ship an on-chain escrow contract with a `payable` create-payment entry point and an off-chain agent flow. Specifically:

Question What we'd record
Does it take `msg.value` ETH directly (not ERC-20)? yes / no / wrap-required
Is it agent-targeted? (i.e. supports request-id / timeout / refund) yes / no
Is it deployed to mainnet / a real chain? yes (chain + address) / testnet only / no
Is it open source? repo URL
Is the design publicly documented? spec URL

Projects to start with

  • x402 (Coinbase) — HTTP-402 spec; their on-chain payments are USDC-only via SettlementContract last we checked. github.com/coinbase/x402
  • AP2 (Google A2A) — agent-payments spec; ships a JSON envelope, no escrow contract last we checked. google-a2a/a2a-x402
  • Circle Nanopayments — Circle's micropayment rail; USDC-only.
  • L2 Tempo / MPP — micropayment-pull on Lightning-style channels; not native ETH.
  • Reality.eth — escrow-style attestation primitives but for general claims, not agent payments specifically.
  • Kleros Escrow — generalized escrow with arbitration; ETH-supported but human-arbitrator-centric, not agent-targeted.
  • UMA Optimistic Oracle — same shape as Kleros; pricing data focus.
  • PolyMarket / Reality / Snapshot — not really in scope but worth a sanity check
  • Anything in the Lux / OP Stack agent ecosystem — RWA/agent escrow patterns

Deliverable

A markdown table in `docs/competitive-survey.md` (new file) covering each project:

```md

Project Native ETH? Agent-targeted? Mainnet? Repo Notes
switchboard yes yes testnet github.com/kcolbchain/switchboard refund + challenge period, PQ envelope WIP
coinbase/x402 no (USDC) yes yes (Base) github.com/coinbase/x402 settlement contract
...
```

Plus a one-paragraph positioning summary at the bottom: where is switchboard genuinely first / unique, and where are we one of N?

Why this matters

  • Honesty. If we keep calling native-ETH a differentiator and someone else shipped it first, we should know now, attribute correctly, and adjust positioning.
  • Marketing. If we genuinely are first, that's a story worth telling — landing page, blog post, talk at an event.
  • Roadmap signal. Where we're NOT first, that's a hint about which battles to skip. We may be better off doubling down on PQ envelope ([PQ-0] Meta: post-quantum signed agent-to-agent payments #33) or escrow-oracles (kcolbchain/escrow-oracles) where the field is sparser.

DoD

  • `docs/competitive-survey.md` lands in a PR with at least 8 projects surveyed
  • Each entry has a verified link (we click the repo, confirm the claim)
  • Positioning summary at the bottom — 1-2 paragraphs
  • Link from the README's "Comparison" table so it's discoverable
  • Date the survey (it'll go stale; we should resurvey every ~6 months)

Good for: contributors who like research / writing. Doesn't require code.

cc @abhicris

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions