Bridging the gap between the mempool and actual transaction execution has always been a challenge for Ethereum developers. dfuse’s recently released Speculative Execution endpoint for Ethereum provides developers with powerful capabilities to track transactions and their effects, and thanks to the incredible feedback and excitement we’ve received we’ve now added further functionality — we can now provide you with a data stream that starts in the mempool and doesn’t close until you have all the information you need.

Before now, you would need to consume and filter the mempool, track transactions as they are added into a block, and then cross reference across the different data streams for which streams can be closed. Then you would need to track the blocks themselves for confirmation count and, most importantly, ensure that you are aware whether the transaction has been reverted due to a fork event.

If you’d like to offload all of the above complexity and wrap it into a single API call, we are excited to have you try our first beta of dfuse Stream Transactions for Ethereum.

dfuse Stream Transactions for Ethereum is a new GraphQL endpoint, to which you can subscribe with a list of addresses and fields to match against. It will then stream transition events for matching transactions:

Ethereum Transaction Lifecycle

  • When a matching transaction enters the mempool, this triggers a speculative execution
  • When traces from the speculative execution are available – returns a full tree of the calls, with inputs, return values, failed calls, and log events
  • When a transaction has been replaced 
  • When a transaction is now part of a block 
  • When a transaction is no longer part of the canonical chain due to its block being forked out
  • When a block has been mined on top of transaction’s block (confirmations) up to a configurable value

Ethereum developers now have a full and unified lifecycle view of transactions that are relevant to their needs. Tracking a transaction’s lifecycle from mempool to inclusion in a block has never been easier. Connect to a single data stream, fill your backend with rich and detailed information. Replace the need to connect to 2 or 3 different APIs and deal with the inherent complexity. And as with all GraphQL calls, you can specify the exact data you’d like returned – transaction information, block information, transition events, etc.. 

To provide additional valuable information, this endpoint also returns transaction details while it’s still in the mempool. Understand all of the internal transaction calls and unlock amazing new possibilities for wait screens for your user base. 

Want to see it in action? Check out our pre-filled example and simply change the defined variable.

Need further details or assistance? Let’s have a quick chat

We’ve surely missed some ways you will use this new API. Join our Telegram channel and let us know about the biggest challenges you solved (or still face) with Ethereum APIs today.