Mempool Explorer

Mempool Explorer™ lets you go hands-on with real-time mempool data. Watch addresses, filter and select events, and determine what data you want to build with.

This documentation describes how to use Blocknative’s Mempool Explorer. Mempool Explorer enables you to create data feeds for the addresses (wallet or contract) that you care about. Add filters and push your feed into a webhook that you can start building with.

Mempool Explorer uses our API, which has rate limits. Please see Rate Limits for more details.

Subscriptions

Create Your Feed

  1. Go to explorer.blocknative.com to begin creating your feed.

  2. Create a subscription by filling out the Create Subscription card. Enter a valid Ethereum address, an ENS name, or select a quick start.

3. Select the network you want to monitor for the subscribed address

4. Click Create and Mempool Explorer will subscribe to all transactions that involve that address. You will see events appear on the panel on the right as new transactions occur:

Once you have a subscription created, you can rename it, add an ABI to decode input data or delete it via the subscription menu. To display the menu, click the ellipsis in the top right corner.

Configurations Sidebar

A Configuration is a set of Mempool Explorer subscriptions for a specific network. You can choose to save a configuration to an API key or load one from an API key. Note that each API key can support one subscription for each supported network. To be able to save and load configurations, you will need to log in to your Blocknative account.

Setup Configuration

  1. Create a Blocknative account by clicking the Login button on Mempool Explorer and following the instructions. Account creation requires email confirmation to complete.

  2. Blocknative will create a Default API key for your account that you can save your configuration to. You can create additional API keys from your account dashboard on https://explorer.blocknative.com or from the Create New API Key in the Save configuration flow.

Once you have an account, you can login to Mempool Explorer by clicking the Login button at the top right. This will activate your Configurations Sidebar to display your Configurations and any you build and save. You can also open or close the Configurations Sidebar using the hamburger menu icon at the top left of your screen.

Creating a Configuration

You can create a new configuration using the + New Configuration button at the bottom of the Sidebar:

This will give you the option to either create a Blank configuration or Load an existing one from an API Key.

Saving and Loading Configurations

Once you make the desired changes to the new configuration (such as adding subscriptions or filters), you can use the Save button to save your new configuration.

An "Unsaved Changes" warning may pop to remind you that you have made changes to the configuration that you may want to save. The Save button will also become Active once there are changes that can be saved, and a Reset button will appear next to it to bring the Configuration back to its original state. Note that this will remove any unsaved changes.

Clicking Save will display the API Key Picker modal where you can select the API key of your choosing. If you have an existing configuration saved to this key, Mempool Explorer will ask if you want to overwrite the selected key to save the new configuration. You can also create a new API key conveniently from the API Key picker modal, but please refer to your Account Page for greater flexibility in managing your API keys.

Once a configuration is saved to your key, it will be applied to any webhooks that you have saved to that key/blockchain/network combination and will produce the same feed that you see within Mempool Explorer.

You can load a configuration by simply clicking on it from the Sidebar. If you have Unsaved Changes in your current configuration, Mempool Explorer will remind you to save it before loading a new one. For new configurations that aren't saved, you can freely switch back and forth without losing your changes. New configurations that aren't saved will have an unsaved icon next to them:

Adding a webhook

You can conveniently add a webhook to your API key from your configurations sidebar. You will get a three-dot menu option once you hover over a configuration:

Note that this will add the webhook to the API key associated with that configuration, which will apply to other configurations saved to that API key on different networks. Clicking the Add Webhook option will prompt the webhook creation modal and allow you to enter your webhook details to add it:

Once you add the webhook, a success message will appear on the corner of your screen and a Webhook icon will appear next to the configuration on your Sidebar:

You can navigate to your Account Page for greater flexibility in managing your webhooks.

Export Current Configuration

You can use your Mempool Explorer configuration to apply filters to Blocknative SDK. To do this, you can use the Export Configuration option in the three-dot menu next to your configuration to download the configuration files, and then use them to send a configuration to Blocknative SDK. You can read more on this feature on the SDK docs.

Screencasts

See how to get started with Mempool Explorer in this screencast:

Add local ABI to interpret and filter transaction data in this screencast:

Compose subscriptions for external services with webhooks in this screencast:

Filters

Once a subscription has been created, Mempool Explorer will display a notification for every transaction involving that address. You may want to limit displayed notifications to transactions that fit a particular criteria - to do this you can create filters.

Click the Global Filter button to start creating a Filter that will apply to all subscriptions within a specific configuration. Global Filters will contain selectable properties that apply to all subscription events. To filter on a property that only exists on a particular contract address, use a local filter for that subscription.

You will see the filter form modal appear:

You can then select the properties that you would like to create a comparison for any new notifications to pass before being displayed:

The type of comparisons available depends on the parameter that is selected. The following is a complete list of the comparisons that can be made:

exists

Used to check that a property value is not undefined (that is to say is defined).

matches

