I’m excited to share the release of the product we’ve been working on for the past few months: a console to manage and monitor your blockchain application (dapp).
With Terminal’s new monitoring platform, you now have a mission control panel for your dapp. It gives you everything you need to properly manage and monitor your infrastructure, application, web3 integrations, contracts, transactions, users and more in one place. Our unique approach allows you to track activity specific to your dapp rather than just rely on block explorers and contract data, so you can finally understand exactly what’s going on with your application.
Below is an overview of the problem Terminal’s monitoring platform addresses, followed by an overview of our monitoring platform and the unique approach to dapp monitoring that we are pioneering.
The challenges with monitoring dapps
*To avoid confusion, the definition of a dapp is a user facing application, not a smart contract or set of smart contracts. For example, MakerDao (the smart contract protocol itself) is not a dapp, cdp.makerdao.com/ (an interface to interact with MakerDao) is a dapp.
We noticed there were many products focused on helping people build dapps (dev tools, infrastructure providers, etc.), but surprisingly not many products focused on helping you properly manage and monitor a dapp once it’s built. The reason for this is probably because it’s hard to monitor a dapp. Dapp’s are becoming increasingly complex and the data needed to monitor a dapp is all over the place. For illustration purposes, let’s take a look at how dapps have evolved just in the past 12-18 months.
As we can see, many of today’s dapps are made up of multiple infrastructure sources, contracts, wallet providers, and more. This trend is only going to continue as more decentralized infrastructure, scaling solutions, onboarding/wallet solutions, layer 2 solutions, etc. are released and adopted. This makes tracking dapp specific activity challenging because:
Dapp data is spread across multiple sources
Dapp calls and transactions are routed through different infrastructure providers, wallet providers, networks, smart contracts, and other sources. A lot of the data is hard to access and it’s not easy to aggregate it all into one place (ex. some data is offchain, some is onchain, different data is spread across different providers, etc.). This makes it challenging to have an application-wide view of your dapp and it’s usage.
Dapp transactions are routed through wallet providers
Infrastructure providers might provide some insight into the read calls your dapp is making, but mostly all of the write calls (transactions) your dapp makes are routed through wallet providers. This means dapps don’t have easy visibility into the transactions happening through their dapp. Plus most dapps are now using multiple wallet providers in order to provide their users more optionality and a better experience, which further complicates the issue.
Dapp data is not decoded (human readable) by default
Even if you were to obtain the data regarding the write calls (transactions) being routed from your dapp through your various wallet providers, the transactions are almost always structured as ‘sendrawtransaction’ calls with hexadecimal data payloads. Data in that format wouldn’t be human readable nor would it be very useful to properly monitor your dapp. So you’d have to then decode all the payloads by storing the ABI for every contract your dapp interacts with in order to make the data useful. This is both resource and time consuming, and not something a dapp should be focused on.
On chain data (ex. block explorers and contract data) is not dapp specific
Up until now, almost all dapps use block explorers to monitor and gain insight into their dapp. For example, their infrastructure provider or wallet provider will return a transaction hash, and then they have to manually go to etherscan to look up the transaction and view the info they are looking for. Besides this not being a great user experience, block explorers are by design not built to monitor dapp specific activity and usage. Dapps are forced to use block explorers right now out of necessity and lack of other options, but as the ecosystem matures it seems natural that dapps should have a better solution that provides dapp specific activity, transactions, and user tracking to be able to properly manage and monitor their application and activity.
Many dapps utilize the same contracts
In relation to the issue discussed in the previous paragraph, many dapps are utilizing a lot of the same contracts (MakerDao, Uniswap, Compound, etc.). This makes smart contract based analytics and monitoring unsuitable for most dapps, since you can’t easily determine what transactions on a contract were initiated from your dapp vs. another dapp utilizing that same contract. Given this trend (many dapps building on top of the same few contracts) is certain to continue, dapps need an alternative to contract based analytics in order to properly monitor their dapp and track it’s activity, usage, users, and growth.
Terminal: Dapp Monitoring Platform
By pioneering a new approach to monitoring, dapps using Terminal are now able see activity, transactions, users, logs, and other data specific to their application rather than rely just on block explorers and aggregated contract data. It becomes a mission control panel where you can manage and monitor everything you need and have infrastructure and application-wide visibility across your dapp.
We address the current challenges with monitoring a dapp by taking a Web3 provider centric monitoring approach rather than an on chain data and contract based approach. What this means is we capture data at the application level across all the infrastructure sources, wallet providers, and other web3 integrations your dapp uses. We then aggregate all the data, decode it into human-readable format, and surface it in a number of different views to give you everything you need to monitor your dapp and view dapp specific activity, transactions, users, logs, etc.
A few of the main features and benefits included in the initial release of Terminals Dapp Monitoring Platform (which is live now) include:
Dapp Specific Activity
Track activity, transactions, users, volume, and more specific to your application rather than looking at aggregated contract data on a block explorer.
Analytics & Insights
View aggregated analytics across all your dapps Web3 integrations and application activity (transactions, users, tx fees, etc.). Drill down into specific sources/activity to gain insights into your application.
Surface logs from all the infrastructure sources, wallet providers, smart contracts, and on chain events specific to your application in a unified interface. See tx details in-line with your calls to monitor and debug in real time.
Notifications & Alerts
Set up custom alerts based on logs and transactions specific to your dapp. Send them to email or slack to get notified and fix issues as they happen.
Try it on your Dapp
We have 15+ integrations as of now, and will be continuously adding sources (infrastructure providers, wallet providers, networks, scaling solutions, etc.). Getting set up to monitor your dapp is super simple and only takes a few minutes. For more info on how to get started view our tech docs and check out the one minute video below:
We believe that proper monitoring along with a data driven approach to dapp development and growth is critical to the mainstream adoption of dapps. We’re excited to be able to help dapps reach this goal with our new monitoring platform and finally give dapps the visibility and insights they need to understand their application performance and usage and iterate accordingly based on the data. As we’ve seen in Web2, data driven product development, A/B testing, marketing, etc. is critical to success - now with Terminal’s Dapp Monitoring Platform you will have all the info and data you need to apply those tried and true data driven methods to your dapp over it’s lifecycle.