Sélectionner une page

A multisig Safe wallet holds a significant position in a protocol’s treasury or a DAO’s operating funds. The wallet is protected by multiple signers, distributed across independent devices and potentially across different geographic regions. Yet a single interaction with a decentralized exchange, lending protocol, or token bridge can create an authorization that bypasses every signature requirement. The problem is not a breach of Safe’s smart contract logic. It is the approval pattern that Web3 applications demand: a request to spend an unlimited amount of a user’s tokens, often framed as a one-time convenience that never expires.

For a multisig organization, this design choice becomes a critical vulnerability. If one signer’s key is compromised, or if one signer becomes malicious, an unlimited allowance can be drained without requiring the second, third, or fourth signature that normally protects the treasury. The attacker does not need to break the multisig structure. They only need to activate an approval that the legitimate signers granted weeks or months earlier, when they were interacting with what appeared to be a trusted dApp. Safe Wallet provides tools to prevent this outcome, including native transaction batching and granular spend limit controls, but only if users understand the risk and choose to use them.

Diagram showing the relationship between dApp approval flows, multisig governance, and transaction batching in Safe Wallet security architecture

How unlimited allowances became the Web3 default

Early decentralized finance required users to approve token spending in two steps. First, the user signed an approval transaction granting the smart contract permission to transfer up to a specified amount. Second, the actual transaction (a swap, deposit, or trade) could proceed. This two-transaction pattern was cumbersome for ordinary users, and it created a poor experience on high-gas networks. The industry response was to increase the approval limit, and eventually to set it to an arbitrary maximum, often represented as the largest number a blockchain can represent.

From the perspective of a protocol developer, an unlimited approval reduces friction. Users see one approval screen instead of two transactions. The user experience improves, and adoption grows. From the perspective of a wallet user, unlimited approvals trade a temporary inconvenience for permanent risk. Once an allowance is granted, it persists indefinitely unless explicitly revoked. The smart contract enforces it mechanically: if the signer holds the private key to the account, or if the account is controlled by a multisig smart contract, the approval can be spent without any additional authorization from the original decision-makers.

For a single-signature wallet, unlimited approvals create a moderate risk. A user’s private key is compromised, and an attacker can drain tokens through existing approvals. The user can revoke unused approvals, but only if they remember which applications they have authorized and check them regularly. For a multisig wallet used by a DAO or treasury, the risk becomes catastrophic. A DAO might use a 3-of-5 multisig, meaning any three of five signers can approve a transaction. If one signer becomes compromised and an unlimited approval exists, an attacker can move significant assets without touching the multisig governance structure at all. The approval itself bypasses it.

Why multisig users are particularly exposed

A multisig arrangement exists precisely because no single party should control an asset unilaterally. A 3-of-5 DAO safe, a 2-of-3 company treasury, or a 2-of-2 partnership wallet each depend on the assumption that compromising a minority of signers is insufficient to move funds. That assumption holds true for transactions initiated through the multisig contract itself. When a transaction is proposed, signers review it, and enough of them approve it, the transaction executes according to the multisig rules. But that assumption fails completely for pre-authorized allowances.

An unlimited approval granted by the multisig Safe becomes a standing delegation. A single compromised signer, working with an attacker who controls a dApp or market maker smart contract, can drain the entire balance without ever submitting a transaction to the Safe for multisig approval. The attack requires no social engineering of other signers, no phishing, no governance proposal. It only requires one stolen key and an existing allowance. The larger the treasury and the longer the allowance has persisted without being revoked, the more attractive the target becomes.

The Web3 industry has acknowledged this risk in isolation. Platforms like this page and others now provide allowance scanning tools and revocation interfaces so users can see which applications have permissions and remove them. But the existence of a cleanup tool does not solve the fundamental problem: most users do not regularly audit their allowances, and multisig governance rarely includes a formal process for reviewing and revoking approvals. The default assumption remains that approvals are safe, even when they are not.

Safe Wallet’s native transaction batching as a technical defense

Safe Wallet provides a native batching feature that addresses the approval problem at its root: by eliminating the need for unlimited pre-approvals. Instead of granting an allowance and returning later to execute a transaction, Safe users can construct a batched transaction that approves the minimum amount and executes the swap or trade in a single multisig proposal. The transaction is submitted, reviewed by all required signers, and executed atomically. If any step fails, the entire batch reverts, and no partial state is left behind.

