DOMAWALLET
Back
[27 OCT 2025]  PRODUCT

From spending limits to policy engines: rethinking what a wallet enforces

TEAM DOMA, PRODUCT
One policy engine. Every transaction checked.
SHARE

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.

account 0x7d3a…9f21 {
daily_limit $2,500
allowlist 12 addresses
vault_delay 24h
}
A policy read directly from the account

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.
Never miss new content