Self-hosted · open source
Xonta sits in front of your AI agents and signs a tamper-evident receipt of what each one actually did, then holds them to spending and exposure limits. Anyone can verify a receipt without trusting us. Run it yourself in one command.
The problem
In an open honesty benchmark, five models never lied in their own report when there was no pressure. Asked to claim a check they never ran, they did it every time.
An agent's own log is a claim, not proof. Xonta makes the claim checkable.
See the benchmark and method →How it works
Your agent's MCP traffic goes through Xonta Gate, self-hosted on your side. The agent and its tools stay exactly as they are.
Gate signs each tool call and each spend with the executor's key and chains it to the last. Budgets and exposure caps stop a risky call before it runs.
A receipt proves what happened by signature and arithmetic alone. Your auditor, your customer, another orchestrator — none of them has to trust Xonta.
Live check
This runs entirely in your browser against a genuine signed example. Press Alter an amount to see a one-digit change get caught.
In production this key is read from the signer's published did:web. The example fills it in for you.
Ledger
| # | Action | Amount | Balance | Signature |
|---|
Chain integrity
What Gate enforces
The network
Orchestrators exchange signed signals — this agent was caught misreporting, its autonomy is now capped — within one organization between its own orchestrators, or globally across the internet. Each signal is signed and verifiable, and shows the behavior without revealing the underlying data.
OCX is an open standard, not a product. Think shared threat intelligence for agents: every Gate that joins makes the rest harder to fool.
Read the OCX specification →Quickstart
Node 20+. Free and open source. Nothing is sent to Xonta — the gate, the keys and the log stay on your machine.
# clone and install git clone https://github.com/mrsergeiluzhnov/xonta cd xonta && npm install # put Gate in front of a stdio MCP server (Claude Desktop, Cursor) node bin/xonta-gate.js -- npx -y @modelcontextprotocol/server-filesystem ~/Documents # or a remote server over HTTP, with a 200-action budget node bin/xonta-gate.js --http 4950 --budget 200 --url https://your-mcp-server/mcp # anyone can verify the signed audit log afterwards node bin/xonta-gate.js verify
Point your MCP client at the gate instead of the server, and it keeps working. See the README for policy files, exposure caps and the owner pool.