Home · Blog · Wrench-attack wallet comparison

Wrench-attack wallet comparison — how 12 mobile wallets handle coercion

Published 2026-08-30 · Al Jobson · Public-docs review, sources at the bottom · Corrections welcome: security@veyrnox.com

Every mobile self-custody wallet ships a threat model. Almost none of them include the physical one. This post looks at what actually happens when the adversary is not remote — when they are standing in front of you and the phone is in their hand.

Veyrnox Wallet logo
Published by Veyrnox Wallet
Self-custody, coercion-resistant · veyrnox.com · Public audit trail

The scenario

The industry-standard version is the "$5 wrench attack": Randall Munroe's 2009 xkcd that pointed out you don't need to break the cryptography if you can break the person holding it. The scenario has since generalised. It covers:

The victim, in every case, is standing next to a person with leverage, and holding a phone that either does or does not have an answer for it. Wallets designed only for remote threats have the same answer as no wallet at all: unlock, and lose everything.

Six axes of coercion resistance

What could a wallet actually do about this? Six distinct capabilities, from weakest to strongest:

  1. Duress PIN. A second PIN that, when entered, does something other than unlock the real wallet — wipe, decoy, or lockout.
  2. Decoy vault. When the duress PIN is entered, the wallet unlocks into a pre-loaded plausible-looking wallet with a small balance. The attacker sees the same UI they expect and walks away with what you were prepared to lose.
  3. Panic wipe. A gesture or PIN that destroys the local wallet state on demand — key material zeroised, session data cleared. Recovery from the user's own backup remains possible; the device on the table is now empty.
  4. Hidden vault. A separate account or vault behind the visible one, accessed through a different unlock. A search of the visible wallet reveals nothing about the hidden one.
  5. Network isolation in the decoy session. The decoy vault makes zero backend calls that could leak the real user's identity, addresses, or balance — no analytics, no price feeds for hidden addresses, no crash reporter beacons. Enforced at the code layer, not in a settings toggle.
  6. Biometric-only unlock refused for signing. Because biometrics are the weakest coercion defence — an attacker can hold your phone up to your face — high-value operations should require an additional factor the attacker doesn't know.

Why network isolation is the axis nobody talks about. Ledger and Trezor have shipped hidden wallets for years. But if a "hidden" wallet quietly queries a price feed for its hidden addresses on unlock, the request lands on the wallet provider's backend and on the network path between phone and server — either of which the adversary can observe or subpoena. A hidden wallet that leaks its own existence over the wire is not hidden.

The matrix

Twelve mobile self-custody wallets, ranked roughly by install base and mindshare in mid-2026. Every cell reflects what is documented in public sources as of 2026-08-30. Cells marked Unknown are ones where the wallet ships to millions of users and its public documentation does not describe the behaviour clearly enough to score. That is itself a data point.

Wallet Duress PIN Decoy vault Panic wipe Hidden vault Network-isolated decoy 2FA on signing
VeyrnoxYesYesYesYesYes (I3)Yes (biometric + KEK)
MetaMask MobileNPDNPDNPDNPDn/aNPD
Trust WalletNPDNPDNPDNPDn/aNPD
PhantomNPDNPDPassive*NPDn/aNPD
RainbowNo¹NPDNPDNPDn/aNPD
ZerionNPDNPDNPDNPDn/aNPD
Coinbase WalletNPDNPDNPDNPDn/aNPD
ExodusNPDNPDNPDNPDn/aNPD
ZengoNPDNPDNPDYes²n/aYes³ (MPC 2-of-2)
Rabby MobileNPDNPDNPDNPDn/aNPD
Uniswap WalletNPDNPDNPDNPDn/aNPD
ArgentNPDNPDNPDNPDn/aPartial⁴ (Guardians)

NPD = Not Publicly Documented as of 2026-08-30. A wallet could ship a feature and simply not document it; a user under duress cannot use a feature they cannot discover, so from a real-world defence standpoint the two are equivalent — but we do not claim "No" for anything a first-party source has not explicitly confirmed absent.

* Phantom wipes the local encrypted backup after 7 wrong PIN attempts — this is an involuntary lockout, not a user-triggerable panic gesture.
¹ Rainbow's "No" for duress PIN is independently confirmed by Walletbeat's public assessment, which lists duress mode as a recommended-but-missing feature.
² Zengo's Bitcoin Vault holds Bitcoin balances that do not appear in the main wallet view and are gated by 3D FaceLock. Zengo docs. This is a shipped hidden-vault feature — the only one on this list outside Veyrnox.
³ Zengo's 2FA on signing is structural: every signature is a 2-of-2 MPC between the user's device and Zengo's server. A coerced biometric alone cannot produce a signature. Zengo security-in-depth.
Argent's Guardians are a smart-contract-wallet feature that requires Guardian approval for large transfers and config changes. Designed for social recovery, but they meaningfully raise the bar on coerced signing of high-value transactions. Argent docs. Argent's small-transaction signing is not Guardian-gated.

Per-wallet notes

MetaMask Mobile

The dominant EVM mobile wallet. Unlock is biometric or 6-digit PIN. There is no duress PIN, decoy account, or panic wipe documented in the MetaMask support portal. The threat model in the public documentation focuses on phishing, malicious dApps, and seed-phrase compromise — all remote threats.

Trust Wallet

Multi-chain, Binance-owned. Biometric or passcode unlock. The Trust Wallet community docs describe security as biometric, passcode, and seed-phrase backup. No coercion-scenario features are documented as of writing.

Phantom

