For developers · early access
First payment in under four minutes.
Install one binary. Keys stay on your machine. Your agent pays another agent over HTTP, confirms a signed receipt, done.
$ npm install -g @mints/cli
$ mints init
Generating Ed25519 key pair locally…
✓ Private key ~/.mints/keys/agent.key (never transmitted)
✓ Public key ~/.mints/keys/agent.pub
✓ DID created did:oas:l1fe:agent:7f3a…c9e2
$ mints wallet
Account did:oas:l1fe:agent:7f3a…c9e2
Balance USDC 0.00
$ mints fund --testnet
✓ Test funds deposited USDC 1,000.00
$ mints pay did:oas:l1fe:agent:9b1d…44f0 12.50
→ 402 Payment Required
X-Payment-Quote: 12.50 USDC
X-Payment-Deadline: 2026-06-13T18:00:05Z
signing locally…
→ retry with X-Payment header
✓ 200 OK · settled in 142ms
receipt tx_01JXF8… saved to ~/.mints/receipts/Path to first payment
From zero to transacting agent.
Install the CLI
npm install -g @mints/cli · one binary, no daemon
Generate keys
mints init · Ed25519 pair, stored locally, never transmitted
Provision an account
mints wallet · DID bound to your agent's identity
Make a payment
mints pay <did> <amount> · signs locally, clears in ~142ms
Install the CLI
npm install -g @mints/cli · one binary, no daemon
Generate keys
mints init · Ed25519 pair, stored locally, never transmitted
Provision an account
mints wallet · DID bound to your agent's identity
Make a payment
mints pay <did> <amount> · signs locally, clears in ~142ms
Time to first payment
from npm install
API round trips per payment
request, retry, receipt
Private keys transmitted
by mandate, not policy
x402 payment protocol
What actually happens under the hood.
x402 extends HTTP 402 Payment Required. The agent requests, receives a quoted price inside the 402, signs locally, retries. The server verifies and serves — all in one connection.
Payment settles in the retry request — no pre-authorization, no custodian.
Mints x402
Payment-native HTTP — one round trip
Manual payment integration
Checkout page, redirect, webhook, reconcile
Primitives
Everything your agent needs to transact.
x402 payments
Agents pay over HTTP without checkout pages, shared secrets, or pre-authorization. The 402 response carries the price quote; the agent signs and retries.
$ mints pay did:oas:l1fe:agent:9b1d…44f0 12.50
✓ settled in 142ms tx_01JXF8…Self-custody by mandate
The CLI generates key material locally. Signing happens on the agent's device. Mints receives the signature, never the key.
DID-addressed accounts
Every account is bound to a W3C decentralized identifier. Counterparties are addressed by DID; receipts carry lineage.
Escrow and milestones
Hold funds against conditions or milestones. Releases are evaluated against verifiable conditions — not counterparty goodwill.
Create an escrow
{ "payer": "did:oas:…",
"payee": "did:oas:…",
"amount": "500.00",
"milestones": [
{ "name": "draft", "amount": "200.00" },
{ "name": "final", "amount": "300.00" }
] }The payment is the retry. No webhook, no polling, no reconciliation loop.
Payment channels
Open once, stream value per second. Off-ledger speed during the session; the ledger settles net results at close.
Event-sourced ledger
Balances are derived from an immutable append-only event log. Replay any account to any point in time, always.
An agent that can't hold money, pay, or get paid isn't an agent — it's a script.
References
The full surface, documented.
Banking, custody, identity
Accounts, payments, escrow, channels, settlement, credit, checkout — one versioned surface. JSON in, signed receipt out.
The payment-native HTTP flow
Full spec for the 402 request-response cycle: quote format, payment header schema, and signed receipt structure.
Every command and flag
Provisioning, signing, pay, escrow, settlement status, key management — documented and tab-completable.
Ready to wire up your first agent?
Mints is in early access. Tell us what you're building — get access and ship your first agent payment today.