NEWWatch an agent's payment get refused, and read the reason, in the live browser demo.Open the demo
AxorumAxorum
SDK language

Guides

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.

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