Stress-test governance proposals
before they execute_
FPS is a Foundry framework for simulating governance proposals from end-to-end, covering deployment scripts, calldata generation and post-execution validation. Catch bugs before they reach mainnet.
Governance is the single point of failure
Three steps. Full coverage.
Write
Define proposal actions in Solidity using FPS's build() pattern. Deploy contracts, set parameters, transfer ownership. Write it like normal code.
$ function build() override { ... } Simulate
FPS forks mainnet and simulates the full governance lifecycle (propose, vote, queue, execute) using Foundry cheat codes to bypass delays.
$ forge script proposals/MyProposal.sol Validate
Automated checks verify post-execution state matches expectations. Confirm ownership, balances, and configuration before anything touches mainnet.
$ function validate() override { ... } Works with your governance stack
FPS supports four governance architectures out of the box, with an extensible base for adding more.
Multisig
Gnosis SafeGenerate multicall calldata and paste directly into the Safe UI. Simulate actions from the actual multisig address.
View guide →Timelock
OZ TimelockControllerSimulate scheduleBatch and executeBatch with automatic delay bypass. Full lifecycle testing.
View guide →Governor Bravo
CompoundPropose, vote, queue, execute. The complete governance lifecycle simulated in a single test run.
View guide →OZ Governor
OpenZeppelinOpenZeppelin Governor with timelock controller support. Compatible with all OZ governance extensions.
View guide →Tested against real governance contracts
FPS ships with examples that fork mainnet state and simulate against live governance contracts.
Get started
$ forge install solidity-labs-io/forge-proposal-simulator$ echo @forge-proposal-simulator=lib/forge-proposal-simulator/ >> remappings.txt$ forge script proposals/MyProposal.sol --fork-url $RPC_URLSupport FPS development
FPS is free, fully open source, and MIT licensed. It's built and maintained as a public good by Solidity Labs. If FPS has helped your protocol ship safer governance, consider supporting continued development.
100% of donations go directly to development.
Support on Giveth