rocketpool-governance
Interact with Rocket Pool governance contracts — protocol DAO (pDAO) proposals and voting, oracle DAO (oDAO) membership and proposals, security council operations, and all DAO settings contracts. Supports cast (Foundry CLI) and Ethereum MCP tools on mainnet and Hoodi testnet.
Best use case
rocketpool-governance is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Interact with Rocket Pool governance contracts — protocol DAO (pDAO) proposals and voting, oracle DAO (oDAO) membership and proposals, security council operations, and all DAO settings contracts. Supports cast (Foundry CLI) and Ethereum MCP tools on mainnet and Hoodi testnet.
Teams using rocketpool-governance should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/rocketpool-official-governance/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How rocketpool-governance Compares
| Feature / Agent | rocketpool-governance | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Interact with Rocket Pool governance contracts — protocol DAO (pDAO) proposals and voting, oracle DAO (oDAO) membership and proposals, security council operations, and all DAO settings contracts. Supports cast (Foundry CLI) and Ethereum MCP tools on mainnet and Hoodi testnet.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Rocket Pool — Governance Rocket Pool has three governance bodies: 1. **Protocol DAO (pDAO)** — all node operators vote on protocol parameters and treasury 2. **Oracle DAO (oDAO)** — trusted nodes that submit oracle data (balances, prices, rewards) 3. **Security Council** — emergency response team that can veto proposals and adjust parameters ## Quick Start ### Check Total pDAO Proposals ```bash cast call 0x2D627A50Dc1C4EDa73E42858E8460b0eCF300b25 "getTotal()(uint256)" --rpc-url https://ethereum-rpc.publicnode.com ``` ### Check Proposal State ```bash cast call 0x2D627A50Dc1C4EDa73E42858E8460b0eCF300b25 "getState(uint256)(uint8)" 1 --rpc-url https://ethereum-rpc.publicnode.com ``` ## Workflow 1. Look up the contract address from `references/addresses.json` 2. Find the function signature below 3. Load the ABI from `assets/abis/<contractName>.json` when available (some Saturn-era contracts in this skill are signature-only) 4. Execute via `cast call` (read) or `cast send` (write) ## Network Configuration | Network | Chain ID | RPC | rocketStorage | |---|---|---|---| | Mainnet | 1 | `https://ethereum-rpc.publicnode.com` | `0x1d8f8f00cfa6758d7bE78336684788Fb0ee0Fa46` | | Hoodi | 560048 | `https://rpc.hoodi.ethpandaops.io` | `0x594Fb75D3dc2DFa0150Ad03F99F97817747dd4E1` | ## Architecture - **RocketStorage** is the central registry — all contracts resolve each other's addresses through it - All ETH values are in wei (18 decimals); all percentages are 18-decimal fixed point (1e18 = 100%) ## rocketDAOProposal Base proposal storage shared across all governance bodies. ### Functions ``` getTotal() → uint256 [view] getState(uint256 _proposalID) → uint8 [view] getProposer(uint256 _proposalID) → address [view] getDAO(uint256 _proposalID) → string [view] ``` ## Protocol DAO ### rocketDAOProtocolProposal Core proposal lifecycle for pDAO governance. ``` propose(string _proposalMessage, bytes _payload, uint32 _blockNumber, tuple[] _treeNodes) → uint256 vote(uint256 _proposalID, uint8 _voteDirection, uint256 _votingPower, uint256 _nodeIndex, tuple[] _witness) overrideVote(uint256 _proposalID, uint8 _voteDirection) execute(uint256 _proposalID) finalise(uint256 _proposalID) destroy(uint256 _proposalID) ``` Vote directions: 0=Against, 1=For, 2=AgainstWithVeto, 3=Abstain Proposal queries: ``` getTotal() → uint256 [view] getState(uint256 _proposalID) → uint8 [view] getMessage(uint256 _proposalID) → string [view] getProposer(uint256 _proposalID) → address [view] getStart(uint256 _proposalID) → uint256 [view] getPhase1End(uint256 _proposalID) → uint256 [view] getPhase2End(uint256 _proposalID) → uint256 [view] getExpires(uint256 _proposalID) → uint256 [view] getExecuted(uint256 _proposalID) → bool [view] getFinalised(uint256 _proposalID) → bool [view] getVetoed(uint256 _proposalID) → bool [view] getVotingPowerFor(uint256 _proposalID) → uint256 [view] getVotingPowerAgainst(uint256 _proposalID) → uint256 [view] getVotingPowerAbstained(uint256 _proposalID) → uint256 [view] getVotingPowerVeto(uint256 _proposalID) → uint256 [view] getVotingPowerRequired(uint256 _proposalID) → uint256 [view] getReceiptHasVoted(uint256 _proposalID, address _nodeAddress) → bool [view] ``` Proposal states: 0=Pending, 1=ActivePhase1, 2=ActivePhase2, 3=Succeeded, 4=Executed, 5=Cancelled, 6=Defeated, 7=Expired, 8=Vetoed, 9=QuorumNotMet, 10=Destroyed #### Examples ```bash cast call $PDAO_PROPOSAL "getTotal()(uint256)" --rpc-url $RPC_URL cast call $PDAO_PROPOSAL "getState(uint256)(uint8)" 1 --rpc-url $RPC_URL cast call $PDAO_PROPOSAL "getVotingPowerFor(uint256)(uint256)" 1 --rpc-url $RPC_URL ``` ### rocketDAOProtocolProposals Proposal actions — what governance can vote on: ``` proposalSettingUint(string _settingContractName, string _settingPath, uint256 _value) proposalSettingBool(string _settingContractName, string _settingPath, bool _value) proposalSettingAddress(string _settingContractName, string _settingPath, address _value) proposalSettingMulti(string[] _settingContractNames, string[] _settingPaths, uint8[] _types, bytes[] _data) proposalSettingRewardsClaimers(uint256 _trustedNodePercent, uint256 _protocolPercent, uint256 _nodePercent) proposalTreasuryOneTimeSpend(string _invoiceID, address _recipientAddress, uint256 _amount) proposalTreasuryNewContract(string _contractName, address _recipientAddress, uint256 _amountPerPeriod, uint256 _periodLength, uint256 _startTime, uint256 _numPeriods) proposalTreasuryUpdateContract(string _contractName, address _recipientAddress, uint256 _amountPerPeriod, uint256 _periodLength, uint256 _numPeriods) proposalSecurityInvite(string _id, address _memberAddress) proposalSecurityKick(address _memberAddress) proposalSecurityReplace(address _existingAddr, string _newMemberId, address _newAddr) ``` ### rocketDAOProtocolVerifier Optimistic fraud proof system for proposal voting trees. ``` createChallenge(uint256 _proposalID, uint256 _index, tuple _node, tuple[] _witness) defeatProposal(uint256 _proposalID, uint256 _index) submitRoot(uint256 _proposalID, uint256 _index, tuple[] _nodes) claimBondProposer(uint256 _proposalID, uint256[] _indices) claimBondChallenger(uint256 _proposalID, uint256[] _indices) getChallengeState(uint256 _proposalID, uint256 _index) → uint8 [view] ``` ### rocketDAOProtocol ``` getBootstrapModeDisabled() → bool [view] bootstrapSettingUint(string _settingContractName, string _settingPath, uint256 _value) bootstrapSettingBool(string _settingContractName, string _settingPath, bool _value) bootstrapSettingAddress(string _settingContractName, string _settingPath, address _value) ``` ### rocketDAOProtocolActions ``` version() → uint8 [view] ``` The bundled `rocketDAOProtocolActions` ABI is minimal (version-only). For setting updates, use `rocketDAOProtocolProposals` proposal payload methods. ## Oracle DAO (oDAO) ### rocketDAONodeTrusted ``` getMemberCount() → uint256 [view] getMemberAt(uint256 _index) → address [view] getMemberIsValid(address _nodeAddress) → bool [view] getMemberID(address _nodeAddress) → string [view] getMemberJoinedTime(address _nodeAddress) → uint256 [view] getMemberRPLBondAmount(address _nodeAddress) → uint256 [view] getMemberQuorumVotesRequired() → uint256 [view] ``` ### rocketDAONodeTrustedActions ``` actionJoin() actionLeave(address _rplBondRefundAddress) actionChallengeMake(address _nodeAddress) [payable] actionChallengeDecide(address _nodeAddress) actionKick(address _nodeAddress, uint256 _rplFine) ``` ### rocketDAONodeTrustedProposals ``` propose(string _proposalMessage, bytes _payload) → uint256 vote(uint256 _proposalID, bool _support) execute(uint256 _proposalID) cancel(uint256 _proposalID) proposalInvite(string _id, string _url, address _nodeAddress) proposalKick(address _nodeAddress, uint256 _rplFine) proposalLeave(address _nodeAddress) proposalSettingUint(string _settingContractName, string _settingPath, uint256 _value) proposalSettingBool(string _settingContractName, string _settingPath, bool _value) proposalUpgrade(string _type, string _name, string _contractAbi, address _contractAddress) ``` ### rocketDAONodeTrustedUpgrade ``` upgrade(string _type, string _name, string _contractAbi, address _contractAddress) execute(uint256 _upgradeProposalID) veto(uint256 _upgradeProposalID) getTotal() → uint256 [view] getState(uint256 _upgradeProposalID) → uint8 [view] getName(uint256 _upgradeProposalID) → string [view] ``` ## Security Council ### rocketDAOSecurity ``` getMemberCount() → uint256 [view] getMemberAt(uint256 _index) → address [view] getMemberIsValid(address _memberAddress) → bool [view] getMemberID(address _memberAddress) → string [view] getMemberQuorumVotesRequired() → uint256 [view] ``` ### rocketDAOSecurityActions ``` actionJoin() actionLeave() actionRequestLeave() actionKick(address _memberAddress) actionKickMulti(address[] _memberAddresses) ``` ### rocketDAOSecurityProposals ``` propose(string _proposalMessage, bytes _payload) → uint256 vote(uint256 _proposalID, bool _support) execute(uint256 _proposalID) cancel(uint256 _proposalID) proposalSettingUint(string _settingNameSpace, string _settingPath, uint256 _value) proposalSettingBool(string _settingNameSpace, string _settingPath, bool _value) proposalSettingAddress(string _settingNameSpace, string _settingPath, address _value) proposalInvite(string _id, address _memberAddress) proposalKick(address _memberAddress) proposalReplace(address _existingAddr, string _newMemberId, address _newAddr) ``` ### rocketDAOSecurityUpgrade (Saturn) No ABI file is bundled for this contract in this skill. Use the raw signatures below with `cast call` / `cast send`. ``` proposeVeto(string _proposalMessage, uint256 _upgradeProposalID) → uint256 proposalVeto(uint256 _upgradeProposalID) vote(uint256 _proposalID, bool _support) execute(uint256 _proposalID) cancel(uint256 _proposalID) ``` ## DAO Settings Contracts All settings follow `getSettingUint/Bool/Address` pattern. | Contract | Controls | |----------|----------| | rocketDAOProtocolSettingsDeposit | Deposit pool limits, fees, queue rates | | rocketDAOProtocolSettingsNode | Registration, RPL stake minimums, bond sizes | | rocketDAOProtocolSettingsMinipool | Launch timeout, max count, bond reduction | | rocketDAOProtocolSettingsMegapool | Dissolve penalty, notify threshold (Saturn) | | rocketDAOProtocolSettingsNetwork | Commission shares, oracle frequency, fees | | rocketDAOProtocolSettingsRewards | Reward intervals, claimer percentages | | rocketDAOProtocolSettingsProposals | Voting periods, quorum, bonds | | rocketDAOProtocolSettingsInflation | RPL inflation rate and start time | | rocketDAOProtocolSettingsSecurity | Security council quorum, timing | | rocketDAONodeTrustedSettingsMembers | oDAO quorum, RPL bond, challenge params | | rocketDAONodeTrustedSettingsMinipool | Scrub period, bond reduction windows | | rocketDAONodeTrustedSettingsProposals | oDAO proposal timing | | rocketDAONodeTrustedSettingsRewards | Network reward enablement |
Related Skills
rocketpool-staking-agent
Decentralized ETH staking with rETH token and node operator delegation strategies.
rocketpool-reth
Stake ETH with decentralized node operators and receive rETH liquid staking token.
rocketpool-tokens
Interact with Rocket Pool token contracts — RPL (governance/staking token) ERC-20 operations, inflation mechanics, old RPL swap, rocketVault balance queries, and L2 token addresses for rETH and RPL on Arbitrum, Optimism, Base, Polygon, zkSync Era, Scroll, Starknet, and Unichain. Supports cast (Foundry CLI) and Ethereum MCP tools on mainnet and Hoodi testnet.
rocketpool-rewards
Interact with Rocket Pool rewards contracts — query reward cycles, claim RPL and ETH rewards via Merkle proofs, check smoothing pool balance, manage treasury payment contracts, and query reward settings. Supports cast (Foundry CLI) and Ethereum MCP tools on mainnet and Hoodi testnet.
rocketpool-node-operations
Interact with Rocket Pool node operator contracts — register nodes, create validators, manage minipools and megapools, stake RPL, handle bond reduction, distribute rewards, and manage withdrawal addresses. Supports cast (Foundry CLI) and Ethereum MCP tools on mainnet and Hoodi testnet.
rocketpool-network
Interact with Rocket Pool network infrastructure contracts — RocketStorage address registry, network balances, RPL price oracle, node fees, penalties, governance snapshots, voting delegation, revenue splitting, and network settings. Supports cast (Foundry CLI) and Ethereum MCP tools on mainnet and Hoodi testnet.
rocketpool-liquid-staking
Interact with Rocket Pool liquid staking contracts — deposit ETH to mint rETH, burn rETH for ETH, check exchange rates, query deposit pool balances, and perform rETH ERC-20 operations. Supports cast (Foundry CLI) and Ethereum MCP tools on mainnet and Hoodi testnet.
rocketpool
Interact with Rocket Pool protocol contracts on Ethereum mainnet and Hoodi testnet. Use for any task involving rETH (liquid staking token), RPL (governance token), ETH staking, minting/burning rETH, checking exchange rates, node operator registration, minipool/megapool management, RPL staking, governance proposals, voting, rewards claiming, deposit pool queries, network balances, smoothing pool, or any Rocket Pool smart contract interaction. Supports both cast (Foundry CLI) and Ethereum MCP tools.
lido-rocketpool-staking
Compare stETH, rETH, eETH, and swETH rates with auto-selection for best yield.
governancex
AI agent for cross-chain DAO governance tracking proposals and analyzing voting patterns on Base and beyond.
governance-x-dao
AI agent specialized in cross-chain DAO governance and analytics, tracking proposals and analyzing voting patterns.
8004-skill
ERC-8004 Trustless Agents - Register and manage AI agent identities on TRON and BSC blockchains with on-chain reputation tracking