Implementing a Secure and Scalable Voting Solution for Catalyst F13

03 February 2025 • Activities & Updates
A professional headshot of CTO Giorgio Zinetti.
Giorgio Zinetti
Chief Technology Officer
Article image

Associating multiple stake keys with a single voting key to achieve objectives

The Cardano Foundation’s participation in F13 of Project Catalyst presented unique operational considerations. In this round, the Foundation sought to enhance its voting involvement while adhering to its established delegation strategy and reducing unnecessary asset movements. This process required careful planning and execution as the Foundation navigated voting in accordance with its overarching goals and principles.

The Foundation’s wallet structure arises from its stake pool operator (SPO) delegation strategy and private key security requirements. These factors necessitate dividing total ada holdings into tranches of approximately 20.25 million, as publicly visible on pool.pm and disclosed in the 2023 Financial Insights Report. The most readily available option, registering one Catalyst voting key (QR code) per tranche, presented challenges. With a total intended voting stake of 180 million ada, this approach would have required registration of nine QR codes, each connected to a separate device, or repeated installation and uninstallation of the Catalyst app on a single device—neither option represented an acceptable workflow. As a result, standard end-user tools like Eternl or Yoroi proved unsustainable.

As such, the Foundation sought an alternative approach while adhering to our existing security protocols. The requirements were clear:

  • Generate one voting key in a secure environment and transform it into an encrypted QR code.
  • Register nine separate wallets for voting, using their stake keys, without necessitating the movement of assets or interaction with payment keys.
  • Enable voting with the total intended voting stake of ada (180 million) in a single transaction.

The Catalyst registration QR code represents a private key, which typically adheres to the Foundation’s stringent key generation procedures. In this specific instance, and after careful risk assessment, we intentionally adopted a different approach to achieve the outlined conditions. The calculated deviation from standard protocols for key generation considered the unique off-chain nature of Catalyst, where risks are inherently lower. The Foundation maintained its usual management processes for staking and payment keys.

Building on Cardano community tooling

CIP-36 defines the transaction metadata format that Catalyst uses for managing voting power. In essence, this standard describes the process by which Catalyst establishes an association between staked ada and a particular voting key. This voting key, in turn, facilitates registration within the Catalyst app. The result is a cryptographic link between Catalyst voting power and staked ada, signed by the key holder controlling stake delegation.

In August 2023, during the Cardano Catalyst Fund 10 voting period, community member HeptaSean explored the feasibility of associating multiple stake keys with a single voting key. This exploration aimed to simplify the registration process for his personal wallet setup, which comprised multiple addresses. He recorded his findings and the process on the Cardano forum—also quoting Martin Lang—who documented an alternative Catalyst registration process here.

Inspired by HeptaSean’s and Lang’s work, the Foundation adopted a similar process and continued testing the specified tools. While the exact setup they described did not yield success in our environment, the community’s development of various tools proved invaluable. Through experimentation, we arrived at a functional solution using tools developed by IOHK and Lang:

  • jcli: Utilized for voting key creation (IOHK).
  • catalyst-toolbox: Employed for QR code encryption and generation (IOHK).
  • cardano-signer: Leveraged for the creation and signing of certificates (Martin Lang).
  • cardano-cli: Used for transaction creation and submission (IOHK).

This combination of tools enabled the Foundation to implement a solution for secure, scalable Catalyst voting.

Catalyst voting key registration: a multi-stake key approach

The process outlined generates a unique voting key, links it to multiple stake keys, and securely registers them on the Cardano blockchain.

jcli key generate --type ed25519extended > vote.skey
jcli key to-public < vote.skey > vote.vkey
jcli key to-public < vote.skey > vote.vkey

catalyst-toolbox qr-code encode --pin xxxx --input vote.skey --output vote.png img

Complete these steps for every stake key:

cardano-signer sign --cip36 --mainnet \
--payment-address <reward address (addr1…)> \
--vote-public-key vote.vkey \
--secret-key stake1.skey \
--json

cardano-cli conway transaction build --mainnet \
--tx-in <utxo to spend> \
--change-address <key to spend next utxo>\
--metadata-json-file catalystregistration1.json \
--out-file catalystregistrationTx1.raw

cardano-cli transaction sign \
--tx-body-file catalystregistrationTx1.raw \
--signing-key-file <key to pay for txFee> \
--mainnet \
--out-file catalystregistrationTx1.signed

cardano-cli conway transaction submit \
--mainnet \
--tx-file catalystregistrationTx1.signed


Shape the future of Cardano and help us improve for Project Catalyst 2025. We invite your valuable feedback via the contact form. Please select the “Community” service area and the “Project Catalyst” sub field.

You may also like

Cardano Foundation Activity Report 2024
30 January 2025
Cardano Ecosystem Guide 2025
23 January 2025
Serviceplan Group and Cardano Foundation Partner to Pioneer AI Innovation on Blockchain
21 January 2025
Venture Hub by the Cardano Foundation
13 January 2025
Merkle Patricia Tries: A Deep Dive into Data Structure Security
07 January 2025
A Spotlight on Stake Pools: Logical Mechanism [LOGIC]
06 January 2025