interlock
source

Agents can pay. Nobody decides if they should.

Interlock is the authorization layer between an agent and its wallet. It decides, per payment, whether settlement may proceed - and signs the reason.

mandate m_travel_001
IDLE
intent
Book a one-way flight from Bangalore to London for under $600
limits
600 USDC per payment · 1200 USDC total per run · test USDC on Solana devnet
allowlist
merchant.airline.example, merchant.agency.example

Your key is sent with the request, used for that run only, and never stored or logged. Get a free key.

A real Gemini agent searches fares, gets a quote, reads the fare's listing page and asks to pay. Interlock decides on what it actually did.

Run a payment to see the decision, its signed trace and the settlement.

Static controls cannot see this

The injected payment goes to an allowlisted merchant, under the cap, on the right chain. Wallet-level policy engines would pass it. The difference only shows up in where the instruction came from.

01

Deterministic

Counterparty allowlist, per-payment cap, cumulative budget, currency and chain.

microseconds
02

Provenance

Taint tracking for payments. Every step carries a trust level; we fire when untrusted content overrides, redirects, or asks to be concealed.

microseconds
03

Semantic

A model judges intent-to-payment consistency. Only sees what the cheap layers could not settle.

optional · runs with your key

Why this keeps happening

May 2026
~$200K

A Morse-code prompt injection made Grok emit a transfer instruction. An automated trading agent executed it on-chain before most of it was recovered.

SlowMist
February 2026
$1.78M

An oracle bug in AI-assisted contract code triggered a bad debt event on Moonwell. AI, human reviewers and a governance vote all signed off. Nothing caught it.

rekt.news

Priced per decision

Per authorization decision and on risk reduction - never a percentage of payment value. That only works if a decision is nearly free to produce, which is why the layers are ordered the way they are. An authorization layer that costs a model call per payment cannot sit inline in a checkout.

What it does not catch yet

Layer 03 is a model's judgement, so it is only as good as the model and it costs a call - which is why it only sees what layers 01 and 02 could not settle. And provenance is only as honest as the harness that labels each step: an agent framework that hides where text came from defeats it.