Blockchains are transaction engines, enabling the exchange of value in ways that have not been possible before. The potential is exciting. But the complexity of smart contract-based transactions can make it difficult for even the most experienced Ethereum developers to understand what is actually going on with a transaction.
Today, we are excited to announce that Notify — Blocknative’s real-time blockchain transaction management and monitoring platform — now makes it easier to understand value transfer with support for internal transactions.
What Are Internal Transactions?
Internal transactions refer to interactions from one smart contract (sometimes called an "internal address”) to another. This type of transaction is widely used in the Ethereum ecosystem, especially as smart contracts become building blocks for more sophisticated interactions. But internal transactions make it challenging to understand when your address is party to a transaction.
A single transaction on a smart contract can result in dozens or even hundreds of internal transactions that interact with numerous other smart contracts, or simply distribute value to a host of wallets via an airdrop.
This diagram details an internal transaction
While internal transactions have real consequences to account balances, surprisingly the internal transactions themselves are not stored in on-chain. To see internal transactions, you have to run the transaction and trace the calls that it makes. While some contracts do log events to the chain that record internal activity, many do not because doing so requires additional gas.
So tracking the outcome of internal transactions often leaves users in the dark about when their address was involved.
Why Are Internal Transactions Important To My Web3 Project?
Currently, it’s difficult to gain insight into when your wallet or contract is a party to an internal transaction. Prior to this update, Notify supported alerting users when their watched addresses are associated with external transactions that are pending and on-chain. Notify could even dive into some well-known contracts, such as ERC20 and ERC721 transfers, to detect impacted addresses.
With this update, we support notifying users when their watched addresses are associated with any internal transactions that are confirmed (or failed) on-chain.
Using Notify to monitor when addresses are part of a smart contract call enables protocols to gain insight into when their contracts are used in internal transactions from other contracts. This gives a lot more visibility into how your contract is used by other products.
Notify's internal transaction monitoring enables developers to gain insight into, and inform their users of, complex transactions and interactions that are otherwise opaque.
How To Easily Get Internal Transactions
Blocknative has enhanced Notify to monitor on-chain internal transactions and notify customers if any of their watched addresses are involved. The new internal transaction details, and any associated balance transfers, are automatically sent to Notify users. Developers can receive these details of their internal transactions via Notify API, SDK, or JS client library that renders notifications in your Dapp.
If internal transactions are important to you and your Web3 project, then sign up for Blocknative and begin exploring Notify today.
And More To Come
This is only the first step in Blocknative's drive to improve the understanding and communication of blockchain transaction lifecycles. We are pushing towards predictive modeling for internal transactions in the mempool, giving you insight into what probably will happen if your transaction is confirmed. Exciting times ahead!