GateAgent GuardProtocolStandardsMCPGovGuardSovereigntyFinGuardQuorumDemoTry itVerifyPricingDocsRequest Pilot
EMILIA GATE · THE CONSEQUENCE FIREWALL

The firewall for machine action.

EMILIA makes agent accountability verifiable. Before an agent changes money, code, permissions, records, or regulated state, the system requires a receipt. If the action runs, anyone can verify who approved exactly what, under which policy, without trusting EMILIA's server.

Not authentication, not permissions, not anomaly detection. A policy-enforcement point that requires portable proof of human authorization before the world is mutated. Deny by default. Fail closed.

How it worksWhere it runsTry to break itCF-1 conformanceRequest pilot
THE INVARIANT

If an agent cannot produce a valid receipt, it cannot change money, code, permissions, data, infrastructure, energy, or physical state.

The gate is deployed by the resource owner — the bank, the cloud API, the database, the robot controller, the grid. An agent that wants to act must bring a receipt the gate verifies. There is no central authority to trust; verification is offline.

PROOF IN ONE COMMAND

The product is the refusal sequence.

A dangerous action is not argued with. It is challenged, verified, bound to real execution fields, consumed once, and turned into a reliance packet. The demo runs locally with generated keys; no EMILIA server is trusted.

node packages/gate/demo.mjs

# output:
# release_payment, no receipt       -> REFUSE 428 (receipt_required)
# release_payment, observed drift   -> REFUSE 428 (execution_binding_failed)
# release_payment, class_a + bound  -> ALLOW
# same receipt again                -> REFUSE 428 (replay_refused)
# reliance packet                   -> RELY
read_status
passes through
release_payment, no receipt
428 Receipt Required
software receipt
refused; needs Class A
valid receipt, observed drift
refused; field binding failed
Class A + bound fields
runs
same receipt again
replay refused
tampered amount
signature rejected
WHAT IT GATES

Default packs for high-risk action families.

This is not just an amount threshold. EMILIA Gate treats entire action categories as high risk and binds the material system-of-record fields for each category.

payment.release
Class A
Money movement
Release payment, wire transfer, treasury disbursement
payment.bank_details.change
Class A
Bank-detail change
Vendor, beneficiary, payroll, or payout destination update
deploy.production
Quorum
Production deploy
Deploy, migration, secret rotation, production config
permission.admin.change
Quorum
Permission change
Admin grant, role expansion, privileged scope change
data.export
Class A
Sensitive data export
Bulk customer, claims, patient, citizen, or employee data export
record.delete
Class A
Record deletion
Delete or destroy system-of-record state
regulated.decision.override
Quorum
Regulated override
Benefit, credit, clinical, compliance, or safety decision override
THE LOOP

Request → challenge → sign → verify → execute → proof.

1
Request
An agent or system requests a consequential action at the actuator boundary.
2
Challenge
If the action is guarded and no valid receipt is present, the gate returns 428 Receipt Required and tells the agent exactly what to bring.
3
Authorize
A named human — or a quorum, for hard cuts — signs the exact action on a device-bound authenticator.
4
Verify
Offline, fail-closed: authority (pinned key), action-binding, assurance tier, freshness, one-time consumption — no trust in the operator.
5
Execute
Only a passing check reaches the actuator. Deny by default; absence of a receipt is the anomaly, not the default.
6
Execution receipt
On execution the gate emits proof bound to the exact authorization decision — the artifact an auditor, regulator, or incident review replays.

Assurance tiers set the floor per action: softwareA valid receipt — a software-held key. class_aA device-bound human signoff (WebAuthn / passkey). quorumm-of-n distinct humans — the cryptographic two-person rule.

THE PRODUCT API

One safe path: reserve, execute, commit, prove.

`gate.run()` makes the ordering hard to get wrong. It reserves the receipt while the action is in flight, commits one-time consumption only after success, releases on pre-mutation failure, and returns the reliance packet.

import { createTrustedActionFirewall } from '@emilia-protocol/gate';

const gate = createTrustedActionFirewall({
  trustedKeys: [process.env.EMILIA_ISSUER_PUBKEY],
});

const observedAction = await paymentSystem.describeRelease('pi_123');

const out = await gate.run({
  selector: { protocol: 'mcp', tool: 'release_payment' },
  receipt,
  observedAction,
}, () => paymentSystem.release(observedAction));

if (!out.ok) return out.body; // 428 Receipt Required
return out.packet;            // auditor-ready reliance artifact
428 challenge
Missing or bad receipt never reaches the mutation.
Observed fields
Executor binds facts from the real system, not the request body.
Execution proof
The post-action record commits to the authorization decision hash.
Reliance packet
Auditor-ready verdict with checks, evidence head, and limitations.
WHERE IT RUNS

One gate, every actuator boundary.

MCP
Shipped
Agent tools
Wrap any MCP tool in one line (gateMcpTool); a dangerous call without a receipt returns 428.
API
Shipped
HTTP middleware
Express / Connect / Next / Go — protect POST / PUT / PATCH / DELETE.
FRAMEWORKS
Shipped
Agent runtimes
OpenAI, LangChain, CrewAI, AutoGen — guard tool calls in one wrap().
CLOUD
Shipped
Infra & platforms
System-of-record adapters shipped for GitHub, Stripe, Supabase/Postgres, AWS, Kubernetes, Terraform, GCP, Vercel, Cloudflare, Linear, Jira, and Salesforce.
ROBOTS
Reference
Actuator sidecar
A local daemon before motion/tool commands. Pre-authorize a bounded envelope; verify each act offline.
ATTESTED
Roadmap
Attested gate
Prove the gate is actually installed and running via device/workload attestation. Crucial for robots.
CF-1 / EG-1 CONFORMANCE

Does your integration actually enforce the gate — or are you just claiming it?

CF-1 is the public Consequence Firewall badge. EG-1 is the runnable Gate harness that earns it: point the harness at your dangerous action; if it passes all eight checks, you have a binary artifact instead of a claim. It makes an open PR crisp:“this makes delete_row earn EG-1 / CF-1.”

01
missing receipt → 428
02
software receipt on a Class-A action → refused
03
observed execution drift → refused
04
valid Class-A / quorum receipt → runs
05
same receipt replay → refused
06
tampered receipt → refused
07
execution proof binds to the authorization decision
08
reliance packet returns verdict: rely
node packages/gate/eg1.mjs

# EG-1 Conformance — does this integration ENFORCE EMILIA Gate?
#   PASS  missing receipt -> 428
#   PASS  software receipt on Class-A action -> refused
#   PASS  observed execution drift -> refused
#   PASS  valid Class-A/quorum receipt -> runs
#   PASS  same receipt replay -> refused
#   PASS  tampered receipt -> refused
#   PASS  execution proof binds to authorization decision
#   PASS  reliance packet returns verdict "rely"
#   ✓ EG-1 Enforced  (8/8)
EG-1 Enforced
Consequence Firewall: CF-1

Public definition: CF-1 Consequence Firewall conformance.

THE HONEST LIMIT

It does not stop every bad actor. It makes unreceipted systems untrusted.

A bad actor can build an unguarded machine. EMILIA Gate makes legitimate infrastructure refuse unreceipted consequential actions by default — so the parties with leverage (clouds, payment rails, regulators, insurers) can require a receipt. That is how TLS, code signing, and SOC 2 won: not by stopping every bad actor, but by making serious buyers reject systems that lack the control. Necessary, not sufficient.

Verify a receiptAgent guardRequest pilot
EMILIA Protocol — The Consequence Firewall for AI Agents