From spending limits to policy engines: rethinking what a wallet enforces
Most wallets that offer “spending limits” store them the same way they store your display currency preference: as a row in a database, read by an app that can also just... not read it.
That's fine for preferences. It's not fine for a limit you're relying on to contain the damage from a phished signature or a compromised device. A setting an app enforces is only as strong as the app enforcing it.
What changes when the account enforces it
On Doma, your daily limit, your allowlist, and your time-locks live in audited modules on your own smart account. The chain checks them on every transaction, the same way it checks your signature. There's no server in the loop that could be down, compromised, or simply configured to skip the check.
The trade-off, honestly
A policy engine is slower to change than a settings toggle — some rules, like a vault withdrawal, are deliberately delayed by design. That friction is the point: the same delay that's mildly annoying to you is the window that stops an attacker who already has your signature.
Set a limit, an allowlist, or a time-lock once — and your account keeps it. Not our servers. The contract.