Vault
Holds the protocol's token accounts. Every payout goes through it: owners are paid back at once, everything else at most 2% an hour and 5% a day. The rest waits as a public ticket.
Bulkhead holds a Solana protocol's vaults. Your own deposit always comes back. Everything else leaves at most 2% an hour.
An attacker took admin power. Bulkhead's limits belong to the program, not the admin.
Paying owners back what they own is instant, always. Everything else is rate-limited.
Even with the admin keys stolen. The rest waits in a public queue.
Tightening is instant. Any guardian can veto.
Holds the protocol's token accounts. Every payout goes through it: owners are paid back at once, everything else at most 2% an hour and 5% a day. The rest waits as a public ticket.
Holds the program's upgrade key. Every upgrade waits 72 hours in public and can be vetoed. One guardian can stop the program in one transaction. No code changes.
Freeze, cancel, extend, veto, abort. They can stop money. They can never move it or choose who receives it. Only live guardians count.
Upgrades wait 72 hours. Any guardian can stop the program.
cases where Rust and Python agree exactly.
Drift had a rate limiter; the admin controlled it. Bulkhead's limit sits outside the admin's reach. It also tells the difference between returning your own deposit, which is never limited, and paying out someone else's money, which is.
No. Deposits, withdrawals of your own funds and ordinary borrows never touch the limiter.
A guardian can delay unbacked payouts by freezing for up to 24 hours per call. It can't move funds, choose a recipient or block anyone's own deposit. Only live guardians count, and unfreezing needs a live quorum.
That's the biggest risk, and the reason every rule is stated three ways and checked on millions of cases. Before mainnet: audits, TVL caps, then burning Bulkhead's own upgrade key.
It doesn't detect attacks, protect user wallets, protect AMM pools or run an oracle. It buys time; people still have to use that time.
Not yet. It runs on devnet, the code is open source under Apache-2.0, and SECURITY.md says plainly what is unaudited.
Every number on this page reruns with one command, against real devnet transactions. Read the code →