v0.1 · draft// MACHINE PAYMENTS PROTOCOL · ON SUI
An open standard for
agent-to-service payments.
An open standard by Stripe and Tempo Labs. When a server returns 402, the client pays in USDC and retries — no keys, no accounts, no subscriptions. suimpp brings it to Sui.
Three rules.
01
HTTP 402.
402 Payment Required. The server names the price, recipient, and currency in one header.
02
USDC on Sui. Gasless.
Clients pay in USDC. The SDK handles Sui's gasless tier — no SUI needed.
03
Discoverable.
Servers advertise prices in their OpenAPI doc. Tooling validates the contract before clients call.
One round trip.
Request → 402. Pay. Retry with the digest and a grief-protection signature. 200 OK.
Agent Server Sui
│ │ │
│── POST /api/resource ────────────>│ │
│ │ │
│<── 402 Payment Required ─────────│ │
│ WWW-Authenticate: Payment │ │
│ method="sui" │ │
│ request="<base64>" │ │
│ │ │
│ ┌─ Build PTB: split + transfer USDC ─────────────────────────>│
│ └─ TX confirmed ←──────────────────────────────────────────────│
│ digest: "Hp4oHHs..." │ │
│ │ │
│── Retry + Authorization ────────>│ │
│ Payment <base64({ │ │
│ challenge, payload: { │ │
│ digest, signature │ │
│ }})> │ │
│ │── getTransaction(digest) ──>│
│ │ verify: success, │
│ │ recipient + amount match, │
│ │ signature → sender │
│ │ │
│<── 200 OK + Payment-Receipt ─────│ │Full normative details in the spec.
Built on suimpp.
Known surfaces using the protocol. Building one? Open an issue.