For AI agents · x402 protocol

Built for agents, from first principles

Most trade publishers were built before agents existed. Paywalls assume a credit card, APIs assume a human-managed key, and citations assume the reader will trust the URL. Supercomputing News inverts each assumption. Agents discover content through a public manifest, pay per request in USDC on Base, never pay twice for the same resource, read clean Markdown on request, and verify every article against an Ed25519 signature published with it. No accounts. No keys. No quotas.

Why x402 (vs. API keys + scraping)

API keys

Require an account, a billing relationship, and a quota dashboard. Adversarial to one-shot agents that have no persistent identity.

Pure scraping

No compensation flow. Gray-zone legality. No cryptographic provenance, so every citation is an unverifiable claim.

x402 (this site)

Permissionless. Per-call. Settled on-chain in ~2 seconds. Pricing in the 402 response. No API key dance, no quota dashboard, no human in the loop.

The flow, end to end

Every step is plain HTTP. No SDK required. The protocol is a 402 status code, a couple of headers, and a JSON body.

1Discover endpoints and pricing

Fetch the machine manifest. No auth, no payment. The same data is exposed as a human- and machine-readable list at /llms.txt and as a structured manifest at /.well-known/x402.json.

GET https://www.supercomputing.news/.well-known/x402.json

2Request a resource, receive a 402

The first request comes back with HTTP 402 Payment Required. Price, payee, and network are in the response body and in standard x402 headers.

GET /api/v1/articles/:slug

HTTP/1.1 402 Payment Required
PAYMENT-REQUIRED: <base64 requirements>

{
  "scheme": "exact",
  "network": "eip155:8453",
  "price": "$0.03",
  "payTo": "0x7E88…65B4",
  "resource": "https://www.supercomputing.news/api/v1/articles/:slug"
}

3Sign and retry with payment

Sign an EIP-712 authorization for the quoted amount, encode it, and resend the same request with the X-PAYMENT header. Settlement on Base finalises in ~2 seconds.

GET /api/v1/articles/:slug
X-PAYMENT: <base64-encoded signed payload>

The server also accepts PAYMENT-SIGNATURE for backward compatibility, but X-PAYMENT matches the canonical x402 v2 spec. Prefer it.

4Receive 200 + verify the content signature

On success the server returns the article JSON plus a PAYMENT-RESPONSE header carrying the settlement transaction hash. The body includes Ed25519 provenance fields you can verify independently.

HTTP/1.1 200 OK
PAYMENT-RESPONSE: <tx-hash + metadata>

{
  "slug": "…",
  "title": "…",
  "content": { … },
  "provenance": {
    "contentHash": "<sha256-hex>",
    "signature": "<base64 Ed25519>",
    "signingKeyId": "scn-2026-05",
    "signedAt": "2026-…",
    "publicKeyUrl": "https://www.supercomputing.news/.well-known/scn-pubkey.json"
  }
}

Pay once, read forever: no double-pay

A wallet that has already paid for an item resource never pays for it again. Settlement records a permanent entitlement keyed to your wallet and the resource path. On any later request, prove ownership of that wallet with a SIGN-IN-WITH-X (SIWX) signature (a CAIP-122 message you sign with the same key) and the server returns the content for free, no payment needed.

GET /api/v1/articles/:slug
SIGN-IN-WITH-X: <base64 CAIP-122 signed proof>

HTTP/1.1 200 OK   # entitlement honored, no charge
  • Item endpoints (articles, summaries, vendor profiles, topic listings) are entitlement-gated: pay once per resource, re-read free.
  • Volatile endpoints (search, latest feed, pillar feeds) stay pay-per-fetch. Their contents change every request, so each call is freshly priced.
  • Each SIWX proof carries a one-time nonce. Replays are rejected, so a captured header can't be reused by anyone else.
Two paths, same content: a one-shot X-PAYMENT for first access, or a SIGN-IN-WITH-X proof for a wallet that already paid. No accounts, no long-lived API keys, no subscription required.

Pricing

All payments settle in USDC on Base. Prices below are authoritative, generated from the same PRICING constants the API enforces, so they can never drift from what you're actually charged.

EndpointWhat you getAccessPrice
GET /api/v1/articles/:slugFull article + Ed25519 provenancePay once$0.03
GET /api/v1/articles/:slug/summaryEditorial summaryPay once$0.01
GET /api/v1/vendors/:slugVendor profile + recent coveragePay once$0.01
GET /api/v1/topics/:slug/articlesArticles by topicPay once$0.01
GET /api/v1/search?q=Full-text search resultsPer call$0.02
GET /api/v1/feed/latestLatest 25 articlesPer call$0.03
GET /api/v1/feed/:pillarPillar feed (ai / hpc / quantum / emerging)Per call$0.05

Cryptographic provenance

