Skip to main content

Catalyst Voting

Overview

Project Catalyst is Cardano's innovation and governance program, allowing ADA holders to vote on proposals. The Rosetta API implementation supports Catalyst voting registration through a dedicated operation type.

info

For more information about Catalyst voting and how the data structures work, see the CIP-15 specification.

Vote Registration Operation

To register for Catalyst voting, use the voteRegistration operation type with the /construction/preprocess and /construction/payloads endpoints.

{
"network_identifier": {
"blockchain": "cardano",
"network": "mainnet"
},
"operations": [
{
"operation_identifier": {
"index": 1
},
"status": "success",
"type": "voteRegistration",
"metadata": {
"voteRegistrationMetadata": {
"rewardAddress": "addr1q9nr7yuhzsmmdchsjacuqef5cnlajk2s4j2rjre5uzgmtw5vcjwuayent36vkw403c8hat9csyawfgg88qlwweyeshnqsh9r5q",
"stakeKey": {
"curve_type": "edwards25519",
"hex_bytes": "56f29f391a3bb5ff90637b2d2d0a32590214871284b0577e4671b0c1a83f79ba"
},
"votingKey": {
"curve_type": "edwards25519",
"hex_bytes": "8bcec4282239b2cc1a7d8bb294c154c849fc200c7ebd27ef45e610d849bc302a"
},
"votingNonce": 26912766,
"votingSignature": "f75f7a54a79352f9d0e2c4de4e8ded8ae9304fa0f3b021754f8d149c90c7b01e1c6bbfdd623c294d82f5e5cbbfc0bd6fd1c674780db4025446e2eafc87f61b0a"
}
}
}
],
"metadata": {
"ttl": "1000"
}
}

Required Parameters

The voteRegistrationMetadata field requires the following parameters:

ParameterDescription
rewardAddressStaking address which will receive voting rewards
stakeKeyPublic key of the corresponding staking account (hex string)
votingKeyCatalyst voting public key (hex string)
votingNonceCurrent slot number
votingSignatureVote data signed with the staking private key (hex string)

Generating the Voting Signature

The voting signature is created by:

  1. Taking the voting data (corresponding to the "61284" field in the metadata)
  2. Calculating its blake2b-256 hash
  3. Signing this hash with the staking private key