Skip to content

Verifying what you got, not just paying for it #110

Description

@stillmarcus24

purl makes the payment side of a 402 flow a one-command test — request, sign, retry, done. There's no equivalent for the other half of that transaction: after the retried request succeeds and the resource comes back, whether the resource itself is what it claimed to be. We've been running a live check for that on Base mainnet and it seemed relevant to flag here given purl is where a lot of people's first real x402 request happens.

How it works: a claim gets written into a signed, hash-chained receipt before we know how it resolves. Resolution runs against a source neither side controls — a merged GitHub PR, a settled Kalshi market, a raw HTTP probe — cited by name in the receipt. Real capital backs every verdict: a $10 USDC bond, $1 slashable per verdict a counterparty proves wrong. A dispute is POST /dispute with the receipt hash plus counter-evidence, resolved by an independent re-check against that same source — we don't get to rule on our own disputes. Bond balance and slash history are open at /notary/bond.

Not asking for anything specific to change in purl — just noting that "pay for it" and "verify what you got" are two different problems, and the second one doesn't have an equivalent one-command tool yet. If a verification step ever becomes something purl or the machine-payments samples want to demonstrate, happy to help build it.

Real settlement, not simulated: $0.10 on Base mainnet, tx 0x8a9f.... Contract 0xA3a05818d4051BFa759Fb7D936b57C072e4E0Caf is public.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions