Governance-Gated Feature Flag Toggle Tool
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
Governance-Gated Feature Flag Toggle Tool is a developer-focused tool that manages feature flags through on-chain governance. It reads the feature flag contract address, governance module address, current feature flag status (enabled/disabled), flag parameters (name, description, version), governance proposal status, voting power requirements, current voter state, account nonce, gas estimates for toggle, previous toggle records, and upgrade history. The tool then guides you through submitting a governance proposal to change a feature flag, checking proposal status, and executing the flag toggle after governance approval, updating flag parameters, and syncing flag status across chains if applicable.
HOW TO USE
Connect your wallet via the built-in connector. Select the network where the feature flag contract is deployed. Enter the feature flag contract address, governance module address, and the flag name (identifier). Select the new desired state (enabled or disabled). The tool will read on-chain data and display a preview including: flag contract, governance module, flag name, current state, requested state, flag description, version, governance proposal status, voting power required, your current voter state (eligible/ineligible), and estimated gas. Review all details carefully. Click "submit toggle proposal" to submit a governance proposal to change the flag. Once governance approves the proposal, the tool will execute the toggle and update the flag status.
TECHNICAL MECHANISM
The tool uses ethers.js v5.7.2 to interact with the feature flag contract and governance module. It reads the current flag status using `isEnabled()` or `getStatus()` view functions. Flag parameters are read via `getName()`, `getDescription()`, and `getVersion()`. Governance proposal status is checked using `getProposalStatus(proposalId)` which returns pending/approved/executed. Voting power requirements are read via `getVotingPowerRequired()`. The tool checks the user's voter state using `hasVoted()` and `getVoterPower()`. If the user has sufficient voting power, it calls `submitGovernanceProposal()` to submit a proposal to the governance module, including the flag address, flag name, and desired state. After the proposal is approved (checked via `proposalState()`), the tool calls `executeFlagToggle()` which updates the flag status and emits a `FlagToggled` event. Gas estimates are calculated using `estimateGas` on the submission and execution methods with EIP-1559 fee data from `feeData`. Previous toggle records are scanned using `eth_getLogs` for `FlagToggled` 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. 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 verify that the governance vote is not manipulated—it only reads the on-chain vote outcome. It cannot detect if a feature flag is being toggled without proper authorization off-chain. It cannot guarantee that toggling a flag does not break dependent systems or services. It cannot prevent front-running of flag toggles by other parties. It cannot validate that the feature being flagged is safe to enable—this is a governance decision. It cannot ensure that all dependent contracts are compatible with the new flag state. It cannot detect if the flag contract has been modified or upgraded. It cannot verify that off-chain services read the flag correctly or respect its state.
PLEASE NOTE
This tool is EVM-only and supports Ethereum, Polygon, BNB Chain, Arbitrum, Optimism, and Avalanche. The governance proposal is submitted by the connected wallet—ensure you have sufficient voting power to submit or vote on proposals. The tool does not store or transmit any flag data. Feature flags control critical system behavior—always test changes in a staging environment before proposing on mainnet. The tool follows governance timelocks—toggles may take effect after a delay.