vram.supply

Agent Payments (MPP)

Pay for inference per token using the Machine Payments Protocol. No account, no API key, no card. Your agent pays as it consumes.

Flow

Agent vram.supply │ │ │ POST /v1/chat/completions │ │ (no Authorization header) │ ├──────────────────────────────────────────►│ │ │ │ 402 Payment Required │ │ WWW-Authenticate: Payment id="…", │ │ method="tempo", intent="session", │ │ request="<amount, currency, recipient>"│ │◄──────────────────────────────────────────┤ │ │ │ Open Tempo session channel │ │ (deposit USDC into on-chain escrow) │ │ │ │ POST /v1/chat/completions │ │ Authorization: Payment <credential> │ ├──────────────────────────────────────────►│ │ │ │ 200 OK (SSE stream) │ │ data: {"choices":[{"delta":…}]} │ │ …tokens stream, vouchers verified… │ │ event: payment-receipt │ │ data: [DONE] │ │◄──────────────────────────────────────────┤

Challenge

The 402 response includes a WWW-Authenticate: Payment header:

WWW-Authenticate: Payment
  id="ch_abc123",
  realm="vram.supply",
  method="tempo",
  intent="session",
  expires="2026-03-19T12:05:00Z",
  request="eyJhbW91bnQiOiIzIiwiY3Vycm..."

# Decoded request:
{
  "amount": "3",           // per-token price in USDC base units (6 decimals)
  "currency": "0x20c0…",  // pathUSD on Tempo
  "recipient": "0x848A…", // platform wallet
  "suggestedDeposit": "1000000",  // $1 USDC
  "unitType": "llm_token"
}

Credential

Retry the request with Authorization: Payment <base64url credential>:

{
  "challenge": { "id": "ch_abc123", "realm": "vram.supply", … },
  "source": "0x1234…",   // payer's Tempo address
  "payload": {
    "action": "voucher",
    "channelId": "0x6d0f…",
    "cumulativeAmount": "50000",
    "signature": "0xabc…"
  }
}

Session Lifecycle

PhaseWhat HappensOn-chain?
OpenDeposit USDC into escrow → get channelIdYes (~500ms)
StreamSign cumulative vouchers as tokens arriveNo (signature only)
Top upAdd more USDC without closing the channelYes
CloseServer settles final voucher, unused deposit refundedYes

Pricing

  • Per-token price is in the challenge amount field — visible before you pay.
  • Price includes the 5% platform fee (provider cost + markup).
  • Same models and providers as the Stripe card path.

SDKs & Spec