CORE CONCEPTS
Today we won’t perform any transactions. Instead, we’ll explore several popular tools that work with public transaction data on the blockchain. We’ll also learn a bit about smart contracts and the concept of composability, one of Ethereum’s killer features.
In web2, code and transaction data are the valuable intellectual property of software companies. It’s not possible for a Walmart developer to clone Amazon’s fulfillment software. It’s not possible for an Expedia customer to see what other people paid for the same air ticket. Such information is private and closely guarded.
In web3, it’s the opposite. Code and transaction data are public. Anyone can view the source code of a smart contract. Anyone can also freely borrow, modify, or build on top of that smart contract.
In this way, smart contracts are like Lego blocks: you can compose them anyway you want, to build whatever you want.
Composability enables developers to create new projects and applications without having to code everything from scratch. It has led to what is affectionately referred to as a “Cambrian explosion” of new ideas, dapps, and tools that have imported or forked popular smart contract implementations.
Composability also creates strong incentives for collaboration rather than competition. If a company (or DAO) gets too big or greedy, a new company (or DAO) can quickly deploy a competing product. This trait, which is hardcoded into Ethereum’s DNA, is producing entirely new ownership and fee structures.
Vitalik, one of Ethereum’s creators, even posited that organizations with a large market share should keep raising fees until they start losing market share.
We’re not developers, so we won’t go much deeper into the details of how all of this works behind the scenes. Still, it is important to underscore that the concept of composability is one of Ethereum’s most important innovations.
As discussed in previous sections, all Ethereum transaction data is stored on a public ledger. Anyone can access and read from it.
Etherscan is a block explorer and analytics platform that makes it easy to access this data. It essentially works as a search engine so users can find and analyze transactions on the Ethereum blockchain. (Polygonscan provides a similar service on the Polygon network.)
We’ll do a quick tour of Etherscan that covers:
Get started by going to the Etherscan homepage and entering your ENS name in the search box. You can do this from any browser - it doesn’t need to be your MetaMask enabled browser since we won’t be performing any transactions today.
Once you’ve searched for your name, you should see a result that is similar to the one below. (You can also use my ENS name 14days.eth
if you want to follow my steps exactly.)
This screen should be familiar. It shows the resolved address, registrant and controller of the ENS name all mapping back to the same public key address.
Now scroll down to the bottom and click the link in the transactions field. This will pull up information about the smart contract that performed the registerWithConfig
transaction.
The next set of results allow us to learn more about the transaction that ENS performed when we registered our domain name. You should see a results page that is similar to the one below. It includes a timestamp as well as information about the non-fungible token (NFT) that was minted when we registered our ENS name.
We can even inspect the smart contract that facilitated this transaction. Click on the link that is next to the word “Contract” in the Interacted With (To) row. This will pull up the ETH Registrar Controller
contract.
After clicking on the smart contract link, you’ll see a table of the most recent transactions that have used the ETH Registrar Controller
contract. This is a public log of all the times that a function within the contract has been triggered.
We can also view the source code of the smart contract itself. Click on the Contract tab at the top of the table (or click here). It should bring up the following screen, including the latest source code.
We won’t be performing an audit of the source code. But any developer who wishes to inspect or use the source code can do so freely.
Once again, it is extremely powerful to see all the transactions that use this smart contract as well as its source code. Imagine being able to inspect an airline’s pricing algorithm AND see the most recent transactions that rely on that algorithm?!
We can view other analytics about the smart contract, too. Click on the Analytics tab and then the TxnFees button. This will pull up all of the gas fees associated with this smart contract. (Click here and then the TxnFees button if you're lost.)
This analysis shows that users have spend more than 22,000 ETH (worth $70M at the time the transactions occurred) using the ETH Registrar Controller
contract. Yep, it’s a very popular contract!
Now, lets backtrack a bit to the results we pulled up when we clicked on our transaction. Hit back a few times on your browser to get the screen below and then click on the link right next to words “Mint of” in the Transaction Action row.
If you’re lost, either repeat the steps at the beginning of the exercise (search for your ENS names and then click on the transaction link) or just skip ahead and click here.
Once you’ve clicked the link, you will see information about the Ethereum Name Service (ENS) token itself.
This page shows all of the transactions involving an ENS non-fungible token. You should get a list of the most recent transactions, similar to the one below. The actual transactions, however, will be different.
It’s a long list -- more than 3 million transactions. If you click the Holders tab, you’ll see that there are over 400,000 unique wallet addresses that hold an ENS NFT. And if you click the Inventory tab, you’ll see a snapshot of the 10,000 most recently active tokens.
Go back to the Transfers tab, then click View NFT for one of the transactions. I pulled up the 5th one down on my list -- a transaction To and account named “elnft.eth”. Here’s the NFT that this user just minted.
Finally, if we want to keep exploring, we can click on the Owner link (elnft.eth in my case) and see what else the owner is doing. You can see this person is a pretty frequent user with more than 200 transactions and a variety of different transaction types.
Feel free to keep exploring!
You can also explore the Polygon network with a similar interface, using Polygon Scan.
We’ve used Zapper in previous sections to bridge and swap tokens. It also provides a handy dashboard of what’s in our wallet.
To display what’s in our wallet, Zapper is tapping the same public ledger that Etherscan is accessing. We don’t even need to connect our wallets to view this type of info!
Whereas Etherscan offers a sophisticated search engine and a barebones (not very pretty) dashboard, Zapper offers a barebones search engine and a sophisticated (pretty) dashboard. Both services rely on the same data, they just visualize it differently.
Go to Zapper (you don’t need to be on your MetaMask-enabled browser) and enter the ENS name that you randomly discovered in the previous exercise into the search bar. (I will continue using “elnft.eth”.)
I can see what’s in this user’s wallet, displayed in a pretty looking dashboard. I can see the user created the wallet address in August 2021 and the different tokens they hold in it.
I can view their NFT collection by clicking the NFT tab and the estimated value of those NFTs at current floor prices.
You can also see their transaction history by clicking on the History tab. This is the same information we saw on Etherscan, just in a more visually appealing format.
Zerion is another crypto portfolio management service, similar to Zapper. Visit the app by clicking here. You don’t need to connect your wallet. Just enter an ENS name you want to lookup in the search bar.
Zerion’s initial dashboard displays the price performance of the user’s portfolio. It also has options to view NFTs and History of transactions.
Once again, they are tapping the same public data as Zapper (and Etherscan), just visualizing it differently.
If you have ever used personal finance software, like Mint or Personal Capital, then you are familiar with the (difficult and tedious) work of linking all your accounts manually so that you can get a consolidated view of your income and expenses. On public blockchains, all of this information is readily available -- and the (easy and relatively fun) work is comparing different visualization and analysis options.
We are only just beginning to explore the new frontiers made possible by composable data and source code.
Eventually, developers will be able to use just one line of code to add a full range of currency options to their ecommerce store or to assess creditworthiness based on transaction history. And these are just obvious, skeuomorphic use cases.
Much more experimentation is still needed.