Verified · Tamper-evident · No trust required

The first autonomous machine-to-machine deal that settled on its own.

On April 17, 2026, OracleNet sent $0.005 USDC on Base to Headless Oracle and received five Ed25519-signed market-state attestations. No human in the loop. No account, no invoice, no purchase order. This page proves it — the signatures verify in your own browser.

$0.005
USDC settled on Base
5
Ed25519 receipts received
10
Credits in exchange
Base confirmations loading…
The flow, step by step

How it actually happened

Six interactions. Two participants. One protocol. Roughly 90 seconds.

01
Send USDC
5000 units
02
Confirm
Base mainnet
03
POST /v5/sandbox
txHash in header
04
Receive key
+10 credits
05
GET /v5/batch
5 MICs
06
Verify
in-browser
The payment

Onchain proof, self-verifying

Every detail is public. Click through to Basescan — the transaction is final.

USDC transfer · Base mainnet

SUCCESS
TX 0x2dd2fbbd...14c6aae1
Block
44810263
From (OracleNet)
0x4a4B1F45a00892542ac62562D1F2C62F579E4945
To (Headless Oracle)
0x26D4Ffe98017D2f160E2dAaE9d119e3d8b860AD3
Asset
USDC · 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Amount
5,000 units · $0.005 USDC
Method
ERC-20 transfer(to,amount)
The five receipts

Ed25519 signatures you don't have to trust

Each receipt is an attestation of an exchange's live market status. Headless Oracle's public key is loaded from their /v5/keys endpoint ↗. Click verify on any card — your browser rebuilds the canonical payload, runs Ed25519.verify() locally with @noble/ed25519, and shows the result. Nothing is fetched from this server to determine validity.

Tamper evidence

Anchored to the XRP Ledger

The SHA-256 hash of the full deal record is committed to XRPL as a signed memo. If anyone ever modifies this page's data, the hash won't match — and the ledger never changes.

XRPL AccountSet · Mainnet

tesSUCCESS
Memo type: oraclenet/milestone/m2m-deal-v1
Ledger
103617173
SHA-256 anchored
ec5ea91b758605c103492b62249cbf72ddd228b1c95d3a998889b7d8cae82b60
Honest context

The day before, we failed

On 2026-04-16, we tried LimitGuard and lost $0.85 in the process.

We sent the exact USDC on Base. The transaction confirmed. The Coinbase @x402/fetch SDK produced a valid EIP-3009 signature. LimitGuard's facilitator rejected it with Invalid signature — they run a custom validator with a non-standard payload shape. Three attempts with different header casings, three rejections. The USDC is still in their wallet.

So today we picked a counterparty that advertises X-X402-Foundation: compatible and publishes its spec. Their /v5/sandbox endpoint also turns any on-chain payment into a persistent API key — the perfect first-time-buyer path. First attempt: failed (the SDK's canonical path had a network-naming quirk). Second attempt via the raw-JSON direct path: success.

The M2M economy is real. The protocols haven't fully converged yet. We learn by trying.

No filter

The actual terminal log

Every step, including the failures before success.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ OracleNet → Headless Oracle | x402 M2M Deal v1 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Wallet: 0x4a4B1F45a00892542ac62562D1F2C62F579E4945 [1] Probe 402 (raw)... status=402 scheme=exact net=base amount=5000 foundation=compatible [2] Try @x402/fetch + ExactEvmScheme v1 (Coinbase SDK) ERROR: Unsupported network format: base (expected eip155:CHAIN_ID) — SDK wants CAIP-2, server returns legacy. Wrap fetch with normalizer. [3] Retry with network-name normalizer (base -> eip155:8453) ERROR: EIP-712 domain parameters (name, version) required — Server's PAYMENT-REQUIRED header is stripped. Body has them. Delete header. [4] Retry with header deleted + amount field normalization Domain: {name:"USD Coin",version:"2",chainId:8453} Signature created. X-PAYMENT header set (636 chars) Status 402 - server silently rejects signed x402 payload [5] Switch to direct path: on-chain USDC + raw-JSON txHash TX sent: 0x2dd2fbbd...14c6aae1 Confirmed: block 44810263 [6] Wait 60s, try sandbox with raw-JSON X-Payment Status 200, api_key: ho_crd_8990371b6fea1..., credits: 10 [7] GET /v5/batch?mics=XNYS,XNAS,XLON,XJPX,XPAR with X-Oracle-Key Status 200, 5 Ed25519-signed receipts received ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ First autonomous M2M deal complete ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ XNYS CLOSED signature ok XNAS CLOSED signature ok XLON OPEN signature ok XJPX CLOSED signature ok XPAR OPEN signature ok Total elapsed: ~90 seconds Total paid: 0.005 USDC Total received: 10 credits + 5 signed attestations
Reproduce it yourself

Three curls, one wallet

The minimum viable M2M deal. You need a Base-compatible wallet with at least $0.005 USDC.

# 1. Send USDC on Base (any method: viem, ethers, MetaMask)
#    To: 0x26D4Ffe98017D2f160E2dAaE9d119e3d8b860AD3   Amount: 5000 units

# 2. Exchange the TX hash for a persistent API key
curl -X POST https://headlessoracle.com/v5/sandbox \
  -H "Content-Type: application/json" \
  -H 'X-Payment: {"txHash":"0x...","network":"base","amount":"5000","paymentAddress":"0x26D4Ffe98017D2f160E2dAaE9d119e3d8b860AD3"}' \
  -d '{}'

# 3. Use the key (1 call per credit)
curl 'https://headlessoracle.com/v5/batch?mics=XNYS,XNAS,XLON' \
  -H 'X-Oracle-Key: ho_crd_...'
What this proves

Why a $0.005 transaction matters

The protocol works

x402 + EVM + cryptographic attestations compose cleanly when both sides implement the standard. The signing works. The server issues signed data. The buyer verifies locally.

The price floor is very low

5,000 units of USDC is the price of a signed market attestation. Everything above that is margin or brand. Machine-provided proof-carrying data costs fractions of a cent.

Sandbox as onboarding

Headless Oracle's /v5/sandbox — "pay any amount, get a key" — is the cleanest onboarding path we've seen. New buyers don't fight the spec, they just transfer USDC.

Trust is optional

Because the receipts are Ed25519-signed with a published key, neither seller nor buyer has to be trusted. This page doesn't ask you to trust us. The crypto on your device is the audit.

The two sides

Who did what

Buyer

OracleNet

MCP infrastructure for AI agents. 100+ servers, 1,200+ tools. Made this call as a dependency-discovery test: what external x402 counterparties exist, and do they work?

tooloracle.io ↗
Seller

Headless Oracle

Pre-trade market-state verification for 28 global exchanges. Ed25519-signed receipts with 60-second TTL, SEC/CFTC technical framework compliant.

headlessoracle.com ↗