Mandact — The Trust Layer of the Agent Economy

Product · OMP/1 — VERIFY

One request, one answer: allow, deny or escalate — with a reason.

The Verify API checks presented mandates deterministically: signature chain, live status, scope, limits, counterparties. Every answer carries a signed receipt.

The problem

Whoever accepts agent requests today has no proof: was the agent really acting on someone's behalf? With the Verify API you check before accepting and receive a signed, independently verifiable receipt of the decision — evidence for audits and disputes. Whether and how far it reduces liability depends on the individual case; Mandact does not replace the legal position.

Deterministic and explainable

Checks run in a fixed order. Every rejection names exactly one primary code — machine-evaluable, traceable in a dispute. The decision record holds the observed value against the limit that applied at the time; an auditor can recompute it without querying our database.

Status always live

A revocation takes effect from the next check. The Verify API reads the status live — never against a stale cache.

Limits without race conditions

Amount and frequency limits are reserved atomically. Parallel agent requests cannot jointly exceed a limit.

The checked action is the executed one

An intent hash binds the receipt to exactly this order — amount, counterparty, basket. If anything differs at execution, it is provable. Without this binding a receipt only attests «an order of 450», not this one.

Whoever can verify cannot forge

Receipts are signed asymmetrically. The public key is published at /.well-known/jwks.json — a verifier can check a receipt years later, without a contract and without the ability to create one itself.

Where the law requires a human

An action subject to formal requirements is valid electronically only with a qualified signature — and only natural persons can hold one. Mandact recognises these actions and puts them before a human instead of executing them. No mandate can contract out of this: it follows from the law, not from the mandate.

Context counts too

A mandate applies until it expires — its limits are fixed. What changes afterwards is not: a compromised key, a person who has left, a request at night from a new country with an amount at the upper edge. Such requests are held, the mandate is not revoked. Revocation belongs to the person who granted the mandate.

Nobody passes on what they do not have

If an agent instructs a sub-agent, the sub-agent's mandate is narrower in every respect: no new actions, no higher limit, no longer term. Revocation cascades downwards — enforced by the database, not by the application.

Frequently asked questions

+How fast is the integration?

With the TypeScript SDK from zero to the first verification in under ten minutes — sandbox without sign-up.

+What happens on an escalation?

The Verify API answers escalate, the person who granted the mandate receives a step-up request and approves or rejects. Without an answer within ten minutes, deny applies.