Curb

Your bank card has a daily limit.Your wallet doesn't.

One bad click can empty a crypto wallet.

Curb holds your funds and caps how much can leave per day — so a mistake, or a stolen key, costs you a day. Not everything.

Monad Testnet · free testnet MON · nothing here is worth real money

Left to spend today

Try it — no wallet needed

Ask the contract to send from this vault. It answers for real.

01

Set a limit

Pick what you'd be willing to lose in a day. Deposit into your vault — the contract holds the funds, not your key.

02

Spend under it

Sends work normally and confirm in a few hundred milliseconds. Recipients get plain MON at any address. Nothing to claim.

03

The chain blocks the rest

Go over your limit and the contract refuses — no dialog to click through. Lowering the limit is instant; raising it waits.

The obvious way, and why it fails

Why not just use EIP-7702?

It's the fashionable answer: delegate your wallet to a contract that enforces a limit. No custody, no migration. I designed it that way first.

It doesn't work — and not subtly.

“EIP-7702 delegation does not restrict an EOA's ability to send normal transactions. The key holder retains full control… delegated code doesn't intervene.”
Monad docs, EIP-7702

Delegated code runs when the account is called — never when your key signs an ordinary transaction. And the delegation clears whenever you like. So a 7702 spending limit is a switch the attacker flips off: the bad click just removes it first.

You can't limit a key you still hold. You have to not hold the money.

The part nobody puts on their landing page

What Curb doesn't do

A security tool that only lists its wins is marketing. Here's what someone holding your key can still do.

A stolen key still spends your limit
Every window, indefinitely. Curb bounds the damage; it doesn't prevent it.
~2× your limit in one burst
Windows are fixed, not rolling. Spend the cap just before the reset and again just after. There's a test pinning exactly this.
A raise you don't notice will land
You get your delay to cancel it. At the unlock moment, whether your cancel or their apply gets included first is an ordinary mempool race.
Your own exit is capped too
That's the product, not a bug. Deposit only what you're content to withdraw at your chosen rate.
Why this chain

Speed isn't the feature. It's why you'd keep it on.

Honest answer: a spending limit works on any chain. It doesn't need Monad.

But Curb puts a contract between you and every send. On a 12-second chain you'd feel that tax on every transaction — and a safety feature you feel is a safety feature you switch off within a week.

Monad returns the receipt in the same request as the send. The protection stops being something you notice. That's the whole argument.

Under the hood

30

contract tests, including a reentrancy attacker and solvency fuzzing

1

monolithic contract — no proxies, no coordination

2

bugs found by an independent security review, both fixed before launch

0

admin keys, backdoors, or upgrade paths. Nobody can reach your vault, including me

Credit

This isn't a new idea.

Argent shipped daily transfer limits years ago. Safe has allowance modules. The idea that your wallet should have a ceiling is old, correct, and somehow still not the default — which is the actual point.

I have about $20 in crypto and I've opened a wallet once, because sending felt like defusing something. My bank card has never scared me like that. It has a limit.