Solana-first, now multi-chain (native Bitcoin support added late 2025). Biometric unlock and password. Phantom's public security documentation covers scam-detection warnings, transaction previews, and seed-phrase protection. No duress or decoy features documented. One adjacent feature: after 7 wrong PIN attempts Phantom wipes the local encrypted backup — an involuntary lockout, not something a user under duress can trigger deliberately.

Rainbow

Ethereum-focused, well-designed UI. Biometric unlock. Rainbow does not document any coercion-resistance features, and the absence is independently confirmed by Walletbeat's public wallet assessment, which lists duress mode as a recommended-but-missing feature. Rainbow is open source, so if this changes the absence can be re-verified in commits.

Zerion

Portfolio-first, EVM-focused. Biometric or password unlock. No public documentation of coercion-resistance features.

Coinbase Wallet

Non-custodial arm of the Coinbase exchange. Biometric unlock, optional cloud backup of the encrypted seed. The Coinbase Wallet help centre does not describe a duress PIN, decoy, or panic wipe. Cloud backup is a separate discussion — it is a resilience feature, not a coercion defence.

Exodus

Multi-chain, desktop-and-mobile. Biometric or password unlock on mobile. The Exodus support portal covers seed-phrase, password, and biometric security. No coercion features documented.

Zengo

MPC-based wallet — no seed phrase, key split as a 2-of-2 MPC between the user's device and Zengo's own servers (not a third party). Every signature requires both shares. This is structurally the strongest 2FA-on-signing on the list: a coerced biometric alone cannot produce a signature, because the server share must independently participate. Zengo also ships Bitcoin Vault, a shipped hidden-vault feature — Bitcoin balances in a Vault do not appear in the main wallet view and are gated by 3D FaceLock. Zengo does not document a duress PIN, decoy vault, or user-triggered panic wipe.

Rabby Mobile

Recent mobile port of the popular EVM desktop wallet. Biometric or password unlock. Very new; public documentation is still developing. No coercion-resistance features documented at time of writing — flag for re-check as documentation matures.

Uniswap Wallet

Uniswap Labs' first-party mobile wallet. Biometric unlock and passcode. Public documentation focuses on swap safety, network selection, and transaction preview. No duress or decoy features documented.

Argent

Smart-contract wallet with social-recovery Guardians. The Guardians were designed for the "lost seed phrase" problem, but they also produce a partial 2FA-on-signing effect: high-value transfers and account-config changes require Guardian approval, which is not something an attacker holding the phone can produce alone. Below the daily transfer limit, signing is still gated only by the on-device unlock — a phone unlocked under duress can move small amounts. Argent does not ship a duress PIN, decoy vault, or panic wipe.

Veyrnox

Ships all six axes of coercion resistance as the differentiating product decision. Duress PIN unlocks a decoy vault with a plausible pre-loaded balance and identical UI. Panic wipe destroys visible-wallet state on demand. Hidden vault is separately accessed through a different unlock. Every decoy or hidden session runs in I3 mode — zero backend calls, enforced at the code layer with a CI check that fails the build if a suspicious string leaks into a decoy-tagged path. Signing is gated by biometric plus a hardware-bound KEK operation in the Secure Enclave (iOS) or StrongBox (Android where available). Full technical scope on /features/deniability. Independent white-box audit posted on /audit.

The count, honestly

Of the 12 major mobile self-custody wallets reviewed:

The honest read is not "everyone else is negligent." Zengo's MPC signing model is a genuinely strong 2FA that many wallets should copy. Argent's Guardians defend high-value moves. The read is that no wallet other than Veyrnox has designed for the specific moment the phone is in the attacker's hand and the biometric can be forced — and that moment is where the physical-world threat model lives.

Every "Not publicly documented" in the matrix is exactly that — an absence in the wallet's own first-party documentation as of 2026-08-30. A wallet could ship a feature and simply not document it, and a real user under duress cannot use a feature they cannot discover. If a wallet team can point at first-party documentation showing a feature we've missed, email security@veyrnox.com with the link and the table will be updated with a public correction record.

What this changes for the reader

If your threat model is only remote — phishing, dApp exploits, seed-phrase theft — most wallets on this list handle it comparably. Choose on UX, chain support, or brand. The coercion axis does not matter to you.

If your threat model includes any of: face-to-face OTC selling, travel through jurisdictions with device-inspection powers, a public wallet address with visible balances, or family members you love but do not fully trust with your keys — the coercion axis is the difference between a plausible bad outcome and a permanent one. Choose accordingly.

Method

Each wallet was scored by public documentation review only. Sources: official help portals linked inline above, app-store descriptions, and each wallet's public GitHub or documentation site where one exists. No wallet was jailbroken, decompiled, or tested with a live coercion setup. Scoring date: 2026-08-30.

A cell was scored "No" only when the wallet's own public documentation does not describe the feature. If a wallet has shipped a coercion-resistance feature and does not document it, please email security@veyrnox.com with a link and the table will be updated with a public correction record on this page.

Argent's Guardian model is called out specifically because it is a real security feature that solves a different problem (key loss) and is sometimes cited in coercion discussions. It is not scored as coercion protection because it does not defend the unlock screen.

Hardware wallets (Ledger, Trezor) are out of scope for this comparison because they are not mobile self-custody wallets. Their hidden-wallet features protect the seed but do not address network-layer leakage during a decoy session — a related discussion for a separate post.

Sources

Every "Yes", "No", "Partial", or "NPD" verdict is grounded in a first-party public document. The specific documents:

Corrections and updates

This page will be updated in place when wallets add features or when better documentation surfaces. Every substantive update will be dated in a changelog below.

Try the wallet that has an answer →