Transaction Queue Limits
Blockchain Account Queue Limit
EVM-compatible blockchains typically use a Mempool system. The Mempool queues transactions sent from a wallet up to a certain limit defined by the full node. If you exceed this limit, you receive an error from the full node. All queued transactions in the Mempool can potentially be included in a single block. Therefore, you can estimate the theoretical transaction throughput asqueueLimit / blockTime. However, various factors can influence whether your
transaction gets included in a block, such as priority fees, network congestion,
and network liveness. In contrast, the Solana blockchain does not use a Mempool
system and, thus, does not have a queue limit. This contributes to its
transaction throughput being significantly higher.
Account queue limit in different blockchains
| Blockchain | EOA wallet | SCA wallet |
|---|---|---|
| Ethereum | 32 transactions | 1 transaction |
| Polygon | 16 transactions | 1 transaction |
| Avalanche | 32 transactions | 1 transaction |
| Solana (no Mempool) | Unlimited | Not supported by PW |
Circle Wallets Transaction Queue Limit
The overall transaction throughput is fundamentally constrained by the blockchain account queue limit and the blockchain’s inherent throughput. To mitigate the impact of these limitations, Circle Wallets provide a queuing mechanism for transactions that exceed the blockchain limit for a certain duration. There is a limit on the number of transactions your wallet can queue in the Circle Wallets service to prevent resource wastage and false expectations. This limit affects the user experience when too many transaction requests are made. When you reach this limit, you receive an error message:“Wait for pending transactions to be included on the blockchain before
submitting new requests. EVM chains restrict the number of queued transactions
per sender address.” (Error code 155264)
listTransaction API endpoint. The transaction state should be one of the
following: INITIATED, CLEARED, QUEUED, SENT.
Client-side Optimizations
While transaction queuing provides a convenient feature, fee fluctuations and network congestion can still impact transaction processing times. Below are some tips to ensure a smooth experience, especially when dealing with a high volume of transaction requests.Higher Fees
Consider setting thefee_level parameter to at least MEDIUM or HIGH. This
ensures that your transactions are processed with higher priority in a
reasonable timeframe, reducing delays for subsequent transactions.
Managing Transactions
- Monitor Transaction Status: Use the list transactions API to query the status of your transactions.
- Cancellation and Acceleration: Use the cancellation and acceleration API to expedite transactions that have been pending for an extended period.
- Transaction Notifications: Implement transaction notifications to confirm the completion of transactions before sending more requests.