Axiom Stack

Quickstart

Request your first verified attestation in ~5 minutes. (Devnet private beta — you'll need an API key; see Authentication.)

1. Prerequisites

  • Python 3.11+
  • pip install "mcp>=1.0" — the official Model Context Protocol client SDK
  • An API key (axm_live_…) from Axiom Stack
  • Quota: your tier's monthly included allotment, or top up with USDC

You do not need a Solana wallet — the Themra operator settles the on-chain SOL fee server-side; you're metered by your API key.

2. Request an attestation

import asyncio, json, os
from mcp.client.streamable_http import streamablehttp_client
from mcp import ClientSession

API_KEY = os.environ["AXIOM_API_KEY"]          # axm_live_...  (keep it secret)
ENDPOINT = "https://mcp.axiomstack.dev/mcp"     # note the /mcp path

async def main():
    headers = {"Authorization": f"Bearer {API_KEY}"}
    async with streamablehttp_client(ENDPOINT, headers=headers) as (read, write, _):
        async with ClientSession(read, write) as session:
            await session.initialize()
            result = await session.call_tool(
                "axiom_request_attestation",
                {"asset_id": "TSLA", "asset_class": 2},   # 2 = equity
            )
            data = json.loads(result.content[0].text)
            print("attestation_pda:", data["attestation_pda"])
            print("write_tx_sig:   ", data["write_tx_sig"])
            print("provider:       ", data["attestations"][0]["provider_pubkey"])
            print("snapshot_hash:  ", data["latest_snapshot_hash"])

asyncio.run(main())
export AXIOM_API_KEY="axm_live_..."
python quickstart.py

A fresh attestation takes ~20 seconds in the default audit tier (measured, audit-grade). For equities, latency_mode="instant" returns data + a provisional proof in under 2 s (audit commit async, ~30 s). The response includes attestation_pda + write_tx_sig so you can verify it on-chain.

3. Next steps

MCP client configuration

Point any MCP client at https://mcp.axiomstack.dev/mcp with an Authorization: Bearer header. The read tools (axiom_quote_fee, axiom_fetch_attestation, axiom_fetch_audit_reference) work anonymously; axiom_request_attestation requires the bearer key. Configs below; see also the MCP tools reference.

Claude Desktop / Cursor (mcpServers entry — a streamable-HTTP server with an auth header):

{
  "mcpServers": {
    "axiom-oracle": {
      "url": "https://mcp.axiomstack.dev/mcp",
      "headers": { "Authorization": "Bearer axm_live_<your key>" }
    }
  }
}

Anonymous reads (axiom_quote_fee, axiom_fetch_attestation, axiom_fetch_audit_reference) work without the headers block; include the bearer header to enable axiom_request_attestation. If your client doesn't support custom headers on remote MCP servers yet, use the Python SDK (above), which does.

Generic Python MCP SDK — the pattern from step 2: streamablehttp_client(url, headers={"Authorization": "Bearer …"})ClientSessioninitialize()call_tool(...).