A user approves what appears to be a routine token swap on Uniswap. The interface shows the expected input and output amounts, the slippage tolerance looks reasonable, and the transaction fee is in line with network conditions. But before the signature is submitted to the blockchain, the wallet has already decoded the raw transaction data, simulated its execution, identified every contract interaction, calculated the actual balance change, and flagged potential risks. That invisible work—the pre-signature security layer—is the difference between a wallet that reacts to problems and one that prevents them. Most users never see it happen. Yet it is precisely what separates Rabby from simpler signing tools that approve transactions first and reveal their consequences later.
The question driving wallet security design is fundamental: at what point in the transaction lifecycle should a user gain visibility into what they are actually approving? A traditional signing interface displays a contract address and some encoded data, leaving the user to either trust the application or decode hex values manually. A transaction simulation changes that calculus by showing the likely outcome before any signature is committed. Rabby Wallet implements this approach across Ethereum and EVM-compatible networks, displaying expected balance shifts, token transfers, NFT movements, and contract interactions before the user signs. This is not a convenience feature. It is a security mechanism that works because it transforms the signing moment from a blind approval into an informed decision.
How transaction simulation prevents invisible losses
A transaction simulation executes the proposed contract interactions against the current blockchain state without actually committing changes. The wallet receives a copy of the pending transaction, runs it through a simulation engine, and observes what balances and states would result. This is computationally different from simply reading the contract code or trusting what a DeFi interface claims will happen. A simulation captures the actual outcome given the current market state, contract logic, and any dependencies on external pricing feeds or other contract calls.
Consider a swap that uses a router contract to source liquidity from multiple pools. The DeFi interface might display a predicted output based on its own price calculations, but market conditions may have shifted between when the estimate was generated and when the user signs. A simulation accounts for this gap by calculating the exact output based on the current pool reserves and fees. If the actual result would be significantly lower than displayed—due to slippage, additional fees, or an unfavorable price movement—the simulation reveals that discrepancy. The user sees a material difference between the promised output and the simulated outcome before committing their signature.
This protection extends beyond simple swaps. A liquidity provision transaction might display an attractive APY, but the simulation can show the exact number of LP tokens received, their current value, and any fees that would be deducted during deposit. A complex multi-step interaction that combines borrowing, swapping, and collateral management becomes legible through simulation. Instead of trusting a dashboard or the DeFi protocol’s estimate, the user receives a concrete prediction of what their wallet state will be after all transactions settle.
The limitation, however, is temporal. A simulation is valid only for the network state at the moment it is performed. Between the simulation and the actual transaction signature, conditions can shift. A popular pool might experience significant trading volume, changing its reserves and the price it offers. A collateral liquidation might occur elsewhere in the protocol, affecting lending rates. These changes are network-wide and inevitable; the simulation cannot prevent them. What it can do is establish a baseline: if the user accepts the current simulated outcome and signs, they have a clear record of what they thought they were approving. If the actual result differs materially, that gap can be investigated and the transaction can be rejected if conditions have changed too far.
Pre-sign security checking: what gets flagged and why
Rabby Wallet implements a detection system that identifies common attack patterns and risky transaction structures before the user ever signs. These checks examine the contract addresses involved, the function calls being made, the tokens being transferred, and the overall transaction pattern. When suspicious elements are detected, the wallet displays a warning rather than proceeding silently. The alerts are not perfect; some high-risk transactions may be legitimate, and some attacks may not be caught. But the goal is to shift the burden toward the attacker: exploits become harder because the user is explicitly warned rather than presented with a plausible-looking screen.
One category of detection targets phishing and replacement scams. If a transaction attempts to transfer an NFT to an unfamiliar address or asks for approval to an unexpected contract, the system can flag that as anomalous. A user might reasonably approve a swap through a well-known DEX router; they should be far more cautious about approving token transfers to an arbitrary address. Rabby distinguishes between these patterns by tracking the transaction structure and recipient. If you approve a token spend for a known contract (like a liquidity pool router) but the transaction also transfers that token elsewhere, the system can raise an alert.
Another detection layer addresses blind approvals and unlimited spending allowances. In Ethereum’s ERC-20 standard, a user must approve a spending limit before a contract can transfer their tokens. Many DeFi interfaces request an unlimited allowance for convenience, meaning the contract can spend as much of that token as it wants indefinitely. If a contract is later compromised or exploited, an unlimited approval becomes a liability. Rabby can detect when an approval is set to the maximum possible value and prompt the user to consider setting a specific limit instead. This does not prevent compromised contracts from draining funds if the approval is already unlimited, but it helps users avoid creating unnecessary vulnerabilities in the first place.
Token validation is another critical layer. A scammer might create a contract with a name similar to a legitimate token, list it on a DEX under a look-alike ticker, and trick users into buying or approving it. When a transaction involves a token transfer, Rabby checks whether the token contract matches known addresses and whether its name and symbol are consistent with what the user is expecting. If the contract address does not match the canonical token on that network, or if it is a newly deployed contract with a suspicious name, a warning appears. This is not a foolproof protection—scammers constantly create new variations—but it surfaces exactly the kind of discrepancy that manual verification might miss in a hurry.
Comparing Rabby’s approach to other wallet signing mechanisms
MetaMask, the most widely used Ethereum wallet, displays transaction data in a relatively raw form: gas price, to address, data hex string. For experienced users or those willing to decode transactions manually, this transparency is valuable. But for most users, it requires trusting either the DeFi interface’s representation or their own ability to read contract code. MetaMask has added some warnings for phishing and suspicious contracts, but the default experience still puts the burden on the user to interpret what they are signing.
Hardware wallets like Ledger and Trezor add an additional signature layer by requiring physical approval on a device, but they typically do not simulate transactions. The user sees an even more compressed representation on the hardware device’s small screen: recipient address, amount, and maybe gas. This isolation from the internet is a security strength, but it increases the likelihood that a user will approve without fully understanding the transaction. If the DeFi interface is phishing or the transaction is malicious, the hardware device’s disconnection does not prevent the user from authorizing it.
Argent, another Ethereum wallet, includes security features like daily limits and customizable transaction rules, but it is custodial—meaning the wallet provider controls key management. That trade-off improves some security properties while eliminating the user’s direct control over private keys. A self-custodial wallet like Rabby Wallet maintains that control while adding transaction visibility. The user retains full custody and also gains pre-sign visibility into what they are approving.
Some blockchain explorers and transaction decoders offer post-hoc analysis: users can paste a transaction hash or encoded data and see what would happen. This is useful for investigation but arrives too late to prevent signature. Rabby integrates this capability directly into the signing flow, making it immediate and unavoidable. The user cannot sign without first seeing a plain-language description of the transaction’s effects.
Why network-specific risks matter for EVM wallets
Rabby Wallet focuses exclusively on Ethereum and EVM-compatible networks—a design choice that allows deep optimization for that ecosystem while maintaining clear scope boundaries. Each EVM chain has different threat landscapes, token lists, known contract vulnerabilities, and attack patterns. Ethereum mainnet has the highest trading volume and also hosts the most sophisticated scams. Arbitrum and Optimism face different liquidity conditions and fee structures. Smaller or newer EVM chains may have fewer security audits and more experimental protocols. A secure wallet must adapt its risk detection to these network-specific contexts.
Transaction simulation quality depends on having accurate state data from each network. Rabby connects to RPC endpoints—services that provide blockchain state information—to fetch the current data needed for simulation. If the RPC provider is compromised or returns stale data, the simulation becomes unreliable. To mitigate this risk, wallets can use multiple RPC providers and cross-check results, but that adds latency and complexity. The user should be aware that transaction simulation is only as good as the data sources the wallet can access.
Token validation also requires maintaining curated lists or checking against chain-native standards. Ethereum has the concept of verified tokens on Etherscan; newer networks may not have equivalent infrastructure. If a network’s token ecosystem is less transparent, Rabby’s detection capabilities will be correspondingly less refined. This is why the wallet displays network-specific warnings more prominently on less-established chains. The overall security model still holds, but the granularity of threat detection varies.
The decision to support only EVM networks means Rabby Wallet does not support Bitcoin or Solana natively, which are fundamentally different protocol designs. Bitcoin uses a different transaction model entirely; Solana has its own program architecture and token standards. Rather than attempt to build a lowest-common-denominator wallet, Rabby has optimized for deep EVM integration. A user who needs Bitcoin and Solana support would use a different wallet alongside Rabby for those assets. This modular approach is more honest about the trade-off between breadth and depth.
Hardware wallet compatibility and the key storage question
A hardware wallet stores the private keys that authorize transactions, keeping them isolated from internet-connected devices. Rabby Wallet can interface with hardware devices like Ledger, Trezor, and similar signers by functioning as a transaction builder and presenter while delegating the actual signature approval to the hardware. This combines Rabby’s pre-sign security features—the simulation, the risk alerts, the balance preview—with hardware-level key isolation.
The workflow functions as follows: the user constructs a transaction in Rabby, reviews the simulation and warnings, then instructs the hardware wallet to sign. The hardware wallet displays its own representation of the transaction and requires physical approval. The user must approve twice: once in Rabby’s interface, confirming they understand the transaction, and once on the hardware device, confirming they authorize the signature. This dual approval is more cumbersome than a single click but creates two independent decision points. If either one spots a problem, the transaction can be stopped.
For users storing larger amounts or holding assets over longer periods, this combination—a secure wallet with pre-sign visibility paired with a hardware signer—represents a mature security model. The wallet software provides usability and risk detection; the hardware device provides key isolation. Neither layer alone is sufficient; together, they address both the human factors (understanding what you are signing) and the technical factors (keeping keys offline).
Rabby also supports importing MetaMask wallets, which means users already familiar with MetaMask can migrate to Rabby without reshuffling keys. The imported wallet retains the same addresses and recovery seed, but now operates within Rabby’s transaction simulation and pre-sign security framework. This reduces migration friction while delivering immediate access to the additional security layer. A user who has been approving transactions blindly in MetaMask can switch to Rabby and start seeing transaction previews for every future approval.
The role of open-source code in wallet security
Rabby Wallet is open-source, meaning the code is publicly available for review and auditing. This transparency allows security researchers, competing wallets, and individual developers to examine exactly how transactions are simulated, how risks are detected, and how keys are handled. An open-source wallet cannot hide malicious behavior in compiled binaries or obscured code paths. If a backdoor or vulnerability exists, it is theoretically discoverable through code review.
However, open-source is not a guarantee of security. The code must be reviewed carefully, and most users do not perform that review themselves. Instead, they rely on the wallet’s reputation, any public audits that have been conducted, and feedback from the community. If a vulnerability is discovered and fixed, the update must be pushed to users, and users must download and install it. The update channel itself becomes a security surface: if updates are distributed insecurely or a user’s browser does not refresh to the latest version, they may continue running an older, vulnerable release.
For Rabby Wallet, the open-source model also enables compatibility and integration. Developers building DeFi protocols can examine how Rabby simulates transactions, which helps them understand what the wallet sees when interacting with their smart contracts. If a protocol has a particularly complex or unusual behavior pattern, protocol developers can work with Rabby to ensure the simulation accurately reflects that behavior. This collaborative model is only possible when source code is available.
Real attack scenarios and how pre-sign security intervenes
To understand the practical value of Rabby’s pre-sign checking, consider concrete attack scenarios. In a token impersonation attack, an attacker deploys a contract with a name and symbol similar to a popular token—say, USDC-like contract on Ethereum with a slightly different address. A phishing email or compromised website directs the user to swap for this token on a DEX. The simulated transaction shows the exact contract address and token name; if the address does not match the canonical USDC, Rabby flags it. A careful user reading the warnings avoids the scam entirely.
In an approval malleability attack, a contract is compromised after a user approves a large spending limit. The attacker uses the existing approval to drain the user’s token balance. Rabby cannot prevent this if the approval was already set to unlimited, but it can help users avoid creating the vulnerability in the first place by detecting and warning about unlimited approvals. A user who sees the warning might choose a specific limit or decide not to interact with that contract at all.
In a sandwich attack, a bot watches for pending transactions, calculates how they will move prices, and places its own transaction before the user’s to capture profit. The user’s transaction then executes at a worse price than expected. The simulation reveals the actual slippage and output; if it is far worse than the DeFi interface displayed, the user can reject the transaction and try again later. This does not prevent sandwich attacks entirely—they are a protocol-level phenomenon—but it surfaces them as actual numbers the user can see and evaluate.
A more sophisticated attack might involve a contract that appears to perform one action but executes a different one through call delegation or other obscured code paths. The simulation executes the actual contract logic, so if the contract does something unexpected, the simulation reveals the true outcome. If a contract claims to send tokens to the user but actually sends them to an attacker’s address, the simulation shows tokens decreasing from the user’s balance and increasing in an unfamiliar account. That discrepancy triggers investigation or rejection.
Limitations and what pre-sign security cannot prevent
Pre-sign security checking is powerful precisely because it focuses on a specific problem: helping users understand and validate transactions before they sign. But it cannot solve every security problem. If the user’s device is infected with malware that captures the recovery phrase, no transaction simulation will matter. If the user approves a transaction that is legitimate but turns out to be financially bad—overpaying for a token due to poor market timing, for example—that is not a security problem; it is a consequence of the user’s decision.
A simulation also requires that the transaction be properly formed and parseable. A malformed transaction or one using unusual low-level opcodes might not simulate correctly or might display in ways that are difficult to interpret. The wallet can only work with the information available in the transaction data; it cannot read the attacker’s intent or predict future market movements. If a user is tricked into approving a transaction for a different purpose than they believe—through social engineering or a cleverly designed interface—the simulation might not reveal the deception because the transaction itself is doing exactly what the smart contract is programmed to do.
Network state changes between simulation and signature remain a fundamental limitation. The wallet simulates based on the state at the moment of simulation; if prices move significantly or a market shifts while the user is reviewing the screen, the simulation becomes outdated. This is unavoidable for decentralized networks where state is constantly changing. What Rabby addresses is the gap in information; it cannot eliminate the inherent delay between evaluation and execution.
Finally, a secure wallet does not guarantee good security practices. Users can still share recovery phrases, write down passwords insecurely, install malicious browser extensions, or fall for phishing sites. Rabby provides tools and visibility; users must follow through with disciplined habits. The wallet’s security is only as strong as the weakest human or technical link in the full system. A user visiting a phishing site and manually entering their seed phrase to “reconnect” their wallet—regardless of which wallet they use—will lose their funds despite having access to the best pre-sign security in the world.
Frequently asked questions
How does Rabby Wallet’s transaction simulation prevent me from losing money on bad trades?
Rabby Wallet simulates the transaction against the current blockchain state and displays the exact balance changes you can expect—including tokens sent, tokens received, and fees deducted. If a swap promises 100 tokens but the simulation shows you would receive only 80 due to slippage or price movement, you see that discrepancy before signing. This transparency lets you reject trades that are worse than expected or adjust slippage settings. However, simulation is only valid at the moment it runs; prices can still change between when you approve and when the transaction settles on-chain.
What networks does Rabby Wallet support, and why does it not include Bitcoin or Solana?
Rabby Wallet focuses exclusively on Ethereum and EVM-compatible networks such as Arbitrum, Optimism, Polygon, and others. Bitcoin and Solana use fundamentally different blockchain architectures and transaction models, which would require entirely separate implementations. Rather than build a shallow wallet supporting many chains poorly, Rabby Wallet optimizes deeply for EVM networks, providing advanced features like transaction simulation and risk detection that are tailored to how Ethereum smart contracts work. Users who need Bitcoin or Solana support can use a different wallet for those assets.
Can I use Rabby Wallet with a hardware wallet like Ledger?
Yes, Rabby Wallet is compatible with hardware wallets including Ledger and Trezor. You can build and review transactions in Rabby—including seeing the transaction simulation and pre-sign security warnings—and then sign with your hardware device. This combination gives you both the usability and visibility benefits of Rabby and the key isolation security of a hardware wallet. You can also import an existing MetaMask wallet into Rabby to begin using its advanced security features without reshuffling your keys. For more information on getting started, visit the rabby wallet download page.
Is Rabby Wallet truly self-custodial, or does the provider control my keys?
Rabby Wallet is fully self-custodial, meaning you control your private keys locally on your device, not on Rabby’s servers. The wallet generates or imports keys into your browser extension, phone, or desktop application, and you retain full custody and responsibility for them. Your recovery phrase should never be shared or uploaded anywhere. Rabby does not store keys, does not require account creation with the provider, and cannot access or freeze your funds. This self-custodial model is fundamental to how the wallet operates.