What are reinforced transactions?
Failed or dropped transactions are a recurring problem for Ethereum application developers and everyday users. Failed transactions typically occur during periods of “burstiness” or times when Ethereum’s network sees an influx of on-chain activity, which increases gas volatility and slows down transaction propagation times.
Reinforced transactions are a new type of transaction that reduces dropped transactions by using a transaction database to monitor pending transactions and re-broadcasting transactions to improve both the likelihood that a transaction is included, as well as the time it takes to mine a pending transaction.
Reinforced transactions, which is a new functionality from Alchemy’s Transact API, is supported on Ethereum and Ethereum Layer 2 EVM chains including:
Reinforced Transaction support is available for all Alchemy Growth and Alchemy Enterprise customers. Existing customers can add Reinforce Transaction support to their apps within the app settings of their app dashboard. New customers can add Reinforce Transaction support to their apps within the app creation flow. Sign up for an account today to get started.
What are reinforced transactions?
Reinforced transactions are a new Ethereum transaction type that increase the likelihood of transactions getting included in the next block, particularly during periods of peak network congestion and gas volatility, by re-propagating transactions and optimizing gas prices. Reinforced Transactions are a solution to failed and dropped transactions.
Why do Ethereum transactions fail?
When a transaction request is sent to a node, it can fail for a myriad of reasons:
- Transactions are dropped
- Miners don’t hear about the transaction requests
- Insufficient gas
- Incorrect nonce
- Invalid parameters
Reinforced transactions aim to solve transaction issues 1 and 2.
A dropped transaction is a pending transaction, also known as a pooled transaction, that gets removed from Ethereum’s global mempool, or pool of pending transactions that are being propagated across nodes in Ethereum’s peer-to-peer (P2P) network.
How do reinforced transactions reduce failed transactions?
Reinforced transactions reduce failed transactions by sending transactions to a database that monitors all pending transactions and automatically rebroadcasting transactions so they are more broadly propagated across Ethereum’s Peer-to-Peer (P2P) network instead of sending transactions to a single node.
Reinforced transactions ensure:
- Transactions are not dropped
- Transactions are broadcast (and rebroadcast) as broadly as possible
- Transaction reliability
When transactions aren’t getting included in new blocks (i.e. pending transactions aren’t getting mined), the database ensures transactions are being widely peered (i.e. propagated to other nodes), and retries transactions multiple times to ensure transactions are being discovered by miners.
By improving transaction propagation, transactions should only fail when developers, traders, or everyday users need to re-price transactions, change their nonce, or fix broken parameters; otherwise, it will be mined.
Reinforced transactions do not work with private transactions because private transactions are not broadcast to nodes and propagated across the network. Instead, private transactions are sent directly to miners through Flashbots with tools such as Alchemy's Transact API suite.
Reinforced Transactions Test
In a test that compared 800 raw Ethereum transactions to 800reinforced transactions, results demonstrated a 7.9x improvement in transaction mine rate and a 46% improvement in successfully executing transactions (success rate reached 100%).
For sending transactions, we used eth_sendRawTransaction.
For polling and checking a transaction’s status, we used eth_getTransactionReceipt and checked whether or not it gives a pending or non-existent response status.
How to Start Using Reinforced Transactions
Reinforce Transactions are available for all Alchemy Growth and Enterprise customers on Ethereum and Ethereum Layer 2 EVM chains including Optimism, Arbitrum, and Polygon.
Existing customers can add Reinforce Transaction support to their apps within the app settings of their app dashboard.
New customers can add Reinforce Transaction support to their apps within the app creation flow.
Sign up for an account today to get started.