Token Buyback Dutch Auction Executor
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
Token Buyback Dutch Auction Executor is a DeFi tool that executes buyback orders through Dutch auction mechanisms. It reads the buyback contract address, token address to buy back, payment token address, auction parameters (starting price, ending price, duration, start time), current auction status, current price, remaining token supply for buyback, auction history, account nonce, gas estimates for auction execution, and previous execution records. The tool then executes the buyback at the current auction price, fills the buyback order, transfers the purchased tokens to a treasury or burn address, updates the auction status, claims any remaining unsold tokens, and syncs the auction status across chains if applicable.
HOW TO USE
Connect your wallet via the built-in connector. Select the network where the buyback contract is deployed. Enter the buyback contract address, the token address to buy back, the payment token address (use address(0) for native token), and the treasury/burn address where purchased tokens should be sent. The tool will read on-chain data and display a preview including: buyback contract, token, payment token, treasury, starting price, ending price, duration, current price, remaining supply, auction status, and estimated gas. Review all details carefully. Click "execute buyback" to execute the order at the current auction price. The tool will guide you through three steps: reading the current price, executing the buyback, and transferring tokens to the treasury.
TECHNICAL MECHANISM
The tool uses ethers.js v5.7.2 to interact with the buyback contract. It reads auction parameters using `getStartPrice()`, `getEndPrice()`, `getDuration()`, and `getStartTime()` view functions. Current price is calculated based on the elapsed time since the auction start: `currentPrice = startPrice - (startPrice - endPrice) * (elapsed / duration)`. Remaining token supply for buyback is read via `getRemainingSupply()`. Auction status is checked using `isActive()`, `isEnded()`, or `status()` view functions. Auction history is scanned using `eth_getLogs` for `BuybackExecuted` events, with adaptive chunking (halving chunk size on failure) to handle different RPC limits—the tool walks backward from the current block and continues even if some ranges are rejected. The execution transaction calls `executeBuyback()` on the contract, which fills the buyback order at the current price, transfers tokens to the treasury, and updates the status. If the auction has ended with unsold tokens, the tool calls `claimRemaining()` to recover them. Gas estimates are calculated using `estimateGas` on the execution method with EIP-1559 fee data from `feeData`. All transactions are built with EIP-1559 fee data, and the tool uses `effectiveGasPrice` from receipts for accurate cost accounting.
WHAT IT CANNOT SEE
This tool cannot predict future price movements affecting auction participation—the auction price declines over time. It cannot guarantee that the buyback order will be filled before the auction ends; market conditions may prevent full execution. It cannot detect if auction parameters are manipulated by the contract owner. It cannot ensure that the token price accurately reflects current market conditions—it is a predetermined auction price. It cannot prevent front-running of auction execution by other parties. It cannot validate that the buyback is in the best interest of token holders—this is a governance decision. It cannot detect if the auction contract has been modified or upgraded. It cannot verify that bought tokens are properly burned or held in treasury after transfer.
PLEASE NOTE
This tool is EVM-only and supports Ethereum, Polygon, BNB Chain, Arbitrum, Optimism, and Avalanche. The execution transaction is signed by the connected wallet, and the user pays gas fees. The auction executes at the current Dutch auction price—be aware that the price decreases over time. The tool does not store or transmit any auction data. Always verify the auction parameters and treasury address before executing. Test on testnet before using on mainnet.