A wallet is a software program that creates, stores and manages access to the public and private keys that control the funds in the blockchain. You can use different wallets, but as long as you keep using the same private key, you can access the same funds in the chain. Wallets in the Cardano ecosystem are Hierarchical Deterministic (‘HD’) and based on the UTXO model — and for good reasons. Before we talk about these terms, let’s review the basics about keys.
Remember to always download the wallets from their official sites, accessing with your browser. Never access from an address sent to you by email, it may be false (pishing).
Basic Concepts about Private Keys
A private key is a randomly generated string of characters that can generate a public key, which goes through the hashing process to create an address. The introduction of crypto currencies started with users in complete control without the need for third parties (being your own bank). This automatically means that the user is responsible for his own funds, and it is the individual’s responsibility to keep the private keys safe. If you lose your private keys, you basically lose access to your digital funds in the blockchain, and no one (not even the developers) can give you access to those funds.
The best way to secure your private keys depends on the use of your device. There is no one-size-fits-all rule of thumb. In these times, having your keys online makes them susceptible to being compromised — either by the security of your device online, or by access to your server. Therefore, a common practice is to keep your private keys out of the reach of an Internet connection. You don’t want to have some unencrypted format or be easily hacked into your online device.
Funds in a wallet versus address
One of the most common confusions users encounter is understanding the balance of an HD wallet, and the conflict between funds in one direction versus funds in a wallet. This is due to the way the UTXO (Unspent Transaction Output) of HD wallets operate. Each new transaction within the wallet automatically selects a set of addresses which form a minimum balance for the transfer, and then adds a new exit address (referred to as the UTXO above) — which is a “change address”. The concept is best understood by using an analogy with currency notes — just as it is used in the current financial system.
Let’s say Alice has 3 $10 notes in her purse, and she wants to buy 50 apples that Bob sells for $18. Alice pays Bob using both $10 notes, and receives $2 in change (which she did not have before) as a new unspent transaction outlay. So, Alice now has a $10 note and $2 change — added to her wallet. Checking her portfolio for previous notes will result in a $10 note — but the total funds in her portfolio will include the $2 change.
Similarly, when you make a transaction from your wallet — the selected inflows will normally exceed the outflows and a change will need to be created. When looking at your funds, if you are looking at the value of an address — you may not see all of its details, because the wallet contains several addresses, and users may not know how many funds each address contains after making transactions. Therefore, the best way to check your funds is to use your software wallet, which has access to your keys. To check if your funds were received at address X, the browser is quite convenient.
Types of Wallets
Now that you know more about what a wallet is, let’s look at the types of wallets you can use. Browse the following sections to see a specific type of wallet.
To summarize, there are two main types of wallet interfaces:
A software wallet is a digital wallet interface where the cryptographic (encrypted) keys will be stored on the device you are using. There are two types of software wallets:
A full node wallet independently runs a node from the blockchain and provides the ability to operate your wallet by consulting the node. An example of such a wallet is Daedalus. There are certain advantages of executing the node in a complete way:
- All the history of the blockchain is available in your node in a local way, so that it can consult it when you need it.
- Your node will validate all the blocks created and synchronized with your device, therefore — reducing the required confidence of operating in a wallet.
- Running a node in its entirety also increases the availability of the blockchain in your geographic region, providing better latency for the nodes in charge of producing blocks.
- If there is a configuration that supports a node, but not a wallet with a user interface, you can connect directly to the node and access the configuration.
In addition to these advantages, running a node automatically means more responsibilities — which may not be pleasant for users — especially if your main use is to perform transactions:
- Fully synchronizing the blockchain on your device requires time the first time the node is executed, which can take hours depending on the network and the device’s disk.
- It requires some disk space, RAM and network memory to run a wallet connected to a complete node.
- Full node wallets are not the best option for a mobile/portable device.
Since version 3.0, it supports Trezor and Ledger hardware wallets.
It has two versions, one is Yoroi Mobile which runs on the mobile phone and the other is Yoroi Desktop Extension for Chrome or Firefox browsers and allows us to develop faster since there are well-developed APIs we can trust. Your encrypted private key is safe with Yoroi, but as stated above, you must be very careful to create a secure environment where no one can spy on your wallet password when you enter it. Your wallet password is different from your 24-word mnemonic.
One reason EMURGO decided to create a browser extension was due to cases where a DNS hijacking occurred and people were redirected from a wallet to a different website that stole their money. Typographical errors in a website domain name can also lead to similar problems.
Yoroi supports Trezor and Ledger hardware wallets. Storing your keys offline and using a lightweight wallet when needed for smaller transactions can provide additional security and ease of use.
Paper wallets are wallets created by a software interface, but made in such a way that the keys to these paper wallets were never online. They usually provide their key in two parts — one part printed on paper, and the other part with words (in the case of Daedalus) or password (in the case of Yoroi) that guarantees that even someone who has access to the paper cannot access your keys.
Points to remember:
The software in charge of creating the paper wallet will not transfer the funds to a generated wallet, it must be a manual operation.
If for any reason you decide to restore your paper wallet, your wallet will be restored to a digital device on which it is online and will no longer be a “cold” wallet. Therefore, in that case it is better to create a new paper wallet if we look at it from a security point of view.