A user downloads Cake Wallet on both their iPhone and macOS machine, imports or creates the same seed phrase on each, and discovers that the two show different balances. The iOS version displays 2.5 XMR, the desktop shows 2.3 XMR, and neither count appears to be changing. This is not a bug in the sense of corrupted data or missing transactions. It is a consequence of how self-custody wallets synchronize across platforms when they operate independently, without a central server orchestrating updates. Understanding why this happens—and what actually requires action versus what resolves on its own—separates real synchronization problems from normal wallet behavior.
Cake Wallet is available across iOS, Android, macOS, and Linux, and each instance maintains its own connection to the blockchain network. A user who maintains the same wallet across multiple devices is essentially running multiple independent clients, each scanning the network for incoming transactions, tracking unspent outputs, and calculating balances. When these clients start at different times, connect to different nodes, or process blocks at different speeds, temporary balance discrepancies are inevitable. The question is not whether differences will appear, but rather how to identify which differences matter and which ones resolve through normal synchronization.

How independent clients create balance divergence
When you perform a cake wallet download and set up the application on a new device, that installation becomes a separate client. Unlike a centralized exchange or online wallet service where a single server maintains the authoritative balance, Cake Wallet is a non-custodial, self-custody wallet. Each platform instance—iOS, Android, macOS, Linux—independently queries the blockchain to determine which transactions belong to the wallet and which funds remain unspent. This architecture is a security advantage because no single service controls all your keys or balances. It is a synchronization challenge because multiple independent queries can return different results depending on timing, network conditions, and which blockchain nodes they contact.
The most common cause of balance disagreement is the restore height, a parameter that tells the wallet where to begin scanning the blockchain. If your iPhone wallet has a restore height of block 3,000,000 and your macOS wallet has a restore height of block 2,950,000, the macOS instance will scan an additional 50,000 blocks and may discover earlier transactions that the iPhone has not yet processed. This is not a data loss; it is an indexing lag. The iPhone will eventually catch up if left to synchronize, but if you create a new wallet on the iPhone without specifying the correct restore height, it may default to the current block height and miss all historical transactions entirely.
A second source of divergence is the active node or connection method. Cake Wallet supports custom node selection and includes an experimental Tor integration. If your iOS instance connects through a particular remote node and your macOS instance connects through a different node, and those nodes have processed blocks at different speeds or have diverged temporarily, the clients may see slightly different transaction states. Public nodes occasionally lag, fork, or go offline. If one of your devices is connected to a node that has not yet confirmed a recent block, it may not yet show a transaction that another device has already received.
A third factor is scan speed and processing load. Blockchain scanning is computationally intensive, particularly for privacy-focused coins like Monero, which require decrypting and checking every output on the chain to identify which ones belong to your account. An older iPhone or a desktop with limited memory may process blocks more slowly than a newer device. If the macOS instance was active yesterday and synchronized fully, but the iPhone was only just opened today, the iPhone is legitimately behind and needs time to catch up.
Restore height and the starting point problem
The restore height is one of the most important but least understood parameters in self-custody wallets. It represents the blockchain height at which the wallet began existing, from the perspective of the person setting it up. If you restore a wallet using a seed phrase, the wallet needs to know how far back to scan. Scanning from block zero of the Bitcoin or Monero chain is theoretically complete but practically slow and unnecessary. Scanning from the current block height is fast but will miss all historical transactions.
Cake Wallet allows you to specify or adjust the restore height when importing a wallet. The default behavior depends on the coin and how you created the wallet. If you generated a new wallet from scratch, the restore height defaults to the current block height, which is correct because that wallet has no history. If you imported a wallet using a recovery seed, Cake Wallet attempts to detect or estimate the restore height. For Monero, this is particularly important because Monero transactions are not indexed by address; the wallet must scan the entire blockchain and perform cryptographic operations to identify which outputs belong to the account.
When the same seed phrase is imported on two different devices at different times, each device may assign a different restore height. If the iPhone import happens when the chain is at block 3,100,000 and the macOS import happens a week later when the chain is at block 3,150,000, both devices will treat block 3,100,000 as the starting point if they detect the approximate creation time of the seed phrase correctly. However, if one device fails to estimate correctly or if manual intervention changed the restore height on one but not the other, the discrepancy persists. The device with the earlier restore height will show a larger balance because it has scanned more history.
The solution is to ensure that both devices use the same restore height. In Cake Wallet, this is often accessible through wallet settings or an advanced options menu. You can manually set the restore height to a specific block number, and both instances should then scan from that point forward. If you do not know the exact block height where your wallet first received funds, you can use external tools to find the approximate block where your seed phrase first appeared on the blockchain, or you can restore from an earlier block and accept a longer scan time.
Network synchronization and node selection
Cake Wallet allows users to select which node they connect to for blockchain queries. A node is a computer running the blockchain software and maintaining a copy of the ledger. When your wallet queries a node, it is asking that node for information about transactions, balances, and the current chain state. The response depends on whether that node is synchronized, whether it is honest, and whether it has processed the same transactions in the same order as other nodes.
In normal conditions, all honest nodes on the network converge on the same chain state. However, temporary inconsistencies happen. A node might lag slightly because it is processing blocks more slowly. A node might have accepted a transaction into its memory pool that another node has not yet received. For Bitcoin and Litecoin, which use Bitcoin Improvement Proposals [1] such as BIP-39 for seed phrases and different transaction formats, a node that processes blocks in slightly different orders might temporarily disagree with another node on transaction confirmation status. For Monero, which has a different consensus mechanism, the synchronization process is different but the possibility of temporary lag remains.
The experimental Tor integration in Cake Wallet adds another layer. When you route wallet queries through Tor network [2] nodes, your connection is encrypted and routed through several relays, which provides privacy. However, Tor adds latency. A query that normally takes 100 milliseconds might take several seconds when routed through the Tor network. If your iOS wallet is connected to a direct node and your macOS wallet is connected through Tor, the Tor-connected wallet will naturally lag in receiving and processing new blocks. This lag does not indicate a problem; it is the expected trade-off between privacy and responsiveness.
To check which node a wallet is connected to, look in Cake Wallet’s settings or node information screen. If both devices are connected to the same node and still show different balances after several minutes of active synchronization, the divergence is likely due to restore height rather than node selection. If the devices are using different nodes and the balance difference persists after 10+ minutes, try switching one or both devices to the same node and allow them to rescan.
Scanning speed differences across platforms
iOS, Android, macOS, and Linux all have different processing speeds, memory constraints, and background execution rules. An iPhone with an A16 processor will scan blockchain data faster than an older iPhone with an A13 processor. An M1 or M2 Mac will scan far faster than either. A Linux server running 24/7 will accumulate blockchain state faster than a mobile phone that the user only opens occasionally.
For Monero in particular, scanning is computationally expensive because every output on the chain must be checked against the wallet’s keys. A wallet scanning the Monero blockchain might perform billions of cryptographic operations. On a modern desktop, this completes in hours or days. On a mobile phone, the same operation might take days or weeks if the phone is only actively scanning when the user has the app open and the device plugged in.
This is not a Cake Wallet-specific limitation; it is inherent to how privacy coins work. Monero’s privacy model requires this level of computation. Bitcoin and Litecoin are faster to scan because they use indexed address schemes, but they still require network queries and block validation. If your iPhone balance is lower than your macOS balance, and both are using the same restore height and node, the iPhone is simply in the middle of a longer scan process. Leaving the iPhone on a charger with the wallet app active can accelerate synchronization, though mobile operating systems may throttle background activity.
The platform-specific performance difference also interacts with how often you use each device. If you actively use your macOS wallet daily and rarely open the iPhone wallet, the desktop will always be ahead in scanning. Conversely, if you primarily use the mobile wallet and leave the desktop asleep for weeks, the mobile device will naturally lead in synchronization. This is not a bug; it reflects actual usage patterns and the distributed nature of self-custody wallets.
Transactions in flight and unconfirmed state
A balance discrepancy can also arise when one device has a transaction in progress that another device has not yet broadcast or confirmed. If you initiate a send from your iOS wallet, that transaction is created locally, signed, and broadcast to the network. From the iOS wallet’s perspective, the funds are now committed to that transaction. The balance may immediately reflect the pending transaction as a “sending” state. However, if your macOS wallet has not yet learned about this transaction—perhaps because it connects to a different node or was offline—it still shows the older balance.
Similarly, if you receive a transaction and one device confirms it quickly while another has not yet processed the block containing that transaction, temporary disagreement is normal. The blockchain always provides the source of truth eventually, but in the moments between confirmation and synchronization, different clients can disagree about the state.
To verify whether a balance difference is due to in-flight transactions, check the transaction history on both devices. If one device shows a pending or unconfirmed send and the other does not, that is the likely source of the discrepancy. If both devices show the same set of confirmed transactions but different balances, the issue is restore height or scan state.
Hardware wallet synchronization across instances
Users who employ hardware wallets such as those provided by Ledger [3] or Trezor [4] add another layer to the synchronization question. The hardware wallet stores the private keys and signs transactions. Cake Wallet becomes a user interface and blockchain scanner. When you use the same Ledger device across multiple instances of Cake Wallet on different platforms, each Cake Wallet instance still maintains its own view of the blockchain and balance, even though they all reference the same underlying keys on the hardware device.
A Ledger device does not store balance information; it only stores keys. Each Cake Wallet instance that connects to the Ledger must independently determine what transactions belong to those keys. The same synchronization challenges apply: restore height, node selection, and scan speed. The additional consideration is that the hardware wallet itself does not synchronize across instances. Confirming a transaction on a Ledger connected to your macOS machine does not communicate to your Ledger anything about what happened; the next time you connect the Ledger to iOS, it has no memory of what was signed on macOS. This is a feature for security—the hardware wallet is “dumb” and stateless by design—but it means that all the synchronization responsibility falls on the Cake Wallet instances themselves.
Practical steps to resolve persistent balance discrepancies
If you have performed a cake wallet download on multiple devices and persistent balance differences are causing concern, follow these steps. First, note the restore height for each wallet instance. Open each device’s Cake Wallet, navigate to settings or wallet details, and record the restore height. If they differ, identify which one is correct. The restore height should correspond to when the seed phrase was first created or when you first received funds to that wallet. If only one is correct, manually set the others to match. Depending on Cake Wallet’s version and interface, this may be under “Advanced,” “Wallet Settings,” or “Rescan.” Adjust the restore height on the device that is behind, then let that device fully resynchronize before comparing balances again.
Second, verify node selection. Check which node each device is using. If they differ and you do not have a specific reason to prefer different nodes, switch both to the same node. This is often found under Settings > Node or Server settings. Wait for each device to re-query the node and update its balance. A full rescan can take minutes to hours depending on the coin and device speed.
Third, check for in-flight transactions. Look at the transaction history on both devices. If one shows a pending send that the other does not yet display, wait for the blockchain to confirm that transaction before expecting balance consistency. You can verify the status of a transaction using a blockchain explorer specific to the coin you are using.
Fourth, if balance differences persist after matching restore heights and nodes, perform a manual rescan on the device that is behind. In Cake Wallet, this is often labeled “Rescan” or “Refresh.” This forces the wallet to re-query the blockchain for all transactions associated with the wallet’s keys, starting from the restore height. Do not perform a rescan on both devices simultaneously if they use the same remote node; this can create unnecessary load on the node.
Fifth, for hardware wallet users, ensure that the same derivation path is used across all instances. Ledger and Trezor devices support multiple derivation paths for the same seed. If one Cake Wallet instance derives keys using one path and another instance uses a different path, they will show different addresses and balances even though they connect to the same hardware device. This is less common but worth checking if other troubleshooting steps have not resolved the issue.
When to accept temporary asynchrony
Not every balance difference requires immediate intervention. If you have multiple Cake Wallet instances and they differ by a small amount, or if one is consistently a few blocks behind the other, these are signs of normal distributed operation, not errors. Self-custody wallets do not have the luxury of a central server that instantly updates all clients. They have the advantage of not requiring trust in a third party, but they accept the trade-off of eventual consistency rather than immediate consistency.
For practical purposes, you should treat the balance shown by the most recently and actively synchronized device as the most reliable. If you have been using your iOS wallet heavily and your macOS wallet has not been opened for a week, the iOS balance is more likely to be current. If you are about to send a transaction or check your balance for a critical decision, use the device that has been active and is showing the highest synchronization percentage, usually visible as a progress bar or percentage in the wallet interface.
For important transactions, consider confirming the balance on multiple devices, or waiting until all devices show the same balance before making a large send. This is especially important if you are sending from a device that has been offline for weeks. A wallet that appears to show a large balance after being offline for months may actually be behind on synchronization; sending the entire apparent balance could result in an insufficient funds error if the balance calculation is incomplete.
Platform-specific synchronization considerations
iOS Cake Wallet is subject to Apple’s background execution restrictions. The app cannot scan the blockchain while in the background unless specific background modes are enabled. This means that your iPhone wallet will only actively synchronize when you open the app. If you rely on the iPhone as your primary wallet and leave it closed for days, it will fall significantly behind a macOS or Linux instance that runs continuously.
Android Cake Wallet has more flexible background execution but is still limited by battery and memory constraints on mobile devices. Modern Android versions throttle background apps to conserve battery, which can slow blockchain scanning.
macOS and Linux instances can be configured to run continuously or on a schedule, allowing them to stay synchronized with minimal user intervention. If you maintain a desktop instance, it will typically show the most current balance because it has more opportunity to process new blocks.
The official cake wallet download [5] is available through the Apple App Store for iOS, Google Play for Android, and direct installation via GitHub or other package repositories for macOS and Linux. Each platform has slightly different update cadences and background behavior, but the core synchronization logic is the same across all versions.
Frequently asked questions
Why does my iOS and macOS Cake Wallet show different balances even though I imported the same seed phrase?
The most common cause is a different restore height on each device. The restore height tells the wallet where to begin scanning the blockchain. If the iOS wallet has a restore height of block 2,950,000 and the macOS wallet has a restore height of block 3,000,000, the iOS wallet is scanning more history and may show different transaction counts. Verify both restore heights, set them to the same value, and allow both devices to resynchronize. Node selection and scan speed can also cause temporary differences, which usually resolve within minutes to hours of active synchronization.
After I cake wallet download a fresh copy on my laptop, should I expect the balance to match my phone immediately?
No. A fresh installation must scan the blockchain from the restore height, which can take minutes to hours depending on the coin, device speed, and network connection. For Monero, expect longer scan times because of the computational intensity of privacy-focused scanning. Leave the wallet active and plugged in to accelerate synchronization. Once both instances have fully synchronized and confirm a matching restore height and node, the balances should converge.
Is there a way to force all my Cake Wallet instances to synchronize instantly?
No. Self-custody wallets do not have a central server to coordinate instant updates. Synchronization depends on independent blockchain queries, and temporary differences are normal. To maximize consistency, use the same restore height and node across all instances, and allow each device to actively process blocks. The most actively used device will typically be most current. For critical transactions, wait until multiple devices show the same balance before proceeding, or use the device that has most recently been open and active.