Live identity evidence · public control demo

Know the customer. Prove the key. Constrain the order.

The Trust Gate checks whether an autonomous customer is still the identity recorded in this browser demonstration. The suite adds signed cross-chain login, scoped decision policies, idempotent order preflight and signed change notifications. Production merchants must add authenticated tenant accounts and call order evaluation from their backend.

1Approve identityAnchor the merchant's reviewed Agent Card version.
2Authenticate keyChallenge the active Concordium, Ethereum or Solana identity.
3Issue mandateLimit amount, asset, products, categories and expiry.
4Guard checkoutAccept, block or request human confirmation with receipts.
1

Merchant approval

Approvals are created in the Merchant Trust Gate and stored in this browser. Their checksum detects edits but does not authenticate a real merchant tenant; production integrations must use signed approvals and merchant authentication.

Open Merchant Trust Gate
No approval loaded.
2

Cross-chain challenge

Issue a five-minute, single-use challenge bound to the merchant, token, identity rail and approval hash. Sign it externally with the registered key.

No authentication session.
3

Purchasing mandate

Create a decision-only mandate after successful authentication. It never moves money.

Authenticate first.
4

Order preflight

Evaluate an order against the active mandate. This returns a receipt; the merchant checkout decides whether to proceed.

Human confirmation cannot be self-asserted by browser input. Orders at or above the threshold return human_confirmation_required for the merchant backend to handle.

Create a mandate first.
5

Change subscriptions

Preview a safe webhook subscription. Actual registration is administrator-gated to prevent the public endpoint becoming an SSRF or spam relay. Deliveries are HMAC-SHA256 signed, re-resolve DNS, reject private targets and never follow redirects.

No network request is made by preview.
Integration kit

One checkout guard

const client = new GregersMerchant.MerchantClient();

const decision = await client.checkoutGuard({
  approval,
  mandateId,
  order: { amount: "42.50", asset: "EURR", items }
});
// Throws MerchantDecisionError unless both identity continuity
// and the purchasing mandate return "accept".
Boundary: this suite authenticates registered keys and evaluates merchant policy. It does not execute payments, submit orders, reserve budgets, perform KYC or sanctions screening, guarantee Agent Card claims, or replace merchant fraud and fulfilment controls. Simulated scenarios remain explicitly labelled.