Used to match string values and tests for an exact match.

not

Used to match string values that are not the value that has been inputted.

includes

Used to select a list of possible string values, where if there is a match on any one of them then the comparison has passed.

equals

Check that two number values are equal

greater than

Used to compare numerical values against an inputted value

greater than or equal to

Used to compare numerical values against an inputted value

less than

Used to compare numerical values against an inputted value

less than or equal to

Used to compare numerical values against an inputted value

Once you are happy with your filter comparison, click the "Add" button.

Select

Blocknative transaction notifications contain a lot of data. If you would like to reduce the amount of data delivered to only key information, then you can Select the applicable information you need to see just that!

Click the Global Select button to start filling a Select Form and you will see it appear within a modal. Global Select affects all of your subscriptions within the applicable configuration.

You can then select the properties that you would like to be included in the notification:

Once you have settled on a property that you want to include in the notification, click the "add" button which will add it to your Select list.

By default, all properties are selected with each notification. As soon as you select any specific property/properties, the notification will start displaying only the properties selected.

Global vs Local

You can Filter and Select globally for all of your subscriptions within a configuration or locally for each specific subscription. This allows for ease of use in how you modify displayed events.

A Global Filter or Select applies to all subscriptions within that configuration and is located at the top of your subscriptions:

A local Filter or Select applies only to the subscription they are added to and are located on the specific subscription card:

A Global Filter/Select applies to all transactions/addresses watched within a configuration. Therefore a Global Filter only supports generic transaction fields.

A Local Filter/Select applies to a specific address and can include fields, such as methodNamethat are specific to the contract at that address. Local Filters/Selects can use fields defined in the contract ABI (if supported or uploaded in the subscription field).

Contract ABI

If you are creating a subscription for a contract address, you can upload the ABI for that contract and Mempool Explorer will automatically decode the input data for any contract calls.

You can upload a .json file of the ABI by clicking the ABI button on the subscription card:

The ABI button has four (4) total states:

  • Neutral, indicating no ABI is detected.

  • Green, indicating a working ABI has been detected or uploaded and contract events are being decoded successfully.

  • Yellow, indicating the ABI uploaded may be incorrect for that contract address. This status is shown after 10 or more events have failed to decode successfully.

  • Red, indicating the uploaded ABI is an invalid object.

If the uploaded ABI for the contract is invalid, Mempool Explorer will change the ABI indicator to Yellow and send a notification indicating the ABI provided has failed to decode the input after 10 events related to that contract address:

Blocknative backend infrastructure automatically decodes contract input data for common ERC20 and ERC721 tokens and other popular contracts, so there is no need to upload an ABI for these contract types. For a full list head to the API Docs.

Gas Platform

Mempool Explorer provides a Gas Widget at the top right side of your screen that displays the latest Gas Price derived from Gas Platform's 80% confidence interval. You can enable the toggle to view the Gas Platform payload with greater detail every time it updates. You can learn more about Gas Platform here.

The Gas Widget defaults to EIP-1559 compatible type2 transaction gas prices. If you're looking for legacy type0 transaction gas prices, simply hover on the widget and you will get a checkbox to revert it to the legacy format.

You can also use the link that appears under the checkbox option to download our Gas Estimator browser extension.

Explore Sample Feeds

To quickly get a sense of the types of feeds you can build with Mempool Explorer, we’ve created a few samples for you:

Fullscreen mode

Mempool Explorer supports a "Fullscreen mode" that allows your feed area to take over your browser window. This mode allows for closer monitoring of mempool events after you're done setting up your configuration. The configurations sidebar is available in Fullscreen mode for easy switching between different mempool streams you have saved. You can enter and exit Fullscreen mode using the Fullscreen button on your feed.

Share Your Mempool Explorer Feed

Blocknative allows you to easily share the configuration feed you have created. Click on the “Share” button to copy a shortened version of the URL including all of the filters and display options you have selected.

You can also copy the event data in Mempool Explorer using the "Copy" button and easily share that with your team.

Events

For detailed information about the event payload and its properties, please check out our API docs.

Simulated Events

Blocknative notifications include simulation of pending transactions for Ethereum Mainnet and Sepolia Testnet.

These pending-simulation notifications are delivered automatically unless there is a filter that restricts notification by transaction status. Filters can use pending-simulation status to include or exclude simulation of pending transactions

Notifications of pending-simulation transactions appear with a slightly different background color and a badge to remind the user the transaction details are probabilistic, based on speculative execution of the transaction. See our blog post Understanding Ethereum Transaction Simulation — And Why It Matters for details on speculative execution of transactions.

When a subscription starts to receive pending-simulation notifications, the subscription card will update with the simulation icon to make clear that notification feed includes speculative execution of some transactions.

For detailed information about the event payload and its properties, please check out our API docs.

Mempool Explorer uses our API, which has rate limits. Pending Simulation has different rate limits than other notifications. Please see Rate Limits for more details.

