{"id":72668,"date":"2026-09-18T21:12:59","date_gmt":"2026-09-18T18:12:59","guid":{"rendered":"https:\/\/lwallet.com.ua\/?p=72668"},"modified":"2026-09-18T21:12:59","modified_gmt":"2026-09-18T18:12:59","slug":"clear-signing-blind-signing","status":"publish","type":"post","link":"https:\/\/lwallet.com.ua\/en\/clear-signing-blind-signing\/","title":{"rendered":"Clear Signing vs Blind Signing: how to know what you\u2019re actually signing"},"content":{"rendered":"\r\n\r\n\r\n<p class=\"wp-block-paragraph\">A hardware wallet protects your private key, but that does not mean its screen will always tell you, in plain language, <strong>exactly what you are signing<\/strong>. When you use a dApp, the browser may show a familiar action \u2014 a transfer, swap, or <code>approve<\/code> \u2014 while the hardware wallet receives the underlying transaction data. If the device cannot decode that data, you may be left with a hash, raw data, or a generic warning. That gap is what <strong>Clear Signing<\/strong> is designed to address.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The consequences are easy to see in the Radiant Capital and Bybit incidents. At Radiant, malware compromised the computers of at least three developers. The signers saw the transaction they expected on screen, but the infected machines altered the data before it reached the hardware wallets. They ultimately produced three valid signatures for a malicious transaction, and roughly <strong>$50 million<\/strong> was drained from the protocol.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The Bybit incident involved a different compromise of the environment used to manage its multisig cold wallet. Malicious JavaScript misled the signers about the transaction they were approving: instead of a routine transfer, they authorized a change to the logic of the multisig cold wallet. The attacker then moved roughly <strong>$1.46 billion<\/strong> in assets. The attacks were technically different, but they exposed the same problem: <strong>the interface on your computer cannot be treated as the final source of truth<\/strong>. Below, we will look at what Clear Signing actually verifies and what you should check on the device before you approve a request.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"nm-block-heading wp-block-heading\">What a hardware wallet actually signs<\/h2>\r\n\r\n\r\n<div class=\"wp-block-image wp-block-image size-large is-style-default blog-img\">\r\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"1024\" height=\"573\" src=\"https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic2-1024x573.jpg\" alt=\"Clear Signing and Blind Signing: what a hardware wallet actually signs\" class=\"wp-image-72635\" title=\"\" srcset=\"https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic2-1024x573.jpg 1024w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic2-766x429.jpg 766w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic2-300x168.jpg 300w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic2-1536x860.jpg 1536w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic2-349x195.jpg 349w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic2-679x380.jpg 679w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic2.jpg 1631w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n<\/div>\r\n\r\n\r\n<p class=\"wp-block-paragraph\">When you use a dApp, the transaction is first prepared by software on your computer or phone \u2014 Ledger Wallet, Trezor Suite, MetaMask, Rabby, or another interface connected through WalletConnect, for example. The transaction data is then sent to the hardware wallet, where the private key signs it.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>The hardware wallet does not see the website itself.<\/strong> It does not know what the browser button says or which address you just checked on your monitor. That is why the device screen is there for more than approving a request: it is where you verify the operation the device is actually being asked to sign.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Before getting into Clear Signing, it helps to separate a few concepts that are often mixed together:<\/p>\r\n\r\n\r\n\r\n<ul class=\"nm-block-list wp-block-list\">\r\n<li><strong>A transaction vs a message signature.<\/strong> A transaction is broadcast to the network and can immediately change a balance or contract state. An EIP-712 signature is created off-chain and costs no network fee at the time of signing, but it can later be used to authorize something such as a Permit or Permit2 permission.<\/li>\r\n\r\n\r\n\r\n<li><strong><code>approve<\/code> vs <code>transfer<\/code>.<\/strong> <code>transfer<\/code> moves tokens. <code>approve<\/code> gives another address or contract permission to spend them later. After a malicious <code>approve<\/code>, your balance may look unchanged even though the permission has already been granted.<\/li>\r\n\r\n\r\n\r\n<li><strong>Signing vs broadcasting.<\/strong> The hardware wallet creates the signature. The software on your computer or phone broadcasts the signed transaction to the network.<\/li>\r\n\r\n\r\n\r\n<li><strong>A dangerous permission does not mean your seed phrase leaked.<\/strong> If you approve a malicious <code>approve<\/code>, the private key can remain safely inside the hardware wallet while the contract still receives permission to spend tokens. Other signatures can move assets immediately or change the configuration of a smart account.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">For a deeper look at these mechanisms, see our guide to <a href=\"https:\/\/lwallet.com.ua\/en\/approve-permit-walletconnect\/\">Approve, Permit, Permit2 and WalletConnect<\/a>. It explains how token permissions work and why disconnecting WalletConnect does not revoke something you have already authorized.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Clear Signing<\/strong> means the device can decode the request and show a human-readable action \u2014 for example, <em>Approve USDC<\/em>, the amount, the address receiving the allowance, or the recipient. With <strong>Blind Signing<\/strong>, those details are not available and the screen may show a hash, raw data, or a generic warning instead. Either signature can be cryptographically valid. The practical difference is <strong>whether you were able to verify the meaning of the request before approving it<\/strong>.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"nm-block-heading wp-block-heading\">Radiant and Bybit: when the interface did not match what was signed<\/h2>\r\n\r\n\r\n<div class=\"wp-block-image wp-block-image size-large is-style-default blog-img\">\r\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"1024\" height=\"573\" src=\"https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic3-1024x573.jpg\" alt=\"Radiant Capital and Bybit: transaction data was altered during signing\" class=\"wp-image-72638\" title=\"\" srcset=\"https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic3-1024x573.jpg 1024w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic3-300x168.jpg 300w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic3-766x429.jpg 766w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic3-1536x860.jpg 1536w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic3-349x195.jpg 349w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic3-679x380.jpg 679w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic3.jpg 1631w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n<\/div>\r\n\r\n\r\n<p class=\"wp-block-paragraph\">On October 16, 2024, Radiant Capital lost <strong>about $50 million<\/strong>. The attack began with the compromise of computers used by at least three developers. During what appeared to be a normal transaction, the malware altered the data sent to the hardware wallets even though the operation looked legitimate in Safe, the multisig wallet interface, and in Tenderly, a transaction simulation and debugging service. The goal was to collect three valid signatures for a malicious <code>transferOwnership<\/code> transaction and take control of critical Radiant contracts. Mandiant later linked the attack with high confidence to UNC4736, a DPRK-linked threat cluster.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">On February 21, 2025, Bybit faced a different version of the same trust problem. The Safe{Wallet} environment \u2014 the platform the signers used to manage the multisig wallet \u2014 was compromised, and malicious JavaScript showed them an expected transaction while they were actually authorizing a change to the logic of an Ethereum multisig cold wallet. The attacker then moved roughly <strong>$1.46 billion<\/strong> in assets, including more than 400,000 ETH.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Multisig does not add much protection in this situation if every signer is relying on the same compromised interface and cannot independently verify the request on their device. Multiple people can end up approving the same altered transaction.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"nm-block-heading wp-block-heading\">ERC-7730: how a wallet can show what you are signing<\/h2>\r\n\r\n\r\n<div class=\"wp-block-image wp-block-image size-large is-style-default blog-img\">\r\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"1024\" height=\"573\" src=\"https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic4-1024x573.jpg\" alt=\"ERC-7730 and Clear Signing: turning transaction data into readable details\" class=\"wp-image-72641\" title=\"\" srcset=\"https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic4-1024x573.jpg 1024w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic4-766x429.jpg 766w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic4-300x168.jpg 300w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic4-1536x860.jpg 1536w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic4-679x380.jpg 679w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic4-349x195.jpg 349w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic4.jpg 1631w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n<\/div>\r\n\r\n\r\n<p class=\"wp-block-paragraph\">To show something meaningful such as \u201cApprove 100 USDC,\u201d a wallet needs to know how to interpret the data for that specific contract. On EVM networks, one of the standards used for this is <strong><a href=\"https:\/\/eips.ethereum.org\/EIPS\/eip-7730\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">ERC-7730 (Structured Data Clear Signing Format)<\/a><\/strong>.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">A JSON descriptor is created for a contract to explain how its transactions should be presented. The wallet can then identify fields such as the amount, token, address, and action inside the calldata and render them in a form a person can actually review.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">ERC-7730 was created on February 7, 2024. As of September 2026, it is still a Draft EIP, but it is already used by production tooling and the Clear Signing registry. In May 2026, the Ethereum Foundation began coordinating the open Clear Signing registry infrastructure as part of its broader security work.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>The absence of an ERC-7730 descriptor does not automatically mean Blind Signing.<\/strong> Wallets can decode some operations with their own built-in parsers. You fall back to a hash or raw data when the device cannot interpret the request through ERC-7730 or its own decoding logic.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">ERC-8176 is a related proposal for attestations that help wallets verify where an ERC-7730 descriptor came from and how it is tied to a contract. <strong>The goal is for the device to display information derived from the transaction itself, not simply repeat whatever the website claims you are signing.<\/strong><\/p>\r\n\r\n\r\n\r\n<h2 class=\"nm-block-heading wp-block-heading\">How Clear Signing works on Ledger and Trezor<\/h2>\r\n\r\n\r\n<div class=\"wp-block-image wp-block-image size-large is-style-default blog-img\">\r\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"1024\" height=\"573\" src=\"https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic5-1024x573.jpg\" alt=\"How Clear Signing works on Ledger and Trezor\" class=\"wp-image-72644\" title=\"\" srcset=\"https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic5-1024x573.jpg 1024w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic5-766x429.jpg 766w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic5-300x168.jpg 300w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic5-1536x860.jpg 1536w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic5-349x195.jpg 349w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic5-679x380.jpg 679w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic5.jpg 1631w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n<\/div>\r\n\r\n\r\n<h3 class=\"nm-block-heading wp-block-heading\">Ledger<\/h3>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ledger has supported <a href=\"https:\/\/developers.ledger.com\/docs\/clear-signing\/overview\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Clear Signing<\/a> since 2023. For ERC-7730, support is available through Ledger Wallet over WalletConnect, its built-in Web3 browser, Ledger Wallet Button, and compatible third-party wallets. <strong>Whether Clear Signing is available depends not only on the device, but also on the interface used to connect it to the dApp.<\/strong><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">The Ethereum app also has a setting called Blind signing. If a particular dApp genuinely requires it, you can enable the setting for that interaction and turn it off again afterward. There is no reason to leave it enabled permanently.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ledger also uses <strong>Transaction Check<\/strong>. Before signing, the transaction can be simulated and the device receives an authenticated risk report. This adds another layer of protection, but it does not replace reviewing the transaction details on the hardware wallet itself. If the device shows an action you did not intend, reject the request.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"nm-block-heading wp-block-heading\">Trezor<\/h3>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">In September 2026, Trezor <a href=\"https:\/\/trezor.io\/blog\/news\/clear-signing-comes-to-trezor-our-flagship-security-feature-of-2026\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">added ERC-7730 Clear Signing support<\/a>. It is available on <strong>Trezor Safe 7, Safe 5, Safe 3, and Model T<\/strong> running Universal Firmware 2.12.4 or later. There is no separate switch to enable: supported transactions are decoded automatically through Trezor Suite, WalletConnect, and Trezor Connect.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Trezor Clear Signing covers Ethereum and EVM-compatible L2s and sidechains, but a supported ERC-7730 descriptor is required for a particular smart contract. Early supported protocols included 1inch, Aave, Hyperliquid, Lido, LiFi, and OpenCover. If the device cannot decode the operation, it falls back to the usual hash and Blind Signing warning. <strong>Trezor Model One does not support ERC-7730 Clear Signing.<\/strong><\/p>\r\n\r\n\r\n\r\n<h3 class=\"nm-block-heading wp-block-heading\">MetaMask and Rabby<\/h3>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">MetaMask, Rabby, and other software wallets can also decode transactions, run simulations, and warn about suspicious permissions. The difference is that all of this still happens on the same computer or phone where the dApp is open. <strong>If you are using a hardware wallet, you should still verify the details on its own screen rather than relying only on the browser.<\/strong><\/p>\r\n\r\n\r\n\r\n<h3 class=\"nm-block-heading wp-block-heading\">Bitcoin, Solana, and other networks<\/h3>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">ERC-7730 is designed for the EVM ecosystem, so it does not apply to Bitcoin, Solana, or Cosmos. Those networks have their own transaction formats and decoding logic.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">For example, Ledger still documents Blind Signing for some more complex Solana dApp interactions. This does not apply to every Solana transaction: standard operations can often be displayed normally. What you see depends on the action and the version of the Solana app installed on the device.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"nm-block-heading wp-block-heading\">Clear Signing does not guarantee a safe transaction<\/h2>\r\n\r\n\r\n<div class=\"wp-block-image wp-block-image size-large is-style-default blog-img\">\r\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"1024\" height=\"573\" src=\"https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic6-1024x573.jpg\" alt=\"Clear Signing and unlimited approve: readable does not always mean safe\" class=\"wp-image-72647\" title=\"\" srcset=\"https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic6-1024x573.jpg 1024w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic6-300x168.jpg 300w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic6-766x429.jpg 766w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic6-1536x860.jpg 1536w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic6-349x195.jpg 349w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic6-679x380.jpg 679w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic6.jpg 1631w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n<\/div>\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Clear Signing helps you understand the request, but it does not decide whether the contract itself is trustworthy. An unfamiliar dApp can ask for unlimited access to your USDC, and the device may correctly show <em>Approve<\/em>, the spender, and the allowance. <strong>If you did not intend to grant that permission, you should reject it even when every field is decoded correctly.<\/strong><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Transaction-decoding code can have bugs as well. In 2026, Trezor fixed an issue where Clear Signing for an ERC-20 <code>transfer<\/code> or <code>approve<\/code> could fail to display a non-zero ETH value being sent in the same transaction.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">In August 2026, Ledger Donjon published three more security bulletins involving transaction verification before signing:<\/p>\r\n\r\n\r\n\r\n<ul class=\"nm-block-list wp-block-list\">\r\n<li><strong>LSB-023.<\/strong> Under certain conditions, the device could display one set of parameters while signing another. Protection was added to the Ethereum app in version 1.22.2, with the underlying SDK fix included in v26.6.1.<\/li>\r\n\r\n\r\n\r\n<li><strong>LSB-024.<\/strong> When processing a large array, the device could display only part of the data even though the signature covered the full structure. The fix was included in Ethereum app 1.22.3.<\/li>\r\n\r\n\r\n\r\n<li><strong>LSB-025.<\/strong> In a swap flow, an expected payment could be replaced with an <code>approve<\/code> using the same parameters. This issue was also fixed in Ethereum app 1.22.3.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ledger reported no evidence that these three issues had been exploited against users. They did not expose the Secure Element or private keys. <strong>You should still keep both the device firmware and the blockchain apps installed on it up to date.<\/strong><\/p>\r\n\r\n\r\n\r\n<h2 class=\"nm-block-heading wp-block-heading\">What to do if the device only shows a hash<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Sometimes a device simply cannot decode an operation: the contract may be new, the format may be unusual, or the blockchain app may not support it yet. In that case, you are back to Blind Signing. <strong>If the device only shows a hash, do not rely on the browser alone \u2014 verify the data independently before signing.<\/strong><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">For more complex operations, such as an EIP-712 signature or a Safe multisig transaction, you can calculate the hash independently and compare it with the value shown by the device. Safe uses <code>safeTxHash<\/code>, and Cyfrin provides a tool called <code>safe-hash<\/code> for this purpose. If you suspect the computer may be compromised, calculating the hash on that same machine defeats the point; use another trusted device.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">If the hashes match, the hardware wallet received the same data you calculated independently. That still says nothing about whether the transaction itself is safe \u2014 a malicious transaction can have a perfectly correct hash. ERC-8213 proposes a standardized way to make this kind of verification easier. Trezor 2.12.4 can already display a calldata digest, although this is not yet supported universally across wallets.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Simulation in Tenderly or in the wallet itself can also help by showing the state changes expected from a transaction. It should not be your only check, however. Radiant Capital used Tenderly, and the attackers still managed to alter the data at the signing stage.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"nm-block-heading wp-block-heading\">What to check before signing<\/h2>\r\n\r\n\r\n<div class=\"wp-block-image wp-block-image size-large is-style-default blog-img\">\r\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"1024\" height=\"573\" src=\"https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic7-1024x573.jpg\" alt=\"What to check before signing a transaction on a hardware wallet\" class=\"wp-image-72650\" title=\"\" srcset=\"https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic7-1024x573.jpg 1024w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic7-766x429.jpg 766w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic7-300x168.jpg 300w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic7-1536x860.jpg 1536w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic7-349x195.jpg 349w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic7-679x380.jpg 679w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic7.jpg 1631w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n<\/div>\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ledger and Trezor present transaction details differently, but the same checks matter before you sign:<\/p>\r\n\r\n\r\n\r\n<ol class=\"nm-block-list wp-block-list\">\r\n<li><strong>Network.<\/strong> If you are working on Arbitrum but the device shows Ethereum mainnet, do not approve the transaction until you understand why.<\/li>\r\n\r\n\r\n\r\n<li><strong>Address or contract.<\/strong> For meaningful amounts, compare the full address against an independent source. Checking only the first and last few characters is no longer enough: address poisoning and deliberately generated look-alike addresses can make a malicious address appear familiar.<\/li>\r\n\r\n\r\n\r\n<li><strong>Action.<\/strong> <code>Transfer<\/code>, <code>Approve<\/code>, <code>Swap<\/code>, or <code>Set delegation<\/code> should match what you intended to do in the dApp. If you expected a swap but the device shows <code>approve<\/code>, stop and verify the request first.<\/li>\r\n\r\n\r\n\r\n<li><strong>Token and amount.<\/strong> Check them together, and pay particular attention to unexpected decimal precision.<\/li>\r\n\r\n\r\n\r\n<li><strong><code>approve<\/code> limit.<\/strong> Check whether you are granting access to only the amount needed or creating an unlimited allowance.<\/li>\r\n\r\n\r\n\r\n<li><strong>Spender and Permit \/ Permit2 deadline.<\/strong> Verify who is receiving permission to spend your tokens, how much they can spend, and when the authorization expires.<\/li>\r\n\r\n\r\n\r\n<li><strong>Delegation \/ EIP-7702.<\/strong> If you did not intend to delegate the account to a contract, reject the request. EIP-7702 can change how an ordinary EOA behaves. In a USENIX Security \u201926 study covering seven networks, researchers identified 924 malicious contract accounts associated with EIP-7702; confirmed losses in the analyzed incidents exceeded $2.3 million.<\/li>\r\n\r\n\r\n\r\n<li><strong>An unexplained hash or raw data.<\/strong> If you cannot verify it independently, reject the request and find out why the device is not showing a readable description.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">If you are still <a href=\"https:\/\/lwallet.com.ua\/en\/best-hardware-wallets-2026\/\">choosing a hardware wallet<\/a>, ERC-7730 Clear Signing is currently supported on Trezor Safe 3, Safe 5, Safe 7, and Model T, but not Model One. On Ledger, support depends on the blockchain app, connection method, and dApp. Standard Bitcoin transactions do not need ERC-7730 because Bitcoin wallets use their own transaction format to display the address and amount.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"nm-block-heading wp-block-heading\">What to do if you already signed something you do not understand<\/h2>\r\n\r\n\r\n<div class=\"wp-block-image wp-block-image size-large is-style-default blog-img\">\r\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"1024\" height=\"573\" src=\"https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic8-1024x573.jpg\" alt=\"What to do after signing a transaction or request you do not understand\" class=\"wp-image-72656\" title=\"\" srcset=\"https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic8-1024x573.jpg 1024w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic8-300x168.jpg 300w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic8-766x429.jpg 766w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic8-1536x860.jpg 1536w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic8-349x195.jpg 349w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic8-679x380.jpg 679w, https:\/\/lwallet.com.ua\/wp-content\/uploads\/2026\/09\/blog-clear-signing-blind-signing-18-09-2026-content-pic8.jpg 1631w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n<\/div>\r\n\r\n\r\n<p class=\"wp-block-paragraph\">First, determine <strong>what you actually authorized<\/strong>. A signature by itself does not reveal your seed phrase or private key. The next step depends on the request: an <code>approve<\/code> or Permit2 signature may leave an active permission, a <code>transfer<\/code> or swap may already have moved assets, EIP-7702 may have installed a delegation, and a smart-account transaction may have changed wallet settings.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">If the issue is a token permission, review active <code>approve<\/code> allowances and Permit2 permissions through revoke.cash or the block explorer for your network, and revoke anything you do not recognize. For EIP-7702, check separately for an active delegation. Revoking on-chain permissions requires a network fee.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">If you are unsure what the signature did and the address holds an amount you cannot afford to lose, consider creating a new wallet on another trusted device and moving the assets after checking the old address. If there is any reason to believe someone may have seen your <a href=\"https:\/\/lwallet.com.ua\/en\/how-to-store-a-seed-phrase\/\">seed phrase<\/a>, <strong>do not continue storing funds under that seed<\/strong>.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">[vc_message color=&#8221;warning&#8221; message_box_style=&#8221;classic&#8221; message_box_color=&#8221;alert-warning&#8221; style=&#8221;rounded&#8221;]<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">If the computer used to sign the transaction may be infected, do not use it to revoke permissions, create a new wallet, or move funds. Use another device you trust.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">[\/vc_message]<\/p>\r\n\r\n\r\n\r\n<h2 class=\"nm-block-heading wp-block-heading\">The key takeaway<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">A hardware wallet isolates the private key, but it cannot decide whether a signing request is safe. <strong>Before approving anything, read what the device itself is showing you.<\/strong> Clear Signing makes that easier, but it is not available for every transaction.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Before signing, verify the network, address or contract, action, token, and amount.<\/strong> If the device only shows a hash and you do not know how to verify it, reject the request and find out why the transaction cannot be decoded first.<\/p>\r\n\r\n","protected":false},"excerpt":{"rendered":"<p>A hardware wallet protects your private key, but that does not mean its screen will always tell you, in plain language, exactly what you are signing. When you use a dApp, the browser may show a familiar action \u2014 a transfer, swap, or approve \u2014 while the hardware wallet receives the underlying transaction data. If &hellip;<\/p>\n","protected":false},"author":10,"featured_media":72633,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2725],"tags":[],"class_list":["post-72668","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-security"],"_links":{"self":[{"href":"https:\/\/lwallet.com.ua\/en\/wp-json\/wp\/v2\/posts\/72668","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lwallet.com.ua\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lwallet.com.ua\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lwallet.com.ua\/en\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/lwallet.com.ua\/en\/wp-json\/wp\/v2\/comments?post=72668"}],"version-history":[{"count":2,"href":"https:\/\/lwallet.com.ua\/en\/wp-json\/wp\/v2\/posts\/72668\/revisions"}],"predecessor-version":[{"id":72672,"href":"https:\/\/lwallet.com.ua\/en\/wp-json\/wp\/v2\/posts\/72668\/revisions\/72672"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lwallet.com.ua\/en\/wp-json\/wp\/v2\/media\/72633"}],"wp:attachment":[{"href":"https:\/\/lwallet.com.ua\/en\/wp-json\/wp\/v2\/media?parent=72668"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lwallet.com.ua\/en\/wp-json\/wp\/v2\/categories?post=72668"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lwallet.com.ua\/en\/wp-json\/wp\/v2\/tags?post=72668"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}