Onchain firewall for AI agents
AI agents are about to hold real money.Leash makes sure they only do what you meant.
A Solana program holds the agent's funds and checks every payment against limits you signed, a guard's co-signature, and your approval. A fooled agent cannot talk its way past code.
- LOW18Acme Designagent alonePAID
- MEDIUM120CloudHost Incguard co-signedPAID
- MEDIUM45CloudHost Incguard co-signedPAID
- HIGH150Unlisted addresshidden line in an invoicePENDING
- DIRECT150Unlisted addressNotAllowlistedBLOCKED BY CHAIN
- MEDIUM190CloudHost Inctask approved 60BLOCKED BY GUARD
Attacker received0 dUSDC
Every action passes three layers
- Layer 1LOW
Mandate
Enforced by the program
Caps, an allowlist and an expiry you signed. A small payment to a listed vendor passes here.
- Layer 2MEDIUM
Guard co-sign
A separate service and key
It decodes the transaction, checks the rules, and asks an independent judge. No signature, no payment.
- Layer 3HIGH
Human or device
You, or a hardware key
Large or unlisted payments wait onchain and move nothing until you approve them.
When the agent gets fooled
A hidden line in an invoice tells the agent to send 150 dUSDC to an attacker.
The agent falls for it. The payment sits pending, and no money moves.
PENDING
A stolen agent key calls the program directly, skipping everything else.
The program rejects it onchain: the recipient is not on the allowlist.
BLOCKED BY CHAIN
The injection names a real vendor, with an inflated amount the mandate would allow.
The guard refuses to co-sign, because the amount does not match the task.
BLOCKED BY GUARD
Live from devnet
- Program, devnet
- 8XkD...Cu2C(opens explorer)
- Vaults onchain
- Blocked attempts
- Refused by the program, in its last 1,000 transactions