I’m building a high-throughput minting system for NFTs on Polygon using a NestJS In normal mode, minting is sequential and stable. In burst mode, I need to mint ~10,000 NFTs at once (each mint is a contract mintVDT() call).
Current architecture
Backend: NestJS CQRS command handlers + SQS queue
Blockchain Layer: ethers.js v6 Wallet Layer: 50 custodial wallets, each funded with MATIC
Orchestration:
BurstOrchestrator distributes batches to wallets asynchronously.
Each wallet sends txs in parallel.
Gas price and gas limit are pre-estimated before burst start.
Problem
During bursts, gas price spikes dynamically because we push hundreds of txs nearly simultaneously. This creates two major issues:
Earlier transactions get dropped or stuck since their gas is underpriced after network congestion rises.
Wallet balances become insufficient mid-burst — they had enough gas initially, but higher baseFee causes failures (insufficient funds for intrinsic gas cost).
This leads to inconsistent throughput and failed mints.
each mint is a contract mintVDT() callchange that and do multiple mints in a single transaction. It sounds like you are running a centralised system any case, so there is no point to have a facade and smoke and mirrors of decentralisation.