Multi-Agent Treasury: One Wallet Per Agent, Zero Chaos
Running an AI agent swarm means running a swarm of wallets. Done wrong, it's a security nightmare. Here's how to structure crypto for an agent team.
Most teams deploying AI agents treat wallets as an afterthought. They give the most capable agent the most funds, set a high spending limit because manual approval gets annoying, and call it done. Then the DeFi agent proposes a transaction the marketing agent was supposed to review, something executes that shouldn't, and the post-mortem reveals that four agents were sharing effectively the same treasury with no isolation whatsoever.
Wallet architecture for agent swarms isn't an advanced problem. It's a day-one problem. And the right design isn't complicated — it just requires thinking about it before something goes wrong.
This is the exact structure we've seen work best for teams running 3+ agents on Klow.
The core principle: one wallet, one agent, one mandate
Every agent in your swarm should have its own wallet with its own funding and its own spending policy. This isn't just security hygiene — it's the architectural choice that makes the whole system legible and auditable.
When each agent has a dedicated wallet, you get four things for free:
- →Blast radius isolation — if a wallet is compromised or an agent misbehaves, only that agent's funds are at risk. Not the team's entire treasury.
- →Per-agent audit trails — every transaction in that wallet is attributable to that agent, with full context. No forensics required.
- →Mandate clarity — the wallet's funding level and spending policy reflect the agent's role. A monitoring agent gets $20 for gas. A DeFi trading agent gets a meaningful stake. Amounts encode intent.
- →Clean accounting — you can see exactly what each agent has spent, on what, and whether the ROI justifies the allocation.
In Klow, this is the default architecture. Every deployed agent gets a unique secp256k1 keypair at provision time — a real EVM wallet, isolated by design. You're not opting into per-agent wallets. You're opting out if you somehow want something different.
The five-agent swarm: wallet structure in practice
Let's walk through a realistic swarm — five agents covering a crypto-native startup's core functions — and map out the wallet design for each one.
Agent 1: Chief of Staff (Manager)
Role: coordinates the team, assigns tasks, writes weekly briefings, escalates to the founder when needed. Does not transact. Does not touch DeFi. Does not pay vendors.
Wallet policy: Watch-only. The Chief of Staff can see balances across the team's wallets (for reporting), but initiates zero transactions. Funding: $5 USDC — just enough to cover the occasional on-chain lookup if needed.
Why watch-only: the Manager's job is coordination and decision-making, not execution. Giving it spending power creates a principal-agent problem — the Manager could route funds between agents, which muddies accountability. Keep it clean.
Agent 2: DeFi Portfolio Manager
Role: monitors Aave positions, yield opportunities on Aerodrome and Compound, proposes rebalances, executes when approved.
Wallet policy: Auto-approve under $100 (gas top-ups, small rebalances). Manual approve for anything larger. Hard daily cap: $500. Chain allowlist: Base only.
Funding: start with $500–$2,000 USDC depending on your position sizes. This is the agent most likely to actually need funds, so fund it purposefully — not just "whatever's left over." The daily cap is your safety net, not your operating budget.
Why Base only: this agent has no business transacting on Ethereum mainnet (gas costs would eat the micro-rebalances) or exotic chains. Chain allowlist is your first line of defense against unexpected behavior.
Agent 3: Growth / Marketing Agent
Role: monitors Twitter/X for mentions, drafts content, tracks competitor moves, manages sponsored post budgets.
Wallet policy: Manual approve for all transactions. This agent shouldn't need to move money often — but when it does (buying data feed credits, paying for a specialized API), you want to see it. No chain allowlist restriction needed because this agent rarely goes on-chain at all.
Funding: $50 USDC. Top up monthly if needed. If the growth agent is spending more than $50/month in on-chain activity, something interesting is happening that you should be reviewing anyway.
Agent 4: DevOps / Infrastructure Agent
Role: monitors Render deploys, GitHub Actions, API health checks, sends alerts when something breaks.
Wallet policy: Watch-only. A DevOps agent should never need to spend money — its job is observation and alerting. If it's ever proposing a transaction, that's a sign the agent's instructions have drifted from its mandate.
Funding: $0. Seriously. This agent has no business handling funds. If you find yourself wanting to give it spending power, stop and ask why.
Agent 5: Research Agent
Role: web search, competitive analysis, market research, summarization on demand.
Wallet policy: Auto-approve under $5 (API credit top-ups for data providers). Manual approve for anything larger. This is the agent most likely to encounter pay-per-query data services.
Funding: $25 USDC. Enough for months of data queries at typical rates. Review consumption quarterly.
The treasury overview: what this looks like in aggregate
- →Chief of Staff: $5 · Watch-only · No chain restriction
- →DeFi Portfolio Manager: $500–$2,000 · Auto-approve <$100, manual above · Base only · $500/day cap
- →Growth Agent: $50 · Manual approve all · No chain restriction
- →DevOps Agent: $0 · Watch-only · N/A
- →Research Agent: $25 · Auto-approve <$5 · No chain restriction
- →Total exposure: $580–$2,080 across 5 agents, with the DeFi agent holding the overwhelming majority by design
Notice: the total treasury across all agents matches the risk profile of the swarm's most consequential role. The DeFi agent holds most of the value because that's its job. Every other agent is funded for its actual operational needs — not padded "just in case."
Spending policy tiers: a decision framework
Not every agent needs the same policy. Here's the decision tree:
- →Does this agent's mandate require on-chain transactions? No → Watch-only, always.
- →Does this agent execute high-stakes financial decisions? Yes → Manual approve for everything above a minimal threshold. Start strict, loosen after calibration.
- →Does this agent do routine, low-value transactions (gas top-ups, API credits <$10)? Yes → Auto-approve under a tight threshold. Manual above.
- →Is this a production agent you've run for 30+ days with a clean track record? Maybe → Consider autopilot with a hard cap. Review the cap monthly and adjust based on actual spend patterns.
The general principle: start more restrictive than you think you need to be. Loosening a policy is easy. Tracing a rogue transaction is not.
“The point of spending policies isn't to slow your agents down. It's to ensure the moments where money moves are exactly the moments you expect money to move. That trust is earned, not assumed.”
Funding patterns: how to keep agent wallets topped up without babysitting them
Agent wallets drain slowly under normal operation. The failure mode isn't a dramatic spend event — it's the DeFi agent running low on gas at 2 AM when a liquidation risk emerges and being unable to act.
Three approaches teams use:
- →Manual top-up: check balances in the Klow dashboard weekly. Simple, fine for small swarms where attention isn't a constraint.
- →Balance-triggered alerts: instruct each agent to notify you when its wallet balance falls below a threshold ("ping me on Telegram when your wallet drops below $20"). Agents can monitor their own balances — use that.
- →Keeper agent: one agent in the swarm (usually the Manager) monitors all other agents' wallet balances and proposes top-ups when any falls below its threshold. The top-up proposal comes to you for approval; you approve, keeper agent routes the funds. Fully automated balance management with human oversight on each transfer.
The keeper pattern is the most scalable for larger swarms. It's also a good demonstration of agents-coordinating-agents on the financial layer — a preview of where agent economies go.
What to audit weekly
Running a multi-agent treasury isn't a set-and-forget operation. A 15-minute weekly review catches most issues before they compound:
- →Transaction history per agent: did each agent only do what it was supposed to do? Any transactions that look surprising?
- →Wallet balances: any agent running low? Any agent holding significantly more than it needs?
- →Rejected proposals: what did agents try to do that you rejected? If the same type of proposal keeps getting rejected, either update the agent's instructions or acknowledge you're blocking it from its mandate.
- →Approval rate: if you're approving 100% of proposals without changes, you can probably expand auto-approve scope. If you're rejecting more than 20%, your agent needs better calibration.
- →Chain activity: for agents with chain restrictions, verify no attempts were made on restricted chains (Klow blocks these, but it's worth checking the attempt log).
The multi-sig layer: when to bring in hardware
For most teams running agent swarms, Klow's built-in spending policies — enforced at the platform level — are sufficient. But there's a class of operation where you want the additional guarantee of on-chain enforcement: large treasury moves, smart contract deployments, governance votes.
For these, consider adding a multi-sig layer. Keep most agent funds in the per-agent wallets. Maintain a "cold reserve" in a Safe multi-sig that requires 2-of-3 (or 3-of-5) signers — a combination of your hardware wallet, a team member's key, and Klow's approval mechanism. Agents can propose transfers from the reserve; the multi-sig enforces that at least two humans approve before funds move.
This is Klow v2 roadmap territory — Safe/ZeroDev session keys that move spending limit enforcement from the application layer to the chain level. But you don't have to wait for it. You can set up the Safe separately today and manually route large treasury operations through it.
The common mistakes (and what they cost)
- →Shared wallets across agents: blows up audit trails, destroys blast-radius isolation. Cost: you can't tell which agent caused a problem, and a single misbehavior risks all shared funds.
- →Over-funding agent wallets "just in case": idle funds in agent wallets are funds that aren't earning yield and are sitting in a more exposed position than your cold storage. Fund agents for their mandate, not for hypotheticals.
- →Setting autopilot on day one: you need 2–4 weeks of manual approve operation to understand what an agent actually proposes before you can set a calibrated threshold. Skip this and your first "autopilot moment" is likely to be a transaction you didn't anticipate.
- →Ignoring rejected proposals: rejections are signal. They tell you what the agent thinks its mandate allows. If those proposals keep coming, your instructions and your policy are out of alignment.
- →No balance monitoring: discovering an agent can't transact because it ran out of gas — at the exact moment it needed to act — is the most avoidable operational failure in agent finance.
The architecture in one sentence
Separate wallets. Funded for the mandate. Policies calibrated to the risk profile. Weekly audit. That's it.
It sounds obvious once you read it. The surprising thing is how rarely teams set it up correctly on the first pass — and how much of the chaos in agent-wallet incidents traces back to violating one of those four properties.
Klow's design enforces the first property automatically — every agent gets its own wallet. The other three are your job. Do them before the first transaction goes through, not after the first one goes wrong. New to agent wallets? Start with fund your first AI agent wallet. Ready for the next level? Read about upgrading to a smart contract wallet.
“A well-structured agent treasury isn't about paranoia. It's about legibility. When every wallet has one owner, one mandate, and one policy, you always know exactly where the money is and why it moved.”
Try it yourself
Deploy your first AI agent in minutes. 7-day free trial, no card required.
Start free →