How Receiving Funds in Nano Works
I didn’t get my Nano, what should I do?
“Why hasn’t my Nano transaction come through?”, many a new user have asked about the cryptocurrency billed as “near-instant and feeless.” Before you panic that your crypto has disappeared into the ether, here are some steps you should try that are almost guaranteed to make your Nano show up in your account balance.
When another user sends you Nano, the funds are placed in your “pending” balance as soon as the transaction is accepted by the nodes with a majority of voting weight on the network. “Pending” does not mean “unconfirmed” — the funds cannot be reversed by the sender, but to spend it, your wallet needs to be synced up to the height where the transaction occurred and claim it.
The quickest way to confirm whether funds have arrived at your Nano address is by using a block explorer such as Nanode. A block explorer has a full node running behind-the-scenes that stays synced with the Nano network, and provides users with a web interface to search for the details of any account address or transaction. If the funds show as “pending” in the table below your address, all you need to do is open, sync up your own wallet, and create a “receive” block.
Sync Your Wallet, if a Desktop Wallet
Whether you need to sync your wallet first depends if you are using a light wallet or a wallet that runs its own node in the background. Web & mobile wallets such as NanoWallet or the official Android & iOS apps are typically light wallets, relying on a remote node operated by the service itself. Since the block lattice (analogous to blockchain in Bitcoin) is not stored locally, it conserves space, especially important on mobile devices.
Light wallets do not require syncing, as the remote node handles it on your behalf.
On the other hand if you are using a non-web wallet on a desktop computer, you probably have a wallet that runs its own node and requires downloading the entire block lattice. Distributing more copies of the ledger to users around the world makes the network more resilient and faster for other nodes to sync up. The latest versions of the Nano wallets for Windows & MacOS are optimized to reduce times for a full sync to below 2.5 hours, depending on the speed of your Internet connection. Once you see that the block count displayed in your wallet is within several blocks of the block explorer, you are ready to receive any transactions.
Before your wallet finishes completely syncing it may not have the information about a transaction which occurred in a recent block, thus explaining why you see pending funds on the block explorer but not in your wallet.
Wallet Generates Proof of Work
Just as when you send somebody Nano, your wallet will automatically compute a proof of work (PoW) to create a “receive” block on your account’s chain within the block lattice. The computation takes 30-60 seconds on a modern CPU, during which time you CPU usage will noticeably spike in Task Manager or Activity Monitor. Some wallets pre-compute the PoW in advance for upcoming transactions when idle, eliminating the brief delay between your wallet downloading a block containing an “incoming” transaction, and when it is fully received.
This is possible since the correct answer for the PoW calculation is always based on a hash of the previous block on your own account chain. It improves the experience for the user, who gets the results he or she expects with “near-instant” transactions for Nano.
If you’re a developer architecting an application based on Nano, calculating PoW in the background makes the process as transparent to the user as possible. Of course, PoW is purposely designed to be computationally intensive, so you got to weigh whether spending the resources up front (before a transaction) is worthwhile for your particular use case. Another consideration is whether you prefer to impose the cost of calculating PoW on the end user using the client machine’s CPU cycles, or server-side on a machine you control. This largely depends on your budget for running the server infrastructure versus how “beefy” the client machines you expect with your target install base.
NanoWallet, the official web wallet for Nano, computes the PoW online by default, but provides users with an option to use “Local PoW” (calculated on their local machine) to potentially process their transactions faster when the PoW server is congested. Exchanges like Nanex, need to maintain plenty of capacity to process the high volume of deposit and withdrawal activity on customer accounts, using their node. According to the founder of Nanex, they use an Nvidia P100 GPU Node to “process 300 transactions a minute or 5 a second.”
Nano Received and Ready to Spend
To recap, when someone send Nano to you, they create a “send” block by signing the transaction using their private key. The block is broadcasted to the network, to be picked up by a proximate node that adds it to their copy of the ledger, which “shouts” it onward to another node — in true, decentralized fashion. As soon as your wallet’s node picks up on the incoming Nano by being synced up to the block number where the transaction occurred, it proceeds to create a “receive” block. The “receive” block can be created almost instantaneously if your wallet has pre-cached PoW, otherwise it will need to generate it “on the fly.” Finally, the “receive” block is propagated to the network, unlocking the funds for use in your wallet.