Axorum API reference

Axorum sits between an agent's decision to spend and the rail that settles it. The agent plane is the wire contract it speaks: submit an intent, receive a verdict, read the state that verdict was judged against.

Every commit must balance twice. The money balances — debits equal credits. The authority balances — the action was permitted, and every obligation it touches is accounted for. A transaction posts only if both hold.

What the agent plane is

Six endpoints. An agent submits an intent: the accounting legs it proposes, the action it claims authority for, and the policy it believes is in force. Axorum judges that intent at the moment of the commit and records the outcome either way.

A refusal is a recorded verdict, not an error. An intent the policy forbids is answered 200 OK with posted: false and a ForbiddenRejected verdict. The refusal record is the product: it is the evidence that a control stopped something before it happened. Only a malformed, unauthorized, or unrecordable request is a 4xx or 5xx. A client that reads a non-2xx status as "the intent was refused" has the contract backwards.

Two rules follow from that, and every SDK on this site implements both:

  • The client mints the transaction id. It is the substrate's idempotency key, so re-submitting a committed id replays its stored outcome rather than double-posting it. That is what makes a retry safe.
  • Every intent pins a policy. If the pin is stale, the request is refused 409 and nothing is written. Re-read the policy in force and resubmit against it.

The quickstart walks the whole loop, from the pin to the verdict.

Guides

Quickstart

Pin the policy in force, mint a transaction id, submit an intent, read the verdict.

Read more

Authentication

How an agent proves who it is: an agent:// URI and a PASETO attestation in the envelope.

Read more

Errors

The snake_case code vocabulary, what each one means, and which ones are worth retrying.

Read more

SDKs

Rust, TypeScript, and Python clients for the agent plane, and what they handle for you.

Read more

Resources

Intents

Submit an intent envelope and read the verdict. A refusal is recorded and returned 200 with posted: false.

Policies

Read the policy in force. Its id is the pin every intent carries, and the thing to re-read after a 409.

Transactions

Look up a stored record by its client-minted id, without resubmitting it.

Obligations

List the duties an actor owes: what is open, what it discharges, and when it breaches.

Balances

Read an account’s net balance in minor units. A 128-bit integer — decode it as a big integer.

Usages

Consumed, metered, billed. Three totals the ledger holds in order, so phantom usage is refused rather than remembered.

Official SDKs

Rust

Available

axorum-client

The reference implementation. Pins the policy, re-pins on a 409, and surfaces every structured error field the contract makes load-bearing.

Read more

TypeScript

Available

@axorum/client

The same contract for Node and the edge. Decodes minor units as a big integer, so a large balance does not silently lose precision.

Read more

Python

Available

axorum-client

The same contract, sync and async. Held to the Rust client’s conformance suite against a real service, not a mock.

Read more

Was this page accurate?