Skip to main content

AI Agent Security Checklist Before Giving an Agent Funds

An AI agent security checklist to finish before giving an agent access to funds: 15 yes/no checks across keys, tools, limits, approvals, testing, and shutdown.

Written by Eco
AI Agent Security Checklist Before Giving an Agent Funds

An AI agent security checklist is a list of yes/no checks a team completes before an agent can move money, so that each risk has a named control and an owner before launch rather than after an incident. The checklist below has 15 items in six groups: keys, tools, limits, approvals, testing, and shutdown. Every item should be a clear "yes" before the agent touches a funded wallet.
​

The checks draw on the OWASP AI Agent Security Cheat Sheet, OWASP's LLM01:2025 prompt injection guidance, and wallet-level documentation. They are ordered the way a launch review runs: start with where the key lives, end with how to stop the agent. For deeper treatment of individual controls, the checklist links out instead of repeating them.
​

Key facts at a glance:

  • OWASP's agent cheat sheet says to block releases when tool policies, approval logic, or credential scopes change without updated tests (OWASP).

  • OWASP ranks prompt injection as LLM01 in its 2025 list (OWASP LLM01).

  • EIP-7702 describes limited sub-keys, for example spending up to 1% of a balance per day (EIP-7702).

  • Sauce wallet policies limit sends per transaction and per 24 hours, but nothing onchain enforces them (Sauce docs).

What Security Checklist Should I Follow Before Giving an AI Agent Access to Funds?

Before giving an agent funds, confirm the key is outside the agent's reach, the agent has only the tools its task needs, hard limits cap every transaction, a human approves anything above those limits, the setup passed adversarial tests on a fork, and someone can stop the agent and revoke its permissions within minutes.
​

The full checklist:
​

#

Group

Check (answer yes or no)

Source

1

Keys

The signing key is in a wallet, hardware device, or key service the agent's process cannot read.

2

Keys

If the agent must sign, it uses a dedicated hot wallet holding only its working balance.

3

Keys

No private key, seed phrase, or password appears in prompts, logs, environment files the agent reads, or tool outputs.

4

Tools

The agent has the minimum tools for its task, with read-only tools for research work.

5

Tools

Signing tools are off by default and enabled only where required.

6

Tools

External content (web pages, emails, token metadata) is labeled untrusted before it reaches the model.

7

Limits

Per-transaction and per-day spend limits are set outside the model.

8

Limits

Each transaction carries its own bounds: max spend, min received, allowed destinations.

9

Limits

Token approvals are exact amounts, with no unlimited allowances left standing.

10

Approvals

Transactions above the auto-approve limit need a human approval bound to exact parameters and an expiry.

11

Approvals

The system blocks the transaction if policy lookup, approval validation, or logging fails.

12

Testing

Every transaction path was simulated against real chain state, including failure cases.

13

Testing

Injection attempts were run against the agent and produced denials, not transfers.

14

Shutdown

A named person can stop the agent and revoke its signing access, and has rehearsed it.

15

Shutdown

Every decision, tool call, and transaction is logged with enough detail to reconstruct an incident.

The sections below explain why each group matters and what a "yes" looks like in practice.
​

Keys: Where Does the Signing Key Live?

The key should live where the agent cannot read it. An agent running as a user can read whatever that user can read, including wallet files and password sources, so isolation must be by machine, account, or signing service. Where the agent must sign, a small dedicated hot wallet caps the loss.
​

Eco's Sauce security notes spell out why this is item 1. A coding agent's shell commands, and any MCP server it starts over stdio, run under the user's account. Such an agent can read the key files and every password source the account reads, sign through paths that skip the spending policy, and edit the policy file itself. The guidance for wallets the command creates is direct: these are hot wallets, keep small balances in them.
​

A "yes" on items 1 to 3 usually means one of two setups. Either the agent builds unsigned transactions and a separate wallet signs, or the agent signs from a dedicated wallet on a separate machine or account, funded with only what it needs this week. Eco's agent wallets guide compares custody models.
​

Tools: Does the Agent Have Only What It Needs?

Grant each agent the smallest tool set for its job. A research agent needs read tools, not send tools. A payment agent needs a send tool scoped to its task. Every tool that can move funds or grant allowances is a path an injected instruction can take, so remove tools rather than relying on the model to ignore them.
​

The OWASP cheat sheet asks for per-tool permission scoping (read-only vs write), separate tool sets for different trust levels, and explicit authorization for sensitive operations. It also lists what not to do: give agents unrestricted tool access or wildcard permissions.
​

For MCP-based agents, the server's own flags often decide the tool set. The Sauce agent docs, for example, state that a server started with --no-wallets --no-stores lists 18 tools while the default stdio server lists 27, the difference being wallet and Pot tools. Counting the tools an agent sees is a fast audit of item 5.
​

Limits: What Is the Most the Agent Can Lose?

Set limits outside the model at three levels: the wallet (per transaction and per day), the account (permissioned sub-keys or allowances), and the transaction (bounds checked at execution). Each level catches a different failure. Spend controls are covered in depth in Eco's AI Agent Spend Controls article; this checklist only asks that they exist.
​

