Governance Transactions

Transactions for participating in Cardano's on-chain governance

In CIP-1694, Cardano's on-chain governance system was proposed to allow the community to vote on proposals and protocol updates. This system is designed to be decentralized and transparent, allowing the community to have a say in the future of the network.

The MeshTxBuilder is a powerful low-level APIs that allows you to build and sign transactions.

This page list the governance transactions that can be created using the Mesh SDK.

DRep Registration

In Voltaire, stake credentials can delegate their stake to Decentralized Representatives (DReps) for voting, in addition to the current delegation to stake pools for block production. This DRep delegation will work similarly to the current stake delegation process, using on-chain certificates. Registering as a DRep will also follow the same process as stake registration.

However, registered DReps need to vote regularly to remain active. If a DRep does not vote for a set number of epochs (defined by the new protocol parameter, drepActivity), they are considered inactive and will not count towards the active voting stake. To become active again, DReps need to vote on governance actions or submit a DRep update certificate within the drepActivity period.

A DRep registration certificates include:

  • a DRep ID
  • a deposit
  • an optional anchor

An anchor is a pair of:

  • a URL to a JSON payload of metadata
  • a hash of the contents of the metadata URL

First we need to get the DRep ID of the DRep we want to register. We can do this by calling getDRep method on the wallet. This will return the DRep object which contains the DRep ID.

Next we need to get the hash of the anchor. We can do this by calling the getMeshJsonHash function. This function fetches the anchor from the given URL and returns the hash of the anchor.

Then, we select the UTxOs to pay for the registration. According to the current protocol parameters, the deposit for registering a DRep is 500 ADA.

We can now build the transaction by adding the DRep registration certificate to the transaction. We also need to add the change address and the selected UTxOs to the transaction.

Finally we can sign the transaction and submit it to the blockchain.

The transaction will be submitted to the blockchain and the DRep will be registered. The deposit will be taken from the DRep owner and the DRep will be added to the list of registered DReps.

DRep Registration

Register a DRep certificate and pay the deposit

Connect wallet to run this demo

No wallets installed

DRep Deregistration

A DRep is retired right away when the blockchain accepts a retirement certificate. The deposit is refunded immediately as part of the transaction that submits the retirement certificate, just like how deposits are returned when a stake credential is unregistered.

First we need to get the DRep ID of the DRep we want to retire. We can do this by calling getDRep method on the wallet. This will return the DRep object which contains the DRep ID.

We then need to initialize the transaction builder by creating a new instance of MeshTxBuilder. We need to pass the blockchain provider to the constructor.

We can now build the transaction by adding the UTxOs as inputs to the transaction and adding the DRep deregistration certificate to the transaction.

Finally we can sign the transaction and submit it to the blockchain.

The transaction will be submitted to the blockchain and the DRep will be retired. The deposit will be refunded to the DRep owner.

DRep De-registration

Retire a DRep certificate amd return the deposit

Connect wallet to run this demo

No wallets installed