Axiom Stack

Axiom Stack · Themra API

Themra — verifiable RWA attestations on Solana

REST endpoints at api.axiomstack.dev/v1/* return on-chain attestations: real-time price + a Solana PDA your agent can verify independently. Equity (class 2) and crypto-instant (class 6) live today; full coverage matrix below.

Themra uses our own Payment Factory

Every attestation on api.axiomstack.dev is metered through Payment Factory. When you request an instant or audit attestation, the request flows through the same .well-known/x402 manifest, the same multi-protocol auth dispatcher, and the same receipt / mandate trail you'd build for your own service.

This is intentional. We dogfood our own infrastructure so we can validate the agent payment path end-to-end before recommending it to others.

If you want to build a service that accepts agent payments the way we do, see Payment Factory →

Endpoints

Two tiers, same response shape. Pick the one that matches your agent's latency vs. proof-strength budget.

Instant tier — < 2 s

Synchronous return: data + provisional PDA. The audit-grade on-chain commit lands async (~30 s). Use when an agent needs a price now and can verify the commit later.

POST /v1/attestation/instant

Audit tier — ~20 s

Fully on-chain before return: request → listener → provider fetch → on-chain write → poll → response. Use when the proof needs to be canonical at response time (settlement, accounting, audit trails).

POST /v1/attestation/audit

Equity — instant

curl -X POST https://api.axiomstack.dev/v1/attestation/instant \
  -H "Authorization: Bearer $AXIOM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"asset_class": 2, "asset_id": "AAPL"}'

Equity — audit

curl -X POST https://api.axiomstack.dev/v1/attestation/audit \
  -H "Authorization: Bearer $AXIOM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"asset_class": 2, "asset_id": "AAPL"}'

Crypto — instant

Whitelist V1: BTC, ETH, SOL, USDC, USDT. Audit tier for crypto ships in G6.7b.

curl -X POST https://api.axiomstack.dev/v1/attestation/instant \
  -H "Authorization: Bearer $AXIOM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"asset_class": 6, "asset_id": "BTC"}'

Response shape

Both tiers return the same {data, meta} envelope. meta.attestation_pda is the Solana account; meta.write_tx_sig is the on-chain commit; meta.raw_snapshot_hash is SHA-256 of the raw vendor JSON (the canonical integrity anchor).

{
  "data": {
    "asset_class": 2,
    "asset_id": "AAPL",
    "price_micros": 187420000,
    "as_of_ts": 1716851234,
    "vendor": "alpha_vantage"
  },
  "meta": {
    "request_id": "req_01HX…",
    "tier": "instant",
    "attestation_pda": "AxmPDA9q…",
    "write_tx_sig": "5wQ8Jk…",
    "raw_snapshot_hash": "sha256:9f3c…"
  }
}

Asset class taxonomy

The Themra on-chain program accepts asset classes 1–6. Live request-path coverage is a smaller subset; see the full coverage matrix for per-class per-tier status.

ClassAsset familyV1 status
1Real estatePending Phase 6 verification — see coverage matrix
2EquityInstant + audit live
3Fixed incomeOn-chain accepts; request path V1.1
4Macro indicatorsOn-chain accepts; request path V1.1
5CommoditiesOn-chain accepts; request path V1.1
6CryptoInstant live; audit V1.1 (G6.7b)

Vendor abstraction

Themra never exposes a raw vendor feed to your agent. Each class has a pluggable provider behind an abstracted source label, so the underlying data partner can change without breaking your integration. The response always carries the authoritative raw_snapshot_hash — SHA-256 over the raw provider JSON — so an audit downstream can prove the data was captured byte-for-byte even as the vendor mix evolves.

  • meta.vendor identifies the live provider for the request.
  • meta.raw_snapshot_hash is the canonical integrity anchor.
  • meta.attestation_pda ties the response to a Solana account you can fetch independently (rpc.devnet.solana.com).

.well-known/x402 — oracle-side fields

Themra's payment manifest at api.axiomstack.dev/v1/.well-known/x402 advertises which endpoints are priced, per asset class, and which auth modes are accepted. The oracle-side fields you care about:

  • resource — fully-qualified endpoint URL.
  • extra.asset_class — oracle taxonomy code (1–6).
  • extra.tier instant or audit.
  • maxAmountRequired — USDC atomic units (6 decimals).

For the payment-side fields (scheme / network / payTo / auth_modes), see the Payment Factory reference.

OpenAPI + Postman

Full schema + interactive Redoc reference + Postman collection live on the API reference page.