Supported Networks

Mempool Explorer supports the following Ethereum and EVM compatible networks:

  • main

  • sepolia

  • xdai (Gnosis Chain)

  • matic-main (Polygon)

  • matic-mumbai

We're working to add support for the Bitcoin Network. If there are any other networks that you would want to see in Mempool Explorer, please feel free get in touch.

Transaction Payload Glossary

Transaction Payload NotificationsDefinition

status

New status of this transaction: cancel / confirmed / dropped / failed / pending / pending sim / speedup / stuck .

monitorID

Identifier of the Blocknative node client that first detected the transaction state change.

monitorversion

Version number of the Blocknative monitor that detected the transaction state change.

timepending (Optional)

The number of milliseconds from initial pending detection to confirmed or failed detection. "-1" if first detection is on-chain.

blockspending (Optional)

The number of blocks since the initial pending detection to confirmed or failed detection.

pendingtimestamp

UTC ISO timestamp when Blocknative first detected the pending state for this transaction.

pendingblocknumber

The chain head block number when the pending state was first detected.

hash

Hash generated when transaction is submitted. Transaction id hash is unique for every transaction.

from

sender address

to

recipient address (wallet or contract generally)

value

Amount of ETH transferred directly from "from" address (this will contain an amount of specifically ETH for all Ethereum networks main and test nets).

gas

Maximum number of units of gas that the sender allows for this transaction. For most transactions this parameter will be set by the dapp.

nonce

The "from" address transaction count associated with that address.

blockhash

Block id hash for transactions that are on-chain. Field is null unless notification status is confirmed or failed.

blocknumber

Block number for transactions that are on-chain. Field is null unless notification status is confirmed or failed.

V

The V/R/S transaction signature can be combined into one 65-byte-long sequence: 32 bytes for r, 32 bytes for s, and one byte for v. Together these can be decoded to verify the original message, address and signature.

R

transaction signature component (hex encoded)

S

transaction signature component (hex encoded)

input

Data sent to transaction. For direct value transfers from one external account to another, this field contains 0x. For contract calls, this value contains the contract method signature and params as a hex string.

gasused

Gas units used during transaction execution. This will always be less than or equal to "gas".

type

Denotes the gas pricing used for this transaction, 0 or 2 (0 pre or 2 post 1559 w/ gas structure and limits defined).

maxfeepergas

user (from) set max gas ceiling in wei

maxfeepergasgwei

user (from) set max gas ceiling in gwei

maxpriorityfeepergas

Max priority fee per gas in wei (aka tip).

maxpriorityfeepergasgwei

Max priority fee per gas in gwei (aka tip).

basefeepergas

Base fee per gas of this block in wei, dictated by network conditions.

basefeepergasgwei

Base fee per gas of this block in gwei, dictated by network conditions.

transactionindex (Optional)

For confirmed or failed transactions, the index (order) of the transaction in the block.

asset (Optional)

Symbol of the asset being transferred, e.g. ETH. This field is present only if transaction directly transfers Ether or is an ERC20 token transfer.

blocktimestamp (Optional)

UTC ISO block timestamp the miner reported when collating the block this transaction was eventually mined in. The block timestamp is usually a few seconds before timeStamp, the difference being the time between the miner collating the block, and the block being mined and propagated throughout the network.

watchedAddress (Optional)

Watched address which triggered the notification. This field is present only if the notification is triggered by watchedAddress.

direction (Optional)

Indicates if funds are incoming or outgoing relative to the watchedAddress. This field is present only if the notification is triggered by watchedAddress.

counterparty (Optional)

Address of recipient of funds if watchedAddress is the sender in the transaction, address of sender of funds if watchedAddress is the recipient in the transaction. This field is present only if the notification is triggered by watchedAddress.

serverversion

Version number of the Blocknative server that delivered the notification.

eventcode

Every payload contains an eventCode parameter in the event object which indicates the type of event. Detailed documentation for event codes can be found here.

timestamp

UTC ISO timestamp when Blocknative first detected this transaction update.

dispatchtimestamp

The UTC time of time of event dispatch.

system

Blockchain of this transaction (ex. Ethereum).

network

Network name of this transaction (ex. main or sepolia).

contractcall

A contract call is when a specific function written into a particular smart contract is utilized or "called". This field is the top level contract call decoded. If we do not support decoding for this contract, this field will be null.

estimatedblocksuntilconfirmed

Predicted number of blocks from pendingblocknumberuntil confirmation based on gasPrice and Gas Platform data. Field is 1 - 5 or null for estimates outside of 1 - 5.

replacehash (Optional)

The hash of the transaction that replaced this transaction in the txpool.

failurereason (Optional)

For failed transactions, the reason why the transaction failed. Some failures may not have a discernible reason.

apikey

Blocknative API key associated with the notification.

Questions?

If you have any questions about Mempool Explorer, join our discord.

Last updated