Retroactive Reward Batch Distributor (Any L2)
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
Retroactive Reward Batch Distributor (Any L2) is a specialised blockchain audit tool that enables project teams and program administrators to prepare and verify batch retroactive reward distributions across any L2 network. It reads on-chain retroactive reward contract balances, checks token balances for multiple recipient wallets simultaneously, fetches token decimals to ensure accurate formatting, and retrieves current gas price estimates for cost planning. The tool also queries retroactive reward contract records, including program name and total distributed amounts, providing a consolidated view of the proposed reward plan alongside actual on-chain holdings. All data is presented in a clean table with per-address breakdowns, making it easy to spot discrepancies between intended reward amounts and on-chain balances. The interface is designed for rapid auditing of large recipient lists without requiring any on-chain transactions.
HOW TO USE
Connect your wallet to the appropriate L2 network using the built-in wallet bridge. Enter the retroactive reward contract address, optionally specify a token contract address (leave blank for native currency), and a list of recipient addresses with their reward amounts (format: address,amount — one per line). Click the scan button — the tool will read the retroactive reward contract balance, query each recipient address for its current token balance, and calculate the total allocation against the contract balance. A progress bar shows real-time status, and results appear in a sortable table with reward amounts and current balance columns. You can then use this data to prepare your retroactive reward distribution transaction with confidence. All operations are read-only and do not modify any state.
TECHNICAL MECHANISM
The tool uses ethers.js v5.7.2 to interact with the blockchain via the injected wallet provider. It performs batched eth_call requests with controlled concurrency (4 simultaneous queries) to avoid rate limits while maintaining responsiveness. For the retroactive reward contract address, it queries the total balance using the provider's getBalance method or the ERC-20 balanceOf method, and also attempts to read contract state including programName and totalDistributed via standard retroactive reward contract interfaces. For each recipient, it fetches the current balance to show the pre-reward state. The tool parses reward amounts, converts them using the correct decimals, and sums them to compare against the contract balance. Gas price is fetched using ethers' getFeeData(), which returns the current network fee estimate. All queries use the view/pure function pattern, meaning they consume no gas and execute instantly.
WHAT IT CANNOT SEE
This tool cannot verify retroactive reward eligibility. It does not confirm whether recipients are entitled to rewards based on historical contribution or activity records. It cannot validate reward entitlement amounts — these must be provided by the program administrator based on their own records. The tool has no access to off-chain historical activity data, contribution records, or private decision-making records. It cannot determine whether the reward plan is compliant with program policies or has received proper authorisation. It only reads what is publicly available on the blockchain through the contract interfaces you specify.
PLEASE NOTE
This tool is designed exclusively for EVM-compatible chains, including Optimism, Arbitrum, Base, Scroll, Mantle, Linea, and other L2 networks. It does not support non-EVM networks. The retroactive reward contract address you provide should implement standard retroactive reward distribution interfaces. Always verify the recipient list and reward amounts before relying on the scan output. The tool is read-only and does not execute transfers or modifications. Always double-check that you are on the correct network before scanning.