The hands-on guide to crypto coins & NFTs for Web3 PMs and devs
This is a post that will help aspiring Web3 Product Managers or even blockchain developers to get a quick hands-on experience on varoius basic topics such as non custodial wallets like metamask & coinbase wallet, transacting on different blockchains like Ethereum & Polygon, trading or swapping crypto coins like ETH, DAI & MATIC , buying different NFTs like ERC721 & ERC1155 on OpenSea, transacting on centralised & decentralised exchanges, etc. So instead of just building theoretical knowledge, it is ideal to get hands on experience on these concepts.
Buying crypto currencies in a centralised exchange
A centralised exchange like Binance or Coinbase is similar to traditional stock exchanges in the sense that they allow to have an account with a simple login instead of dealing with private key or seed phrase. They abstract and handle these details for you. Also they allow you to buy or sell crypto coins using fiat money via different options including credit and debit cards. For this tutorial I am using Binance exchange and INR as currency.
To get started in an exchange or even a wallet, users are typically required to do an online KYC to verify their identity to ensure safety in such platforms. This is the screen that asks for such details. In Binance & earlier in Metamask also the committed time to finish KYC was 2 days, but it got completed in less than 2 hours.
On choosing Indian Rupees (INR) as currency, Binance gives me an option to buy crypto coins via P2P transactions , ie I am directly paying to a seller who wants to sell the particular coin I am looking to buy . Limitation with P2P is that it is a manual process. The exchange will hold the coins in custody from the seller, buyer transfers money to seller directly, then seller has to give confirmation to exchange on recieving funds and then exchange will transfer the coins to the buyer.
In this example I bought around 19 MATIC tokens on Polygon chain using FIAT money which is INR. Now the coins will reflect in trading wallet section of my Binance account. As a next step, I want to move it out of the centralised exchange to my fully controlled ethereum address so that I can manage the coins using my own non custodial wallet in a purely decentralised manner without any centralied exhanged acting as an intermediary. Remember once you have a private key and account(s) for Ethereum , the same is valid for other EVM compatible blockchains like Polygon and Solana and even testnets like Rinkeby and Kovan. So here I am using the address of my account 1 in my metamask wallet for ethereum chain to send the MATIC tokens on Polygon chain.
Since the transaction is happening on Polygon, you can see how low the gas fee is . If I had ETH and was trying to send to the same address on ethereum chain, then the gas fee would have been much higher. It may take upto 10 minutes as shown below for the transacion to be complete and the coins to be visible against your address.
Now in my metamask wallet, on choosing Polygon mainnet as the network, I am able to see the MATIC tokens against my address
Experimenting with DeFi and DApps : Aave on Polygon Chain
Once you have coins on a blockchian, you can also experiment with DApps (Decentralised Applications) especially DeFi (Decentralised Finance) apps . I have used some of the MATIC coins on Polygon that were purchased earlier to get hands on with Aave. As per the polygon blogpost https://blog.polygon.technology/polygons-defi-series-aave/
The Aave protocol is an open-source non-custodial decentralised liquidity protocol built on the Ethereum blockchain. It is the largest DeFi protocol in the world (by total value locked) and has a distributed team of over 70 people all over the world. The Aave protocol allows users to supply and borrow cryptoassets and earn yield on cryptoassets supplied to the protocol.
Go to aave.com and connect Launch App and then connect your wallet
When Ethereum mainnet is the chosen network on my metamask wallet, Aaave will show me the coins and the APY I can earn for them and also gives me option to borrow
On clicking supply you can see the the next screen that will show the gas fee. Since I am on ethereum network, the fee will be higher.
Now I switch to polygon network on my wallet and in Aave DApp to see my coins listed with option to Supply
On clicking Supply for MATIC it will show me the gas fee, which is very low on Polygon network as against the Ethereum chain
I went through with the transaction and then after it is complete , I can see that I have supplied 1 MATIC or approx 0.66$ to Aave so that I can start earning interest. I have the option to withdraw the amount or swap for another coin which will provide a different APY
Swapping coins on a Decentralised Exchange (DEX)
DEX or a Decentralised Exchange allows a crypto user to trade on crypto coins by swapping one coin for another. The process is achieved using a concept called Liquidity Pool which exists different pairs of coins. You can easily find detailed writings on the topic in the internet. Below you can see how this can be done on both Polygon and Ethereum chains.
1, QuickSwap on Polygon chain : QuickSwap is a DEX on Polygon chain. In an earlier part I had shown how I bough MATIC on Binance exchange and then sent them to my address. Now I will be swapping some of those MATIC tokens for WETH (Wrapped Ether) and DAI tokens. For example in the screen, I choose to swap some MATIC for DAI and then I need to click confirm
The my metamask wallet will ask me for confirmation and show the gas fee , which is very low and has to be paid in MATIC token , since this entire transaction is on Polygon Chain.
Similarly swapped some MATIC for WETH on Polygon.
The updated balance of all 3 tokens will show up in the coins dropdown option in QuickSwap and also in metamask web extension
Now, if the tokens are not appearing in metamask wallet, one needs to import the tokens. Click on Import Tokens screen after choosing Polygon Mainnet as the network. For WETH following are the details that can be obtained by seeing the WETH contract page on Poylgon scan. On import, the WETH balance is updated.
Below you can seen how to check in Polygonscan to find the contract address for DAI and then use that to import the tokens in metamask mobile wallet
2, UniSwap on Ethereum Chain : UniSwap is a Decentralised Exchange (DEX) on Ethereum blockchain. In the below I am trying to swap some of the ETH in Ethereum chain to get USDC on ethereum chain.
On clicking swap and then on the Confirm Swap on the popup, metamask wallet will popup to show the expected gas fee
In this case I cancelled the transaction after seeing the details as I did not want to execute a transaction with such a high gas fee on ethereum network.
3, Swap within Metamask wallet : Metamask wallet provides a swap option. It is not a standalone DEX like Uniswap or Quickswap, but instead it instead it fetches quotes from multiple DEX aggregrators and suggests user to choose the one with lowest charges.
Here you can see the price quote and gas price estimate for swapping ETH to USDT and WBTC. I did not execute the transactions and cancelled after seeing the price details.
Since gas fee lower in Polygon network , I switched to Polygon mainnet and did a swap of MATIC to WETH at a very low gas fee as shown below
Buying an NFT on OpenSea marketplace
OpenSea is the largest marketplace to buy and sell NFTs. Non-Fungible Tokens can be based on any of the two different standards ERC721 or EC1155. The latter standard actually enables the creations of tokens that are a mix of both fungible and non-fungible. Further, OpenSea allow transactions of NFTs that are based on Ethereum, Polygon or Solana blockchains. In this example below, I am buying a part ownership in an ERC1155 NFT on Polygon. I am doing this so that I can experiment at a very low cost.
1, Add Wrapped Ether for transacting on OpenSea : This is needed because OpenSea allows transactions using WETH which is an ERC20 token. For buying Ethereum NFTs, it must exist on Ethereum chain as WETH on Ethereum and for buying Polygon NFTs, it must exist on Polygon chain as ETH on Polygon .
If there is not enough WETH, more can be added by wrapping ETH balance or MATIC balance based on the chain in which balance is needed . See below example of wrapping ETH to WETH on ethereum
2, Then I searched for Polygon sports NFTs using the search filters and then sorted them by Price: Low to High
3, Checked the details section to confirm it is on Polygon and can also see type as ERC1155
4, To buy the chosen NFT click checkout, complete the Unlock and Sign parts of the transaction by clicking on the wallet , thus completing the purchase.
Importing NFTs to non custodial wallet like Metamask
To view any NFT bought on OpenSea in your metamask wallet , you need to import the NFT with the required details like contract ID and token ID . Go to your wallet and choose the network based on where the NFTs exist . In this example it is Polygon. On the NFTs tab, click import NFT and then enter the contract address and token ID that can be obtained form OpenSea. On completing the import, the NFT will be displayed in your metamask wallet.
Multiple non custodial or self custodial wallets using the same seed phrase or recovery phrase
For a non-custodial wallet , the 12-words seed phrase or recovery phrase is everything. Hence the major warning signs that you keep seeing on “never to lose this phrase” and to “create safe backups” . Ethereum seed phrases are based on BIP39 standard. It is a code generated when you create a new wallet for ethereum blockhain for the first time using a non-custodial wallet. You can play around on this site https://iancoleman.io/bip39 / to get an idea on the link between the 12-words seed phrase or recovery phrase, private key and public key.
This means that a user can reuse the same phrase in a new non custodial wallet to access the exisinting wallet without having to get a new 12-words mnemonic. I have used the seed phrase that I got while setting up my metamask wallet to import the wallet account to coinbase wallet app as shown below. This way I am able to see all my crypto coins that I hold on Ethereuem and Polygon chains in my coinbase wallet app . This is just by using the same recovery phrase or seed phrase that was provided to me when I had set up my metamask wallet.
Viewing transaction and coins holding details of an address using Etherscan and Polygonscan
Etherscan is the website where you can view details of a transactions and addresses in a more easy to read UI/UX.
You can view the details of the transactions against an address and also the tokens owned by that address by visiting Etherscan. Example : https://etherscan.io/address/0xad085736a7a27009dd346ecd1ce51cfab80c5e85 . If a particular address is also linked to an ENS (Ethereum Name Service) .eth domain, then that can also be used instead of the hexadecimal address. Example : https://etherscan.io/address/tonymathew.eth
As mentioned before, a user will have the same private key, public key and addresses in any other EVM compatible chain. So transactions and coin holdings of a given address on thePolygon network can be viewed by visiting PolygonScan and going to the page for that address . ENS name will work only for Ethereum chain and not for Polygon. Example : https://polygonscan.com/address/0xAd085736A7a27009Dd346ECd1cE51CfAb80c5E85
Transferring between Ethereum and Polygon blockchains
To view any NFT bought on OpenSea in your metamask wallet , you need to import the NFT with the required details like contract ID and token ID . Go to your wallet
1, Visit the website https://wallet.polygon.technology/bridge to do such inter chain transfers via the Polygon Bridge and connect your wallet
2, Ethereum to Polygon transfer needs just one transaction and cost gas fee on the Ethereum network
3, Polygon to Ethereum transfer has two stages with one on Polygon chain and other on Ethereum chain and will take upto 3 hours to be completed
Experimenting with wallets for other blockchains : Phantom wallet for Solana blockchain
Phanton Wallet is a famous wallet for Solana blockchain. If you want you can experiment with it. It provides an option to buy SOL using cards. Since minimum transaction is USD 300, i did not try any transactions. Here are the screens.