Settings
Proposals
loading…Loading proposals…
Recent activity
loading…
🎓
How to use this dApp
This dashboard is wired to the Governor contract on the Sepolia testnet (chain ID 11155111). Every step below follows the real buttons and forms on this page.
- Connect your wallet — press Connect Wallet in the top-right corner. The dApp opens on Sepolia, so set your wallet to that network and the chain badge turns green.
- Check your voting power — the “Your voting power” card shows your GOV balance, the proposal threshold and the governor’s live stats (voting period, quorum, treasury).
- Create a proposal — fill the “Create a proposal” form (target address, ETH value, calldata hex, description) and press Propose. You need at least the threshold in GOV voting power.
- Vote — open any Active proposal in the feed and press 👍 For or 👎 Against. Your vote weighs the GOV balance you held at the proposal’s snapshot block.
- Execute or cancel — after the 3-day voting window a passing proposal shows an Execute button that runs its calls on-chain; as proposer you can press Cancel while voting is still open.
- Tune the dApp — the ⚙ button opens Settings to switch networks or point the dashboard at another Governor address, then save & reload.
⛓
The process — what happens on-chain
- GovToken checkpoints — every GOV transfer appends a per-block checkpoint to the GovToken contract, so the balance at any past block can be resolved with a binary search (getPastVotes).
- Governor.propose() — the Governor contract checks the proposer’s past voting power against the threshold, then stores the proposal with its snapshot block and a 3-day deadline.
- Governor.vote() — each ballot is weighed by the GovToken balance at the snapshot block, not the live balance, so tokens bought after the proposal add nothing.
- Governor.state() & quorum() — when the deadline passes, state() compares for-vs-against and checks quorum (4% of snapshot supply via quorum()); the proposal becomes Succeeded or Defeated.
- Governor.execute() — anyone can run a Succeeded proposal; the contract flips the state to Executed before calling each target with its ETH value (checks-effects-interactions). The proposer may cancel() while it is Active.
🧭