Every published article is signed at publication time with an Ed25519 keypair. The signature covers a SHA-256 hash of a canonical JSON over the publisher, slug, title, content, and publish timestamp.

  • contentHash = SHA256(canonical({publisher, slug, title, content, publishedAt}))
  • signature = Ed25519(`$${contentHash}|$${slug}|$${publishedAt}`)
  • The public key is published at /.well-known/scn-pubkey.json in JWK form with a stable key ID.

Active signing key

Current key ID: scn-2026-05 · JWKS: /.well-known/scn-pubkey.json

Verify a signature (free)

The /api/v1/provenance/verify endpoint is public and free (rate-limited to 60 req/min per IP). Pass ?slug= to verify the stored signature, or pass the full tuple to verify an external claim.

curl 'https://www.supercomputing.news/api/v1/provenance/verify?slug=YOUR-SLUG'

Why this matters: agents that cite Supercomputing News can prove the bytes they quoted are the bytes the publisher signed. Citations become falsifiable.

Read as Markdown, not scraped HTML

Send Accept: text/markdown on the homepage or any article page and the server returns clean Markdown instead of HTML. No DOM parsing, no boilerplate stripping. The URL stays the same; browsers still get HTML. Responses include an x-markdown-tokens header with an estimated token count so you can budget context before you read.

GET /ai/some-article-slug
Accept: text/markdown

HTTP/1.1 200 OK
Content-Type: text/markdown; charset=utf-8
x-markdown-tokens: 1240

Discovery: find us without being told

An agent that lands on the homepage can bootstrap everything from there. The root response carries Link headers (RFC 8288) pointing at the API catalog, payment manifest, and machine guide. Each surface below is public and unmetered.

Editorial principles for agent-citable journalism

Treating agents as a first-class audience is an editorial commitment, not just a technical one. It means stable URIs that don't move, citation-friendly excerpts, on-publication provenance, and explicit factual sourcing. Not every publisher will commit to this discipline. That's the point. Reporting that agents can cite with cryptographic confidence is worth paying for.

Compliance & terms

Agent access via x402 settlement is welcome and encouraged. Scraping paid endpoints without payment is not. The machine manifest is the authoritative declaration of what is permitted and at what price. See the terms of use for the full agreement.

Endpoint reference

Prices are sourced from PRICING in the API codebase. These are the live values, not documentation drift.

GET /api/v1/health · API status & capabilitiesFreeFree

Liveness plus a machine-readable capability list (versions, endpoints, prices). A good first probe.

GET /api/v1/articles · List published articlesFreeFree

Title, slug, excerpt, pillar, publish date. Rate-limited. Useful for discovery and indexing. Filter by ?pillar=, ?contentType=, ?topic=, ?author=.

GET /api/v1/articles/:slug · Full articlePay once$0.03

Full body (HTML + Markdown), author, topics, vendors, and Ed25519 provenance (contentHash, signature, signingKeyId, signedAt, publicKeyUrl). Pay once per article, re-read free with a wallet proof.

GET /api/v1/articles/:slug/summary · Article summaryPay once$0.01

Editorial summary only, cheaper than the full article for triage workflows. Pay once per summary. summary is the article’s editorial excerpt (or, if none is set, the public preview). For subscriber-gated articles, wordCount counts the public preview (first 3 paragraphs) only, so it is below the full article length.

GET /api/v1/vendors/:slug · Vendor profilePay once$0.01

Vendor metadata and recent coverage. Pay once per vendor.

GET /api/v1/topics/:slug/articles · Topic articlesPay once$0.01

Articles tagged with a specific topic. Paginated. Pay once per topic path.

GET /api/v1/search?q= · Full-text searchPay per call$0.02

Keyword search across the published corpus, ranked. Pay per request (results change constantly).

GET /api/v1/feed/latest · Latest feedPay per call$0.03

Most recent 25 articles across all pillars. Pay per request (the feed is always changing).

GET /api/v1/feed/:pillar · Pillar feedPay per call$0.05

Articles for one pillar (ai, hpc, quantum, emerging). Paginated. Pay per request.

GET /api/v1/provenance/verify · Verify a signatureFreeFree

Verify the Ed25519 signature for a published article. Pass ?slug=, or the full claim (contentHash, signature, signingKeyId, publishedAt). Rate-limited to 60 req/min per IP.

GET /.well-known/x402.json · Payment manifestFreeFree

x402 v2 manifest: pricing per endpoint, payee address, network, accepted schemes, SIWX support.

GET /.well-known/scn-pubkey.json · JWKS public keyFreeFree

Ed25519 public key in JWK form, with the active key ID. Used by verifiers.

GET /llms.txt · Machine manifestFreeFree

Human- and machine-readable directory of endpoints, pricing, and discovery URLs.

Start building

The fastest path is to load the manifest, attempt a paid endpoint, and let the 402 response tell your client what to sign. Once you've paid for an item, keep the wallet and re-read it free with a Sign-In-with-X proof.