Item 7 is the familiar one, and Eco's AI Agent Spend Controls compares the options, from one-time tokens to programmable allowances. At the account level, the EIP-7702 specification describes sub-keys with weaker permissions, such as spending a token but not ETH, or interacting only with one application.
​

Item 8 is the in-transaction layer. Eco's Sauce SDK lets an operator write how much the agent can spend, what it must receive, and where funds may go into the transaction itself, so the transaction reverts if any bound fails at execution. It sends on Ethereum, Base, Arc, and Solana. A program enforces only the conditions written into it, per the Sauce docs, so the bounds must come from the operator's config, not from the model.
​

Item 9 closes a gap the other two miss. An allowance granted today can be spent in a later transaction, and Revoke notes a contract with permission to spend tokens can spend them at any time.
​

Approvals and Testing: Has Anyone Tried to Break It?

Approval rules should be written down before launch: which amounts, recipients, or actions need a human, and how approvals bind to exact parameters. Testing should include deliberate attacks, such as injected instructions in fetched content, and confirm the agent produces denials. A setup nobody has tried to break is untested.
​

For approval design, see Human Approval for AI Agent Transactions. The checklist asks only that the rule exists and blocks by default when a check fails.
​

For testing, the OWASP cheat sheet recommends adversarial test suites in CI/CD, regression tests for previously observed injection and tool-abuse failures, and retained evidence of the approval, denial, timeout, or circuit-breaker behavior observed. Run those tests against a fork or simulator, never a funded wallet. Transaction Simulation Tools Compared lists options; the Sauce agent docs note that compiling and simulating need no funded wallet. For injection test cases, see Prompt Injection Attacks on AI Agents That Hold Funds.
​

Shutdown: Can Someone Stop It Today?

Before launch, a named person should be able to stop the agent, cut its signing access, and revoke outstanding allowances, and should have practiced doing it. Logs should be detailed enough to reconstruct what the agent decided and why. A kill switch that has never been tested is an assumption, not a control.
​

The steps and their limits are covered in AI Agent Kill Switch: Stopping an Agent Before It Moves Money. For logging, OWASP lists structured fields for high-risk actions: action classification, authorization outcome, approval identifier, execution result, and policy version. It also warns against logging credentials or personal data in plain text.
​

How to Run the Checklist as a Launch Review

Run the checklist as a meeting with evidence, not a self-assessment. For each of the 15 items, the agent's owner shows the config, log, or test result that makes it a "yes." Any "no" blocks launch until fixed or formally accepted as residual risk with a compensating control, named and dated.
​

Three practices make the review stick:

  • Evidence per item. A screenshot of the tool list the agent sees, the policy file with its limits, a simulation log of a forced revert, and a timed kill-switch rehearsal. OWASP asks production teams to retain evidence of the tested agent version, model provider, tool policy, abuse cases run, and any accepted residual risk with its compensating control, per the cheat sheet.

  • Version the answers. Store the completed checklist next to the agent's code, so a change to tools or limits shows up in review alongside the checklist it invalidates.

  • Re-run on account changes. Moving the agent from a plain wallet to a smart account, for example an ERC-4337 account or an EIP-7702 delegated account, changes items 1, 7, and 14. Eco's guide to AI agent wallets with ERC-4337 and ERC-8004 covers those account types.

Teams that already run security reviews for payment code can fold this list into that process. The difference with agents is item 13: the reviewer should see the agent attacked, not just configured.
​

Where This Checklist Falls Short

A checklist confirms controls exist; it does not prove they work under pressure. Items can pass on paper and fail in practice, limits can be set too high to matter, and new tools can be added after launch without a re-review. Re-run the checklist on every change to tools, limits, models, or signing setup.

  • Offchain policies. Wallet spending limits are checked against a simulation before signing; per the Sauce docs, nothing onchain enforces them.

  • Drift. Agents gain tools over time. OWASP recommends blocking releases when tool policies or credential scopes change without updated tests.

  • Scope. This list covers funds. Agents also handle data, which needs its own review; see Security Risks of Autonomous AI Agents.

FAQ

These are short answers to the questions developers and operators ask most often about securing an AI agent before it gets access to funds. Each answer stands on its own and points to the primary documentation used in this article, retrieved in November 2026, for readers who need the full detail.
​

How much money should an AI agent's wallet hold?

Only its working balance for a short period, refilled by a separate process. The loss from any single failure is then capped at that balance.
​

Is a spending limit enough on its own?

No. A limit caps loss per transaction or day but does not stop many small bad transfers, a wrong recipient, or an unlimited approval. Combine limits with destination allowlists and approvals.
​

Who should own the checklist?

One named person per agent, usually the engineer responsible for its deployment, with sign-off from whoever owns the funds.
​

How often should the checklist be re-run?

On every change to tools, limits, model version, or signing setup, and on a fixed schedule even when nothing changed.
​

Does this apply to agents built with ElizaOS, Solana Agent Kit, or Coinbase AgentKit?

Yes. The checks are framework-neutral. Eco's guides to Solana Agent Kit and ElizaOS cover framework specifics.
​

Sources and Methodology

Did this answer your question?