PUBLIC API · NO AUTH · CORS-OPEN

Verify the receipt chain
from anywhere.

All endpoints below are public, signed, and CORS-open. Build your own verifier, integrate the badge, ship a compliance dashboard — no API key, no auth, no rate limit gates.

Endpoints

  1. GET /api/storage/receipts/:session_id — fetch the full receipt chain
  2. GET /api/storage/cert/chain/:session_id — single-page tamper-evident PDF
  3. GET /api/storage/badge/:session_id.svg — embeddable verification badge
  4. GET /api/storage/stats/public — network-wide stats
  5. GET /api/storage/stats/public/24h — last 24-hour rollup
  6. GET /keys/trd-receipt-key-2026.public.pem — public verification key
  7. GET /api/storage/stats/public/badge.svg — network-wide stats badge SVG
  8. GET /api/storage/stats/public/network.json — structured download for journalists + auditors
  9. GET /api/storage/cert/press/one-pager — press one-pager PDF

How verification works

Every receipt emitted by DCS Network is a JSON envelope, canonicalized (sorted keys, no whitespace), signed with our ed25519 key trd-receipt-key-2026, and pinned to Filecoin via Lighthouse.

To verify any receipt independently:

1. Fetch the public key PEM from /keys/trd-receipt-key-2026.public.pem
2. Strip signature + this_cid from the receipt
3. Re-canonicalize the remaining JSON
4. Verify signature.value matches the public key over those bytes

verify.dcsai.ai does exactly this client-side, in your browser. No server trust required.

1 · Receipt chain

GEThttps://api.storage.dcsai.ai/api/storage/receipts/<session_id>

Fetch all receipts for a session

Returns every signed receipt that was emitted during the session, in chronological order. Each receipt is the raw envelope (with signature, kind, emitter, payload_summary, carbon, cid, prev_receipt_cid).

Auth
none
Returns
JSON · { ok, session_id, receipts: [...], count }
Cache
none — live read
CORS
Access-Control-Allow-Origin: allowlist
curl https://api.storage.dcsai.ai/api/storage/receipts/5e5350fa-991a-4f57-bfcc-fef7f2204bb1

Model names are masked to model_class (premium / fast / fallback) on the public response — Decision A.

2 · Certificate PDF

GEThttps://api.storage.dcsai.ai/api/storage/cert/chain/<session_id>

Single-page tamper-evident PDF

Returns an A4 PDF certificate with receipt count, kWh, CO₂, chain head CID, session prompt, and a QR code linking back to verify.dcsai.ai. Useful for auditor handoff and offline records.

Auth
none
Returns
application/pdf · ~12KB
Cache
none — live read
CORS
Access-Control-Allow-Origin: *
curl -o cert.pdf https://api.storage.dcsai.ai/api/storage/cert/chain/<session_id>

3 · Embed badge SVG

GEThttps://api.storage.dcsai.ai/api/storage/badge/<session_id>.svg

Live verification badge

240×44 SVG with current verification state. Auto-updates as new receipts arrive (5-minute edge cache). Drop it in an <img> tag on any site.

Auth
none
Returns
image/svg+xml
Cache
5 min edge cache
CORS
Access-Control-Allow-Origin: *
<a href="https://verify.dcsai.ai/?id=<session_id>" target="_blank">
  <img src="https://api.storage.dcsai.ai/api/storage/badge/<session_id>.svg"
       alt="Verified by DCS Network" width="240" height="44">
</a>

Full integration guide at dcsai.ai/badge.

4 · Network stats (cumulative)

GEThttps://api.storage.dcsai.ai/api/storage/stats/public

Aggregate network-wide stats

Cumulative since launch: receipts signed, distinct sessions, kWh, CO₂, GDPR erasures, breakdown by receipt kind, breakdown by emitter service.

Auth
none
Returns
JSON
Cache
60s edge cache
CORS
Access-Control-Allow-Origin: *
curl https://api.storage.dcsai.ai/api/storage/stats/public

5 · Network stats (last 24h)

GEThttps://api.storage.dcsai.ai/api/storage/stats/public/24h

Last 24-hour rollup

Same shape as /stats/public but scoped to the trailing 24 hours. Useful for live dashboards and "today's activity" widgets.

Auth
none
Returns
JSON
Cache
60s edge cache
CORS
Access-Control-Allow-Origin: *
curl https://api.storage.dcsai.ai/api/storage/stats/public/24h

6 · Public verification key

GEThttps://dcsai.ai/keys/trd-receipt-key-2026.public.pem

Ed25519 public PEM

The single public key all DCS Network receipts are signed with. Use it to independently verify any signed envelope. Pinned at the URL — no rotation expected before 2027.

Auth
none
Returns
application/x-pem-file
Cache
1h browser, 1h edge
CORS
Access-Control-Allow-Origin: *
curl https://dcsai.ai/keys/trd-receipt-key-2026.public.pem

7 · Network stats badge SVG

GEThttps://api.storage.dcsai.ai/api/storage/stats/public/badge.svg

Embeddable network-wide stats badge

380×56 SVG showing the live total receipt count, kWh, and CO₂ for the entire DCS Network. Embed on any partner site, press kit, blog post — auto-updates every 5 minutes.

DCS Network live stats

Auth
none
Returns
image/svg+xml · 380×56
Cache
5 min edge cache
CORS
Access-Control-Allow-Origin: *
<a href="https://dcsai.ai/stats" target="_blank">
  <img src="https://api.storage.dcsai.ai/api/storage/stats/public/badge.svg"
       alt="DCS Network live stats" width="380" height="56">
</a>

For per-session verification badges (one site at a time), use endpoint #3 at dcsai.ai/badge.

8 · Network JSON download Day 10 v3

GEThttps://api.storage.dcsai.ai/api/storage/stats/public/network.json

Structured network rollup for journalists, auditors, partners

Versioned JSON schema (trdn.network.v1) with network totals, signing-key metadata, and attribution. Stable shape — safe to scrape and embed in dashboards or compliance reports.

Auth
none
Returns
application/json
Cache
5 min edge cache
CORS
Access-Control-Allow-Origin: *
License
CC BY 4.0 — attribution required
curl https://api.storage.dcsai.ai/api/storage/stats/public/network.json

9 · Press one-pager PDF Day 10 v3

GEThttps://api.storage.dcsai.ai/api/storage/cert/press/one-pager

Single-page printable PDF · tagline + live stats + contact

Downloadable, no-auth press one-pager. Embeds a live network-stats snapshot at the moment of download. Send to newsrooms, attach to outreach emails, hand to investors.

Auth
none
Returns
application/pdf
Filename
trd-network-press-one-pager.pdf
CORS
Access-Control-Allow-Origin: *
License
CC BY 4.0
curl -L -o trd-press.pdf https://api.storage.dcsai.ai/api/storage/cert/press/one-pager

Full press kit (brand palette, screenshots, contact emails) lives at dcsai.ai/press.

Rate limits & SLA

No rate limits today. Edge cache (Cloudflare) absorbs reasonable load on stats / badge / public key. Receipts and certs are live reads — if you're planning more than a few hundred req/min sustained, write to hello@dcsai.ai and we'll work out a webhook arrangement.

SLA: uptime tracked against Filecoin pinning and storage_receipts persistence. Public surfaces are 99.5% best-effort during beta, no hard SLA.