Hi y’all
A quick update that landed well on Ethereum Magicians this week and is entirely built on Gnosis.
Context
A thread [blockbird and babyblueviper1] converged on a 4-layer stack for “bounded mandates” giving AI agents limited, revocable budgets instead of unlimited wallet access. The layers are Identity (ERC-8004), Witness/Validation (recomputable proofs), Metering (cross-venue cursor), and Enforcement (on-chain revert).
Our piece is Layer 4: Enforcement.
We deployed two Safe modules on Gnosis Chain that sit in agent treasuries and enforce spend limits:
| Module | Address | What it does |
|---|---|---|
| DailyBudgetModule | 0xdd80e384cAc42b4e17e0edf0609573E4A16C6d4e |
Caps daily USDC/net value flow. Reads remainingToday() and reverts if exceeded. |
| HumanInTheLoopModule | 0x012A0571d0DFd7eF85d0706875FEc39555e99A96 |
Blocks transactions above a threshold until Safe owner co-signs. |
Both are standard Gnosis Safe modules installable via Safe App or enableModule. They are already live in the GhostAgent Safe at 0xb7e493e3d226f8fE722CC9916fF164B793af13F4.
Why Gnosis
Agent treasuries need frequent, low-value transactions (MCP tool calls, API payments, micro-swaps). Reverting on every exceeding spend is only viable where gas is negligible and finality fast. Gnosis is the natural home for agent economics at scale.
Where it heads
The Ethereum Magicians thread surfaced that per-Safe modules alone are insufficient — a cursor/metering layer is needed for cross-Safe, cross-chain budgets. We don’t have that yet. But the enforcement primitives are concrete, testable, and composable with whatever metering standard emerges (ERC-1833 or others).
Try it
If you’re building agents or agent infrastructure on Gnosis:
-
Install the modules on your Safe
-
Query
remainingToday()orthreshold()before proposing transactions -
Let us know if the revert behaviour matches your use case
Code: github.com/eyemine/ghostagent-ninja
Live agent dashboard: ghostagent.ninja (Normies Hackathon entry, Gnosis-native)
I welcome feedback, especially on module UX and whether the HITL threshold should be time-decaying or absolute.