Skip to main content
The AXON Decision daemon is a self-hosted HTTP server that handles policy evaluation, payment signing, approvals, and treasury operations. Default base URL: http://127.0.0.1:3030

Authentication

AXON recognizes three credential classes on authenticated /v1/* routes:
The static AXON_DECISION_API_KEY. Full trust. Required for:
  • Operator-only REST routes under /v1/operator/* and all /v1/repair/* endpoints
  • Provider registry mutations (/v1/providers/*)
  • Worker triggers (/v1/webhooks/dispatch, /v1/transactions/confirm, /v1/approvals/expire)
  • Global metrics (/v1/metrics)
This key can call many org-scoped routes, but it is not bound to an organization. Routes that require an org context, such as GET /v1/me, return 404 NOT_FOUND.
Public routes do not require a bearer token:
  • GET /health
  • GET /ready
  • GET /v1/health
  • GET /v1/ready
  • GET /v1/
  • GET /v1/discovery/resources
  • POST /v1/services/:id/quote
POST /v1/orgs/bootstrap/browser is also guarded by AXON_HOSTED_BROWSER_BOOTSTRAP_DISABLED; when that flag is true, the route returns 403 even for valid browser sessions.

Error Format

All AXON errors return structured payloads:

HTTP Status Codes

Malformed JSON is a special case: the daemon returns a JSON-RPC parse envelope with error.code = -32700 even on REST routes.

Surface split

AXON exposes two capability surfaces:
  • runtime: wallet-scoped spend, approvals, receipts, and runtime MCP tools
  • operator: org-scoped control-plane operations such as wallets, offers, keys, mandates, treasury, and operator MCP tools
The important part is that the surface is derived from the credential shape, not from client convention.

Endpoint Summary

Public

Core Spend

Operator & Admin

Providers

Discovery

Public Paid Gateway

MCP over HTTP

/v1/mcp is wallet-scoped. An org-wide tenant key with no wallet binding receives a JSON-RPC-framed WALLET_BINDING_REQUIRED error. Static operator-key fallback is demo-only; live HTTP runtime clients should use wallet-bound tenant keys.

Workers

Settlements

Operator (operator-only)

These REST routes require the static operator key (AXON_DECISION_API_KEY). The separate /v1/operator/mcp MCP entrypoint also accepts org-wide tenant keys.

Repair (operator-only)

Dead-letter replay and manual reconciliation endpoints. All routes require the operator key.
Request body limit is 256kb unless a route installs its own handler, such as file upload or the paid gateway.