How do you interact with the Internet today?
Think about all the different accounts you have across the Internet. Most sites require an account to interact with their content, even if you never plan to use it again. Then you get continuously spammed with emails about their promotions and offers.
What if there was a way to have one account across the entirety of the Internet?
Blockchain operates in this exact manner, where a user can have one digital identity across a whole suite of applications. These identities are generally presented as wallets that have the capability to store digital assets. You can use one account as a universal key that lets you sign on to any application, similar to how many sites today allow you to ‘Sign in with Google’. The major difference between a digital address on the blockchain and a Google account though is that wallets do not require any personal information, can be created by anyone, and most importantly:
Digital wallets on the blockchain guarantee fully independent ownership of all your assets.
Public and Private Wallet Keys
Similar to how transactions and blocks have hashes, each wallet contains a unique identifier known as the public key. It is called a public key because this is how the wallet is identified on the blockchain network. All assets and transactions tied to a wallet will be shown as belonging to the public key of the wallet.
However, each wallet has another key known as the private key. This is the identifier that is known only by the person who created the wallet and is what allows you to access that wallet. Anyone that has the private key can access the wallet. This means that when creating a wallet, make sure to never share the private key with anyone or they will be able to access your wallet. This also means, however, that no one else can access your wallet, which ensures that you are the only one that can utilize the assets that are on it.
A sample transaction containing the sender’s and receiver’s public keys
This private key is what allows you to create a transaction. Whenever any transaction involving a digital wallet is made, the owner has to manually approve, or sign, the transaction to accept it. This creates a system that ensures no movement of funds from a wallet can occur without the wallet owner’s consent. This includes signing onto different applications, where you have to approve the connection between the wallet and the site.
Instead of having to write down or memorize a private key, most wallets utilize a security measure called a seed phrase to protect the private key. This is a phrase consisting of 12 to 24 randomly generated words that act as a password to a wallet. When you create a new wallet make sure to copy and paste, or even better write down, the seed phrase somewhere where you won’t lose it and no one else will find. The seed phrase acts as a password and is what allows a user to gain access to a wallet. Most wallets do not have a recovery setting and can only be accessed via seed phrase or private key, so make sure you do not lose the seed phrase or you will lose access to your wallet.
Having a separate public and private key gives uses the ability to have a public facing digital address while at the same time protecting anyone else from accessing it. To learn more about how public and private key encryption works, check out this article by Cloudflare on public key cryptography.
Wallet Asset Management
When you import an asset into your wallet, that asset becomes tied to the public key of the wallet, proving that the asset is, in fact, yours. This is because the wallet interface you see when using a digital wallet is only a representation of the assets, which are actually stored directly on the blockchain network. When a new wallet is created, the network creates the public key for that wallet, and all transactions done by the wallet will be associated with it. Any assets owned by that wallet will appear under that public key on the network, showing that they are held by the given public key.
This image is an example what a digital wallet actually looks like on a blockchain network. All the transactions associated with the public key are listed, and the assets that wallet holds can be directly proven as being owned by that wallet.
For assets such as cryptocurrency, the amount that a wallet holds is based on the ledger system of transactions that keep track of the inflows and outflows of money to and from the wallet. If the wallet is receiving crypto, the allotted amount is deducted from the address sending it and added onto the balance of the receiving address. Vice versa, if the wallet is sending crypto, the allotted balance is deducted from the balance of the sending wallet and transferred to the balance of the receiving one.
An address shown directly on the blockchain network
This process is similar to how banks transfer money between accounts today. There is no physical cash exchanging hands, it’s simply the bank updating the number that is displayed in the sender’s account. However, there are 2 key differences:
- Because of blockchain’s immutable properties (the hash changing anytime a transaction is edited), no one can fake or manipulate transactions. All money being transferred has been confirmed to be legit by the validators operating the blockchain network. This also means that you can directly view the transaction and all its details on the blockchain database; it would be like having access to the bank’s servers so that you can prove your transaction went through correctly.
- Because there are no middlemen involved, settlement time is near instant and the fees are significantly lower. Instead of waiting for days for money to be settled in your bank account, these types of transactions are available as soon as the validators confirm the blocks they are on.
For non-monetary assets, this system is an amazing way to immutably prove not only ownership of an asset, but also the validity of the asset itself. Imagine you buy an expensive oil painting painted by a famous artist. You would want to prove two things: you legitimately own the painting, and that the painting itself is an original and not a fake. Using a blockchain network, you can create a token, or a digital representation of the painting. The painting can be authenticated and proven to be the original copy, which will be represented by the token. Ownership of that token can then be transferred to your wallet, where the blockchain network will show proof of the transfer and that the painting does, in fact, belong to you.
This is exactly how NFTs, or Non-Fungible Tokens, work.
When you buy an NFT, the asset is represented as a one-of-one unique token. The ownership of that token is then transferred to you once you buy it, and you can use the blockchain network to prove that you do own the NFT. Now imagine if that NFT represented a house. Owning that token would be the equivalent of owning the deed to the house, and the house could be sold as simply as transferring that token from one wallet to another. This is the future of blockchain and immutable ownership of digital assets.
Interacting with Blockchain Applications
Wallets are unique in the sense that they can not only store digital assets but that they can also act as a universal sign in method. Since each wallet has its own public key and no two keys are alike, this system lets each wallet be used as an account for the person using it.
A wallet address
Imagine signing in with Google, where a website lets you instantly create an account using your Gmail account. There are no extra steps; you just click the button, approve the sign in, and all of your information is automatically added to the new account. Blockchain lets you do the same exact thing, but with no personally identifiable information. When you create a digital wallet, most wallet providers do not require any personal information. You simply create a new wallet and hide your seed phrase. No name, email, phone number, or any other information necessary.
A wallet can be mainly used in two ways: utilizing the blockchain network to send assets to another wallet, or to interact with a blockchain ecosystem through decentralized apps, or dApps. To send assets from one wallet to another, all you need is the receiving wallet’s public key. You just select an asset, put in an amount, and confirm the transaction. Depending on the speed of the network, the receiving wallet will receive the assets within a few seconds to a few minutes.
Similarly, to receive funds all you’d need to do is provide your public key to the other wallet, and they will be able to send you assets directly. This near instant settlement time is possible because there are no middlemen in blockchain. Your assets are going directly from one wallet to another. That is why blockchain is constantly referred to as a peer-to-peer network: assets are going directly from one person to another.
Sending ETH
Since public keys are simply a random collection of numbers and letters, it can be challenging to see the differences between two completely different addresses. If you send assets to the wrong wallet, the transaction cannot be undone and your assets will be lost. Many scammers use this vulnerability to their advantage, where they create addresses very similar to existing ones hoping you won’t notice and send your assets to their wallets instead of the one you were trying to reach.
Make sure to always copy and paste wallet addresses directly from the source where you can prove it is the exact address you are trying to reach.
A recent advancement that makes this process easier and more reliable is the creation of wallet naming services. For example, the Ethereum Name Service (ENS) allows you to buy a name for your wallet similar to how Domain Name Service (DNS) allows users to buy custom domains for their websites. This will allow your wallet address to go from something like ‘0x773d…’ to ‘Johnny.eth’ which makes it significantly easier to share and use your public key.
Check out the ENS domains website to learn more about these domain names.
You can also use your wallet to directly interact with different blockchain ecosystems. There are tons of different networks that exist today including Bitcoin, Ethereum, Solana, Avalanche, and many others that will be covered later on.
Each network has its own suite of dApps, many of which are cross-compatible and can be used across multiple networks. These applications serve tons of different purposes, but today most revolve around financial use cases. One of the most popular dApps is Uniswap, a crypto exchange that is completely decentralized. Uniswap allows users to exchange one cryptocurrency for another and it facilitates tens of millions of dollars worth of transactions on a daily basis. It also supports most of the popular networks including Ethereum, Arbitrum, Optimism, Base, Polygon, and Avalanche.
A sample connection request pop-up
To use Uniswap, all you need to do is click the connect button and approve the connection between your wallet and Uniswap. This connection is what acts as the sign in, where you are signaling to the Uniswap application that it is ok for it to access your wallet. You can disconnect your wallet from the application at anytime using the disconnect option; it is a common security practice to disconnect your wallet from a dApp once you are done using it.
To then complete a trade, you just select the token you’d like to trade, select the token you wish to exchange it for, enter an amount, and confirm the transaction. You can follow along the process of your transaction getting approved by viewing it directly on the blockchain using a blockchain explorer. All you need to do is click the transaction hash that pops up once your transaction begins processing, and you will be able to see it get approved. Once it’s done, the balance you traded of your initial asset will be deducted from your wallet and the new asset you traded it for will appear.
The Uniswap token swapping interface
You are looking through cryptocurrencies that you want to invest in and decide you want to buy a token called PENDLE. To do this, you decide to use a popular decentralized exchange called Sushiswap. To complete this trade, you decide to use the token USDC, a cryptocurrency that is pegged to the value of the US dollar each token is always worth exactly $1.
- You connect your wallet to the Sushiswap exchange by clicking the Connect button and authorizing the connection to occur.
- You select USDC as the token you’d like to sell and select PENDLE as the token you’d like to receive.
- You confirm the transaction and use your wallet to sign off on it.
- The conversion occurs and the USDC in your wallet is replaced with the PENDLE you bought.
- You disconnect your wallet from Sushiswap.
Here is how the transaction would appear on the blockchain network:
You can see the hash that identifies the transaction, the status of the transaction which shows that it was successful, the block number on which the transaction was approved, a timestamp of when it occurred, and the transaction action that shows what occurred. It is shown that in this case, the user swapped 102.19 USDC (~$102.19 in US dollars) which was then swapped into ETH to facilitate the transaction, and that ETH was then swapped into 84.66 PENDLE (also worth ~$102.19 US dollars at the time of the swap). Once that user views their wallet, they will see that $102.19 worth of USDC was deducted from their balance and replaced with $102.19 worth of PENDLE.
Uniswap and Sushiswap are just two examples of the thousands of dApps that exist today. New dApps are constantly being developed for all sorts of purposes, from lending and borrowing crypto to arts and entertainment applications. These will be covered later on as well.
Exploring Wallet Options
There are tons of different wallets that exist today with different user interfaces and capabilities. One key factor important to consider when selecting a wallet is which networks you’d like to interact with.
Most wallets support a majority of networks, but some are designed solely for one or two specific ones. Some of the most popular wallets include:
…but there are tons of others that you can use as well. These wallets are generally considered to be the most user friendly wallets in terms of the user experience, and they also support a variety of different blockchain networks. You can also have as many wallets as you’d like; there is no limit to how many you can create. In fact, it’s even considered best practice to have at least two wallets: one would be for interacting with different dApps and conducting transactions, while the other will serve as the main wallet for storing your assets. Having this system in place greatly reduces the threat of you losing your cryptocurrency if a dApp you’ve used gets exploited.
Source: Fortanix
As an avid cryptocurrency enthusiast, you interact with a ton of different applications on a regular basis. While most applications are secure and have been through multiple professional audits, you decide to go onto a sketchy dApp that was just created and promises extremely high returns. While this is a clear red flag, unfortunately you don’t realize it and connect your wallet to the application. Once your wallet is connected, you realize the app is a scam but by then it’s too late - the application drained your wallet.
Luckily, you have two separate wallets for this exact reason, and all of your assets are kept in the other wallet. The attacker can’t access your other wallet because you did not use it to connect to their dApp, and all your funds remain secure.
Most crypto native users have multiple wallets for this exact reason, where they have a clean wallet with minimal to no money in it solely for interacting with dApps while keeping all their actual funds in a separate wallet.
The wallet you use to interact with all the dApps is called a hot wallet because it is directly connecting to the Internet and executing transactions, while the wallet for storing funds is called a cold wallet because it is not constantly connected to dApps and only stores assets. Cold wallets are more secure because since they aren’t connecting to the Internet, they can’t be hacked.
For an extra layer of security, you can purchase a hard wallet, or a hardware wallet. These are wallets that utilize a physical device for storage where you can’t access the wallet unless you have the device itself. One popular hard wallet is Ledger where the user would have a Ledger device that acts as the medium for storage, and to access the wallet, they would plug in the device into a computer and enter a passcode.
To further expand on the capabilities of wallets, a new type of wallets are beginning to arise: smart wallets. These smart wallets are actually smart contracts that act as wallets but have the potential to do much more than traditional ones. For example, they can automate transactions, cover network fees to facilitate transactions, and even swap owners. A great example of this is the Safe Wallet which utilizes these features to offer enterprise level wallet solutions.
These smart wallets open up a lot of opportunity for businesses to create built-in wallets into their applications. This can remove the need for their users to maintain self custody, they can cover all transaction fees, and they can assign or reassign different privileges to different wallets.
Works Consulted for this page:
Cloudflare. (n.d.). How Does Public Key Encryption Work? Cloudflare. Retrieved from https://www.cloudflare.com/learning/ssl/how-does-public-key-encryption-work/
Coinbase Wallet. (n.d.). Coinbase Wallet. Retrieved from https://www.coinbase.com/wallet/
ENS Domains. (n.d.). Ethereum Name Service. Retrieved from https://ens.domains/
Ledger. (n.d.). Ledger Wallet. Retrieved from https://www.ledger.com/
MetaMask. (n.d.). MetaMask - A Crypto Wallet & Gateway to Blockchain Apps. Retrieved from https://metamask.io/
Rabby Wallet. (n.d.). Rabby - The Next-Gen Wallet for Defi & NFTs. Retrieved from https://rabby.io/
Safe. (n.d.). Safe - The Most Trusted Platform to Manage Digital Assets. Retrieved from https://safe.global/wallet
Uniswap. (n.d.). Uniswap Interface. Retrieved from https://app.uniswap.org/swap?chain=mainnet