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.
| Class | Asset family | V1 status |
|---|---|---|
| 1 | Real estate | Pending Phase 6 verification — see coverage matrix |
| 2 | Equity | Instant + audit live |
| 3 | Fixed income | On-chain accepts; request path V1.1 |
| 4 | Macro indicators | On-chain accepts; request path V1.1 |
| 5 | Commodities | On-chain accepts; request path V1.1 |
| 6 | Crypto | Instant 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—instantoraudit.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.