Author: Pavel Naydanov 🕵️♂️
Tenderly is a comprehensive Web3 development platform that includes tools for smart contract debugging, testing, and development. It also provides a variety of other useful tools. The platform can be used as a dashboard for collecting analytical data on deployed contracts. The following tools are included in Tenderly:
This is a fast and reliable solution for accessing the blockchain with instant data synchronization. It allows you to analyze both real-time and historical data. Essentially, it is an interface or provider that enables sending queries to the blockchain and retrieving information such as address balances or the latest block on the network. Currently, you can only select predefined information to retrieve, and the options might appear limited (possibly due to it being a new feature). More details can be found here.
You can verify a contract in a way that only the project owner in Tenderly can see it, and publicly verify it only when deploying the final version. This can be convenient to avoid exposing test code for contracts.
You can simulate any transaction and see the resulting output. The transaction will not be included in the actual blockchain state. It works by calling the JSON-RPC method eth_call
.
This powerful tool can show traces of function calls and can be invaluable during development. In case of errors, the tool can immediately highlight the error location within the code.
The history of executed simulations is saved.
This is a regular JavaScript
function that operates within the Tenderly infrastructure. Depending on certain trigger rules, events within or outside the network will trigger the execution of actions.
With this tool, you can monitor transactions when a block is mined (e.g., by gas price), intercept user-entered data, simulate transaction execution, and more. It requires writing js
code. Writing such functions requires immersion, and there is a dedicated documentation section and an npm package for local development of such functions.
Similar to contracts, you can add a wallet address to Tenderly. This allows you to monitor transactions, simulate transactions, and configure notification streams.
This tool has a separate tab that represents a list of transactions for a specific contract or wallet. You can customize the table view and filter transactions based on your own parameters.
It is a powerful and convenient tool for transaction analysis. P.S. Customizing the column display of the table is free. Filter configuration is only available in the paid plan.
The Visual Debugger is a tool that allows you to examine in detail what happens within a transaction. It enables a detailed analysis of call traces
. You can step forward and backward through the call stack, and the debugger will highlight the lines of code being called.
The State Inspector is part of the debugger and allows you to navigate through the call points within a transaction.
This is a separate tool for collecting analytical data from smart contracts. It allows you to view transaction calls over time, statistics on various top calls, daily, weekly, and monthly activity. You can also create and add your own data charts to the analytics.
You can configure custom alerts.
Part of the debugger, it shows detailed gas consumption by transactions. You can view statistics on gas consumption relative to each call.
Allows not only running contracts on network forks but also creating forks by branching networks. This provides flexibility in running transaction simulations or a group of simulations in isolation within a fork.
Here's how it works: create a fork based on a real network. Then, you can deploy and verify contracts in this fork. Afterward, you can run simulations in this fork. Unfortunately, creating a fork on a local network is not possible in the Tenderly interface. However, you can import locally executed transactions into Tenderly by following this guide.
There is integration with hardhat
using the hardhat-tenderly
plugin. You will need to specify the Tenderly account and project for integration. You can export transactions to Tenderly and verify contracts using Tenderly. There is also an additional way to use the tenderly-cli for debugging.
Tenderly is a paid product. The free plan is quite limited. You can only have one project and add one organization. You cannot add a team to dashboards. There are limitations on the number of contracts you can monitor. The default analytics are limited. You can find more information about pricing here.