In the first tab - Transaction Overview - you can see and navigate through all of the elements of the transaction. Moreover, you can instantly (Re)Simulate the transaction by clicking the button in the top right, using different parameters, or even changing the source code to observe the outcome - read more about Simulations here.
From the Overview Tab tab, you can instantly jump into Contract Sources or Debugger to see what happened:
If you're looking into a failed transaction, you can now jump straight to all fail points by clicking the red warning icon and then clicking on the line that failed:
You can also search the Execution Trace, as well as easily navigate it with your keyboard arrows:
In the Execution Trace section, you'll find a dropdown menu right next to the search field. By default, it's set to Function Trace, which means it will show all external and internal calls that happened in this transaction.
For a better overview of key calls, switch it to Call Trace, which shows only external calls that happened in the transaction.
When you're in the Transaction Overview tab, in the upper navigation, you can click Contracts (or Addresses) to see all of the contracts that have been involved in a certain transaction:
By clicking on a contract, you can view its source code:
Smart Contract Events are the de-facto way of notifying interested parties that some event has occurred. The Logs themselves also contain valuable information in addition to the information that a particular event has occurred.
When we click the Events tab, we can see all of the Events that were emitted during a transaction. What is even better is that the event parameters are already decoded and shown in a human-readable format. No more time wasted decoding hex strings to see what happened. You can also filter the Events by Name and Smart Contract.
As Smart Contracts are getting more and more complex, the states of those smart contracts are getting more complex as well.
Here we see that not only does Tenderly show the state variables that were changed, but also all of them are decoded for your convenience. And yes, structures are decoded correctly as well.
Debugging stack traces is an important part of any developer's workflow both locally and in production. By clicking on the Debugger tab, you'll be able to deep-dive into everything that happened with your (or any other) transaction.
Each line shows the sum cost of the lines beneath it. If you click on any of the lines (functions), you can see a detailed breakdown of the gas cost of the functions that were invoked.
You can finally see which functions are using the most gas and pick the right parts of your code to optimize.