Skip to content
All work
LIVE2026

Ledger Agent Firewall

AI Transaction Security

A deterministic security layer that catches prompt-injected payment instructions before they ever reach a hardware wallet for signing.

Ledger Agent Firewall — AI Transaction Security
0K+
Project views
Engagement from Ledger leadership
Recognition

Demo

A poisoned invoice caught before the transaction it produces ever reaches the Ledger signing gate.

Problem

An AI agent processing an invoice will read whatever is in that invoice — including instructions hidden inside it. A poisoned document can redirect a payment to an attacker's address, and the agent will produce a perfectly well-formed transaction for it. The model is the vulnerability, so the model cannot also be the check.

Why I built it

Treasury agents are being deployed right now on the assumption that the model will behave. That assumption fails on the first adversarial invoice. The fix has to sit outside the model, at the hardware boundary.

What I built

A verification gate between agent output and hardware signing. The user's stated intent is captured first. The invoice is scanned separately. The AI-produced transaction is then compared deterministically against the original intent — not by another model, by code — and the difference drives a risk decision. Only transactions that survive that comparison reach the Ledger signing gate, where the device's trusted display shows the user what they are actually signing.

How it works

  1. User intent captured
  2. Invoice scanned
  3. AI produces a transaction
  4. Deterministic comparison against original intent
  5. Risk decision
  6. Ledger signing gate — trusted display confirms

What I did

  • Security architecture and threat model
  • Deterministic comparison engine
  • Ledger DMK and Speculos integration
  • API design with OpenAPI and Zod validation
  • Full frontend

Technology

  • Gemini
  • Ledger DMK
  • Speculos
  • TypeScript
  • React
  • Vite
  • Express
  • OpenAPI
  • Zod

Challenges

The comparison layer cannot use an LLM — that would reintroduce the exact vulnerability it exists to close. Everything had to reduce to deterministic checks over structured transaction fields, which means the parsing has to be exhaustive rather than clever.

What I learned

Hardware wallets already solve this problem; the industry just stopped routing decisions through them. The trusted display is the last surface an attacker cannot reach, and any agent architecture that bypasses it is trusting the wrong component.