The mechanics are straightforward. A user creates a Safe transaction that consists of multiple actions in sequence: approve exactly 100 USDC, execute a swap for ETH, and send the ETH to a destination address. All three actions are bundled into one transaction proposal. When signers review the proposal in Safe’s interface, they see the complete sequence, not just the first approval. If the swap price looks unfavorable or the destination address appears suspicious, they can reject the entire proposal. Only after enough signers have approved does the batched transaction execute, and it does so atomically: either all three steps complete, or none of them do.

This design eliminates the information asymmetry that makes unlimited allowances dangerous. Instead of asking signers to approve an authorization with no context, Safe’s batching makes the context explicit. The signer sees the exact amount being approved, the exact action being taken, and the exact outcome being pursued. More importantly, the multisig governance layer remains intact. The approval is not pre-authorized and waiting to be exploited by a compromised key. It is part of a proposal that has been reviewed and approved by the threshold of signers required by the Safe’s configuration.

Configuring spend limits and role-based access control

Safe Wallet also supports granular spending limits, which can be configured per token, per timeframe, and per role. An organization might designate one signer as an « operator » with authority to spend up to 10 USDC per day without requiring additional approvals from the other signers. This reduces the operational friction of needing three approvals for every small payment while preserving strict control over high-value transfers. The spend limit is enforced by the smart contract and is not dependent on human vigilance or a periodic cleanup process.

Role-based access control in Safe Wallet allows different signers to have different permissions. One signer might approve transactions under 1000 USDC unilaterally, while larger transactions require consensus. Another signer might have permission to interact only with whitelisted addresses or dApps. These controls can be updated as the organization evolves, and they remain codified in the safe’s configuration rather than scattered across multiple approvals on different dApp contracts.

The practical benefit is that legitimate operations become faster, while the attack surface remains narrow. A signer with limited authority cannot accidentally (or maliciously) drain the treasury even if their key is compromised. The attacker’s access is constrained by the role itself, not by the hope that old approvals have been revoked. For organizations managing substantial treasuries, combining transaction batching, spend limits, and role-based access control creates a defense-in-depth approach that makes unlimited approvals not only unnecessary but operationally inferior to the alternatives.

The real-world cost of approval management

Some organizations treat approval management as an operational burden and accept the risk rather than adopt the stronger defensive practices. A treasury team might grant an unlimited allowance to a trusted exchange, intending to revoke it after each use. Weeks or months pass, the allowance is forgotten, and the risk compounds. If two or more signers are involved in the operation, coordination overhead can delay revocation indefinitely. One signer might believe another signer has handled it, or the revocation transaction might be submitted but not executed due to insufficient gas fees or network congestion.

The alternative—requiring multisig review and batching for every transaction—does introduce coordination overhead. Each swap or operation must be proposed, reviewed, and voted on before execution. For a DAO with hundreds of members or a 7-of-11 multisig, this process can take hours. The organization must choose between the slower but safer path and the faster but riskier one. Most organizations choose incorrectly, optimizing for speed early on and then remaining locked into that choice because reverting to multisig review would break existing workflows and integrations.

Safe’s design allows these organizations to adopt a third path: use batching and spend limits for routine operations, preserving the multisig review process for decisions that actually require organization-wide consensus. A treasurer with a daily spend limit of 50,000 USDC can execute swaps and manage liquidity without needing approval from five other signers every time. But a decision to move 10 million USDC out of the treasury into a new yield strategy still requires multisig review, ensuring that major decisions remain subject to governance while day-to-day operations remain efficient.

Common mistakes in Safe dApp integration

Even experienced multisig users make predictable errors when interacting with dApps through Safe. The first mistake is treating approval interactions the same as other transactions. An approval appears in Safe’s interface like any other transaction proposal. A signer might review the transaction hash or the destination address without realizing that they are authorizing unlimited future spending. Safe’s transaction preview feature helps by showing the approval amount explicitly, but users must enable and pay attention to it rather than clicking through.

The second mistake is assuming that revocation will happen automatically. An organization grants an unlimited approval, executes a single swap, and intends to revoke the approval afterward. Days pass, and the revocation transaction is never submitted. The approval remains active, and the risk persists. Safe’s best practice is to include the revocation as part of the batched transaction: approve the exact amount needed, execute the swap, and revoke the allowance, all in one atomic proposal. If any step fails, none of them execute, and the allowance is not left behind.

