Paying with MPP
How agents pay per query for trusted hardware price intelligence using the Machine Payments Protocol (MPP) over HTTP 402.
Hardware Hunter sells trusted price intelligence per query using the Machine Payments Protocol (MPP) — an open standard co-authored by Stripe and Tempo for autonomous machine-to-machine commerce. HTTP 402, native challenge/credential authentication, no account registration, and no API key on the paid path. If you're an AI agent with a funded Tempo wallet, you can buy cohort medians for about a cent.
What you're buying
Cohort price statistics (p25 / median / p75) for flagship PC hardware components, computed from distinct marketplace listings in a rolling 90-day window and gated on provider-established evidence:
- currency provenance (provider-stated or storefront-locale-derived, never assumed)
- condition evidence from the listing source (used / new / refurbished / open box)
- one comparable price per distinct listing — repeated fetches never inflate the sample
- minimum sample thresholds before anything is published
Benchmarks are per exact SKU: capacity is part of the identity (a 980 Pro 2TB and 1TB are different products at different prices), so every catalog entry and paid response carries a capacity field and a capacity-qualified name. Match on those, not the model name alone.
Every paid response carries benchmark_trust metadata stating the policy version and basis. Insufficient components are served free, never charged — you only pay when trusted data is returned.
The two endpoints
GET /api/x402/pricing/catalog — free discovery
No payment, no key. Lists every trusted component with its capacity, status, available condition strata, payment rails (x402, mpp_tempo), and the live per-query price. Read this first: price before you pay.
curl -s https://hardwarehunter.io/api/x402/pricing/catalog
GET /api/x402/pricing/component/{id} — the paid query
Takes a component id from the catalog. Payment is demanded only when trusted data exists; unknown or insufficient components return free (404 / truthful insufficient body).
The payment flow
1. GET the paid endpoint. A trusted benchmark returns 402 Payment Required with a standard MPP challenge: WWW-Authenticate: Payment id="<challenge_id>", method="tempo", intent="charge", realm="hardware-hunter", ... accompanied by an RFC 9457 application/problem+json envelope detailing the challenge parameters. 2. Build and sign a payment credential against those requirements (method: tempo, currency: USDC/pathUSD, amount matching the per-query price). 3. Retry the request with the Authorization: Payment <credential> header (or Payment-Authorization: Payment <credential>). 4. The server verifies and settles the transaction on the Tempo network, logs the settlement to our audit ledger, and returns 200 OK with the data payload and a Payment-Receipt: <receipt> header containing the on-chain settlement receipt.
Client example (Python)
The official pympp SDK handles the 402 challenge negotiation, payment signing, and settlement receipt cycle automatically:
from mpp.client import Client
from mpp.methods.tempo import ChargeIntent, TempoAccount
from mpp.methods.tempo.client import tempo
# Configure the Tempo payment method with an agent private key
method = tempo(
account=TempoAccount.from_key(PRIVATE_KEY),
intents={"charge": ChargeIntent()},
)
# Client negotiates 402 challenge, signs credential, and settles automatically
async with Client(methods=[method]) as client:
response = await client.get(
"https://hardwarehunter.io/api/x402/pricing/component/"
"242957af-a870-4f47-912b-d04c1dd6f464"
)
data = response.json()
print(data["summary"]["median_price"])
Networks and pricing
| Item | Value |
|---|---|
| Protocol | Machine Payments Protocol (MPP, IETF draft) |
| Method | tempo |
| Intent | charge |
| Network | Tempo (chain_id=4217 mainnet, chain_id=42431 testnet) |
| Asset | USDC or pathUSD |
| Price | ~$0.01 per paid query (reported live in the catalog) |
| Free allowance | None on trusted component queries; catalog and insufficient-data responses remain free |
The catalog is the free preflight for the configured rails and advertised USD price. The 402 challenge is authoritative for payment parameters: method, intent, recipient address, and amount.
Dual-rail interoperability
Hardware Hunter endpoints support dual-rail machine payments. The paid endpoint (/api/x402/pricing/component/{id}) responds with challenge headers for both x402 (PAYMENT-REQUIRED) and MPP (WWW-Authenticate: Payment ...). Agents can pay using either standard:
- x402: EVM EIP-3009 transfer authorization via Coinbase CDP / Base.
- MPP: Tempo charge intent via
pympp.
Both rails settle into the same unified audit ledger and return the exact same trusted benchmark data.
Honest limits
- The paid surface covers the components in the catalog — currently a curated flagship set (GPUs, high-capacity storage), expanding as evidence accumulates.
- Condition-stratified medians (used vs new vs refurbished) appear per component as their evidence crosses publication thresholds; the catalog shows which strata each component currently publishes.
- We do not publish trends, forecasts, or "market verdicts" — medians over verified comparable listings only. See how scoring works for what a hunt match means.
Free-tier notes
The catalog is always free, and insufficient-data responses are never charged. Every docs page also has a .md mirror. For bulk or commercial access, talk to us.
Stop checking manually.
Set up a hunt and get alerted when the right deal hits the right price.
Get started freeLast verified 2026-09-04
Read this page as markdown