Question.
Would you hand your AI agent your card?
Not your wallet. A card of its own, with limits you set and a freeze only you control.
Reply yes, no, or "only with limits".
haltercard.pro
Notch.
Four of five. The card is built, the rules are written down, the limits are on chain.
One notch left.
Boundaries.
What the card can't do, on purpose: no tokens, ETH only. No contract calls with card funds. No reversals. No yield. No recovery if the owner's key is lost.
Keep balances small. It is listed in the docs, plainly.
Issue.
Anyone can issue a card. Connect, name the agent's address, set the caps, pick an allowlist or any address, add an expiry if you like, fund it.
One transaction. You hold it from there.
haltercard.pro/issue.html
Notch.
Three of five. The source is public and matches what runs on chain.
More line out. Still held.
Source.
The card contract is on Sourcify, exact match. 250 lines of our own code.
No owner, no admin key, no upgrade path, no fee. Not audited by a third party, and the docs say so.
haltercard.pro/docs.html
Key.
The agent never gets the owner's wallet. It gets a fresh key with a little gas, named on the card.
Wiring it takes about fifteen lines of viem: simulate, then pay(id, to, amount, memo). A broken rule fails the simulation first.
haltercard.pro/docs.html
Notch.
Two of five. The limits are set, the freeze works without the agent's say.
A little more line.
Freeze.
If the agent's key ever leaks, the owner freezes the card in one transaction. Every pay() reverts until it is unfrozen.
The agent can't unfreeze it, change a rule or withdraw. That line stays in the owner's hand.
Statement.
The agent paid three times. Each payment is a row on chain with its memo: "test transfer", "within limits", "statement row".
0.00005 ETH each, all inside the caps. The explorer shows the same three pay() calls.
Order.
Every payment passes eight checks, always in the same order: not closed, not frozen, not expired, recipient allowed, above zero, within the per-payment cap, within the day, within the balance.
One fails and nothing is sent.
Limits.
Before the agent spent anything, the owner wrote four lines on the card:
Per payment: the most one pay can move.
Daily: per 24-hour window.
Recipients: an allowlist, or any address.
Expiry: optional.
Notch.
The first of five. The card exists: one contract, one demo card, three small payments on the statement.
The line gets let out one notch at a time.
Live.
Card #1 sits on the home page, read from Robinhood Chain each time you open it.
Balance 0.00045 ETH. Per payment 0.0001. Daily 0.0003. Three payments of 0.00005 so far.
No wallet needed to look: haltercard.pro