The third mistake is forgetting that approvals are specific to the blockchain and the token contract but not to the dApp interface. An organization approves spending on USDC through a Uniswap interface, believing they have approved only the Uniswap router. But the approval is actually granted to the router contract itself, and that router contract could, in principle, be upgraded or manipulated by an attacker who gains control of the governance mechanism. The approval should not exceed what is needed for one transaction, and it should be revoked afterward. Assuming that approving a dApp’s router is safe because the dApp is well-known is how treasuries get drained.

Auditing existing Safe wallets for approval risk

An organization using Safe Wallet can audit its current approval exposure by connecting the wallet address to token approval scanners and reviewing the allowances that have been granted. For each approval, the organization should ask: do we still intend to use this dApp? Can we reduce the allowance to a fixed amount instead of unlimited? Can we revoke it entirely? A responsible treasury team should conduct this audit quarterly and include approval review in the governance process whenever a new dApp integration is planned.

Safe’s native interface can display transaction history and approvals granted, but external tools provide more comprehensive visibility. Services that track blockchain state can show all active approvals for a Safe address, the amount remaining available, the dApp contract, and the date the approval was granted. A Safe with dozens of active approvals is a red flag: either the organization is actively using that many dApps (and thus has that many separate attack vectors), or it has accumulated approvals from past experiments and integrations that are no longer relevant.

The best practice is to establish a formal process: before approving any dApp, the Safe delegates decide whether batching plus spend limits would be more appropriate. If an approval is necessary, it should be revoked as part of a batched transaction that completes the intended operation. If an approval must persist (as it might for an on-chain market maker that needs permanent access), the amount should be capped to the amount actually needed, and the approval should be reviewed monthly. Approval management is not a one-time setup task; it is an ongoing operational responsibility.

The future of Safe integrations and the approval standard

The Web3 ecosystem has not yet settled on a standard for limited-amount approvals or time-based revocation. Some protocols have begun implementing approval patterns that grant access for a fixed timeframe, automatically expiring after a set period. Others have introduced permit-style signatures that execute the approval and the transaction atomically, eliminating the need for two separate blockchain interactions. Safe Wallet’s support for batching and spend limits positions it ahead of most single-signature wallets in terms of native protection against approval-based attacks.

As multisig wallets become more widely adopted by protocols, DAOs, and organizations managing significant treasuries, the approval risk becomes less of a niche concern and more of a systemic issue. Safe’s role as an increasingly important multisig security standard means that its design decisions influence how the entire ecosystem manages approval risk. When a Safe user interacts with a dApp through a batched transaction with limited approvals, they implicitly pressure the dApp to support that pattern. Over time, the ecosystem may converge toward better defaults, but that convergence depends on users and organizations actually demanding better security rather than accepting unlimited approvals as inevitable.

The imperative is clear: multisig users should treat every approval request with suspicion, use Safe’s batching and spend-limit features to eliminate unnecessary pre-authorizations, and maintain an audit of existing approvals as part of routine treasury management. The security that a multisig wallet provides—the elimination of single points of failure—can be completely undermined by a forgotten unlimited approval. But that outcome is not inevitable. It is the result of design choices made by individual organizations, and those choices can be made better.

Frequently asked questions

Can a dApp drain a Safe wallet even if it requires multiple signatures?

Yes, if an unlimited approval has been granted to the dApp’s smart contract. An approval bypasses multisig governance because it is a pre-authorized standing permission. A single compromised signer can activate the approval without requiring approval from the other signers. This is why limited approvals and transaction batching are critical for multisig security.

How does Safe’s transaction batching prevent approval-based attacks?

Batching combines the approval, the swap or trade, and the revocation into a single atomic transaction proposal. All three steps must be reviewed and approved by the required signers before any step executes. If the swap fails or the revocation is missing, the entire batch reverts, preventing a dangling approval from remaining active.

What should an organization do if it has already granted unlimited approvals?

Audit all active approvals using a token approval scanner or Safe’s interface. For each approval, decide whether to revoke it immediately, reduce the allowance to a specific amount, or keep it active with a planned expiration date. Include approval revocation in governance discussions and establish a quarterly review process to prevent approval accumulation in the future.