Diva voting from Rocket Pool node

MajeStyle 🐱🦇🔊
2 min readOct 11, 2023



  1. A self-delegated Diva airdrop “stuck” in a Rocket Pool Validator (DIVA tokens are not transferable at the moment).
  2. 5 minutes of your time

1. Understand the Proposal

Before voting, ensure you understand the proposal you’re voting on.

Engage with the community on Discord to make sure you are not just casting a vote at random.

Typically, proposals are hosted on Tally.

The proposal ID can usually be found in the URL.


2. Determine Your Vote

In most cases:

  • 1 means FOR the proposal
  • 0 means AGAINST the proposal

Choose wisely!

3. Access the Ethereum Playground

Navigate to https://playground.ethers.org/.

4. Generate the Calldata

  1. In the Ethereum playground, paste the following code:
new utils.Interface(['function castVote(uint256 proposalId, uint8 support)']). encodeFunctionData('castVote',['PROPOSAL_ID', YOUR_VOTE])
  1. Replace PROPOSAL_ID with the proposal ID from the URL.
  2. Replace YOUR_VOTE with 1 (for) or 0 (against).

After pasting and making the necessary replacements, the Ethereum playground will generate the calldata for you. It should look something like this:


5. Send the Transaction

With the generated calldata, you can now send the transaction. Use the following command:

rocketpool node send-message ADDRESS GENERATED_CALLDATA


  • ADDRESS with the DivaGovernor contract address. In our example, it's 0xfb6b7c11a55c57767643f1ff65c34c8693a11a70.
  • GENERATED_CALLDATA with the calldata you generated in the previous step.


Congratulations! You’ve just participated in the governance of the protocol using your self-delegated Diva airdrop from a Rocket Pool Validator. It’s essential to actively participate in governance to ensure the protocol’s future aligns with your vision and the community’s best interests.

Also, go say thank you to peteris8560 for his help in writing this.

Stay informed and vote wisely!

Cat approved!