A regime that doesn't settle isn't a regime — it's a discussion. The Pactum layer on AxoneOS is what turns an opposable act into something with consequences.

What Pactum Actually Does

Most chains treat disputes as a smart contract problem. Pactum treats them as a logic program problem — same primitives as the regime itself, evaluated against the committed state at the moment of settlement. Three roles run continuously:

  • arbiter — commits the allocate act that resolves the conflict
  • witness — submits the cryptographic evidence required by the regime
  • settlor — executes the on-chain transfer once the regime says settle(Actor, Amount).

These are actor roles inside a zone — the same actor_role(Actor, Role) predicate that the regime uses. There is no separate identity system.

Settlement in Prolog

Here's the smallest possible Pactum kernel, written in Prolog:

prolog · Pactum Settlement Kernel
% ============================================================
% PACTUM KERNEL — OPPOSABLE-ACT SETTLEMENT (AXONE)
% ============================================================

% --- ROLES (proved by the zone's regime, declared here) ---
actor_role(alice, settle).
actor_role(bob, settle).

% --- EVIDENCE (cryptographic commitments fetched from chain) ---
evidenced_tx(zone_alpha, tx_4521, bob, sig_ok).
evidenced_tx(zone_alpha, tx_4521, sla_late, true).

% --- REGIME RULE: did sla_late trigger? ---
violation(zone_alpha, sla_late) :-
    evidenced_tx(zone_alpha, _, _, sla_late).

% --- SETTLEMENT RULE: violator pays the registry in AXONE ---
settle(zone_alpha, bob, pay(alice, 50)) :-
    violation(zone_alpha, sla_late).

% ?- settle(zone_alpha, bob, X).
% X = pay(alice, 50)

Every settle/3 predicate is committed to the chain only after evaluation against the current zone state. There is no hidden mutable flag, no admin override, no off-chain trust assumption.

Why This Is Different

A settlement layer built on a regular smart contract has three structural problems:

  1. The rules are encoded twice — once in the test file, once on-chain. Drift is inevitable.
  2. Dispute resolution requires a multisig or DAO vote, with all the social cost that implies.
  3. Evidence is whatever the contract accepts — usually a hash, not a logical proposition.

Pactum treats each of these as a logic problem. Rule drift disappears because the regime IS the contract. Multisig overhead disappears because opposability is computed, not voted. Hard rule-shape evidence is satisfied because the rule that consumes the evidence is the same rule that says the evidence is valid.

Cross-Zone Settlements

Cross-zone settlement is where Pactum really earns its keep. A delivery act committed in zone_alpha triggers a settlement in zone_beta via an explicit delegation rule:

prolog · Cross-Zone Settlement Delegation
delegate_settle(zone_alpha, zone_beta) :-
    has_evidence(zone_alpha, sla_late),
    reciprocal_recognized(zone_beta, zone_alpha).

% ?- delegate_settle(zone_alpha, zone_beta).
% true

No zone can impose settlement on another. Reciprocity is structural — both regimes must declare each other, and reciprocal_recognized is itself a queryable rule.

Closing

Pactum does not "settle disputes." It executes the regime's conclusion. That distinction matters: a dispute settled by a contract is a fact the contract chose to record; a dispute settled by a regime is a fact the regime proved. The first is auditable after the fact; the second is auditable before, during, and after.