Internal Transaction Monitoring Is The Missing Puzzle Piece To Understanding Your Smart Contract Activity
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 our Mempool API 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 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 is difficult to gain insight into when your wallet or contract is a party to an internal transaction. Prior to this update, Blocknative supported alerting users when their watched addresses are associated with external transactions that are pending and on-chain. Blocknative 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 Blockantive's API 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.
Blocknative'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 our Mempool Data Platform 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 Blocknative users. Developers can receive these details of their internal transactions via our Mempool API & SDK, Notify.js, or Mempool Explorer.
Blocknative has also introduced Simulation Platform, which makes opaque pending internal transactions visible to every Ethereum ecosystem participant.
If internal transactions are important to you and your Web3 project, then sign up for Blocknative and begin exploring Blocknative today.
Transaction Simulation: Decoding Pending Internal Transactions
As a follow-up to this post, we published Understanding Ethereum Transaction Simulation — And Why It Matters. This post dives deeper into internal transactions and explores stimulating them, in real-time, to predict the outcome of future blocks.