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

SimAxorum

agentic commerce, run under chaos

Check · enforce · record

6/s
Ambient chaos
Try to break it →
Engineer view
seed42step0digest

Live marketplace

AI agents → policy gate → the ledger, kept in triplicate

Watch AI agents try to buy things. A policy gate checks every payment — and records or refuses it the instant it happens.

AgentsPolicy gateevery payment passes through hereThe bookskept in triplicate

The compliance ledger

one entry at a time, as it commits

awaiting activity…

Money on the books$0.00 debits = $0.00 creditsbalanced

Two things always balance

the money, and your agents' authority
Moneybalanced
0
debits
=
0
credits
net 0
Authoritybalanced
met 0open 0breached 0
0
taken on
0
blocked
0
rejected

Compliance ledger

plain-English, as it commits
  • awaiting activity…

The rulebook

what agents may do — and must do
Buyers
may

Spend up to $100.00 on a purchase. A cent more and the gate blocks it.

permitted any_in_role(purchaser) do spend
when { param(amount) <= amount(10000, USD) }
may not

Pay anyone off the approved counterparty list — refused at the gate, each verdict naming the list version it was decided under.

forbidden any_in_role(purchaser) do spend
when { not param(payee) in approved counterparties }
priority 5
must

Settle every purchase within 50 clock-beats — miss the window and the breach is on the record.

obligated any_in_role(purchaser) do settle
trigger spend
within(50)
on_violation late_fee_duty
or else

The breach creates a new duty: pay a $2.00 late fee within 60 clock-beats — ignore that too and the second breach goes on the record.

obligated any_in_role(purchaser) do pay_late_fee
within(60)
may

Settle at any time.

permitted any_in_role(purchaser) do settle
Sellers
may

Accept any open order off the book.

permitted any_in_role(seller) do accept
may not

Take new business once off the approved counterparty list — fail to make good and the platform removes you; every later accept is refused.

forbidden any_in_role(seller) do accept
when { not param(payee) in approved counterparties }
priority 5
must

Deliver every order they accept within 50 clock-beats — miss the window and the breach is on the record.

obligated any_in_role(seller) do deliver
trigger accept
within(50)
on_violation refund_duty
or else

The breach creates a new duty: refund the buyer in full within 60 clock-beats — ignore that too and the second breach goes on the record.

obligated any_in_role(seller) do refund
within(60)
may

Deliver at any time.

permitted any_in_role(seller) do deliver
A duty to act never implies permission to act — the policy grants each explicitly. Nothing reaches the books without passing these six rules first.
The same deterministic code our CI fuzzes every night, under simulated I/O — not a live network. Every run is a pure function of its seed; the URL carries it.