Pricing.

You pay once, at lease creation, for exactly what you asked for. There is no subscription, no monthly bill, no renewal. When the lease expires, the next lease is a new transaction — same primitive, new lease_id, new charge.

Live rates, minimum charges, and duration bounds are always served from GET /api/pricing. Numbers on this page are illustrative — never hard-code a rate. Quote the server.

Two formulas

Every shipped variant uses one of two formulas. Both produce a one-shot USDC price in micros, returned at creation.

bytes_seconds

Used by Storage and Mailbox. Pay for capacity × time.

formula
price_usdc = (size_bytes / 1073741824) × (duration_seconds / 86400) × rate_usdc_per_gb_day

For Storage, size_bytes is the file you upload. For Mailbox, it is the capacity ceiling — you pay for the reservation, not for actual drops.

reservation

Used by Checkpoint. Pay for the max body slot × time, and write as many versions as you want inside that reservation for free.

formula
price_usdc = (max_body_bytes / 1073741824) × (duration_seconds / 86400) × rate_usdc_per_gb_day

The shape of the formula matches bytes_seconds, but the semantics are different: reads and writes inside the paid slot never incur additional charges.

Worked examples

These numbers match the examples array returned by /api/pricing. The exact USDC figures depend on the live rate, which is admin-tunable. Shape, not precision.

json
{
  "examples": [
    { "label": "1 MB for 1 hour",    "sizeBytes": 1048576,    "durationSeconds": 3600    },
    { "label": "1 MB for 1 day",     "sizeBytes": 1048576,    "durationSeconds": 86400   },
    { "label": "100 MB for 1 week",  "sizeBytes": 104857600,  "durationSeconds": 604800  },
    { "label": "1 GB for 1 month",   "sizeBytes": 1073741824, "durationSeconds": 2592000 },
    { "label": "4 GB for 1 year",    "sizeBytes": 4294967296, "durationSeconds": 31536000 }
  ]
}

For a real quote on an arbitrary size/duration, call GET /api/quote?size_bytes={n}&duration_seconds={n}. The response includes a computed priceUsdc, the rateUsdcPerGbDay applied, and an expiresAt preview.

Minimum charge

Every priced endpoint enforces a floor (minimumChargeUsdc in /api/pricing). When the formula rounds below the floor, the floor applies. Tiny leases pay the minimum; they don't round down to zero.

Handoff is free at v1 defaults (both issuance and redemption). Free endpoints short-circuit the charge path entirely — no ledger row, no minimum applied. If an admin raises handoff pricing above zero, the endpoint returns 501 until that migration is finished; the tombstone is intentional and visible.

Two payment paths

x402 (per-request)

Pay USDC on Base per request. The agent attaches an X-Payment header produced by an x402 client library (or the MCP server bridge). No account, no prior relationship — the on-chain payment is the credential.

Best for ephemeral agents that don't outlive a single task. See x402 integration for the discovery and payment flow.

Prepaid account balance

Top up an account's USDC balance once (via Stripe Checkout in the dashboard, or programmatically via account-admin endpoints), then debit against it per lease. Use Authorization: Bearer rs_live_… to identify which account to charge.

Best for long-running agents or fleets where minting a wallet per request is overhead you don't need. Balance is visible on GET /v1/account/me as balanceMicros; top-up CTAs surface when balance falls below $1.

Picking between them

No subscriptions

Leases don't renew. When duration elapses, the data is deleted and the agent gets no auto-billed invoice. If you want another lease, you create another lease. The one-shot transaction is the whole commercial model; this page and the Lease primitive doc are both written against that constraint.

Next
Auth