How to Delegate your SPO Wallet to a dRep

This guide will walk you through the process of delegating your SPO wallet to a dRep.

UPDATED: 1/16/2025

You have four delegation options:

  1. Delegate to a dRep (dRep ID will be needed)

  2. Always Abstain: this option signals your intention not to participate in the voting process, indicating a choice to abstain from voting

  3. Always No Confidence: this option signifies your lack of trust in the current constitutional committee, indicating a vote of no confidence in their decisions

  4. Delegating to a script based dRep


If you want to delegate to a dRep you will need their dRep ID:

Step 1 - Copy dRep ID

You will probably use resources like gov.tools or tempo.vote to find a dRep and read about them. Once you are ready to select a dRep, you can copy the dRep ID

✅Make sure the dRep ID you copy is the CIP 105 one or also known as DRep ID (Legacy)

tempo.vote
gov.tools

In this example we copied dRep ID:

drep1pmy58hz70shnprfexg4z6ykfxnavtv5jdemvvl5yktydzml6wlq

Step 2 - Generate Vote Delegation Certificate on Air Gapped Machine

⚠️ON AIR GAPPED MACHINE

With the dRep ID noted and copied move to your Air Gapped Machine.

Next generate the vote-deleg.cert running the following command

Replace drep1... on the --drep-key-hash line with your selected dRep ID.

cd $NODE_HOME
cardano-cli conway stake-address vote-delegation-certificate \
  --stake-verification-key-file stake.vkey \
  --drep-key-hash drep1pmy58hz70shnprfexg4z6ykfxnavtv5jdemvvl5yktydzml6wlq \
  --out-file vote-deleg.cert

⚠️Other Delegation options if you don't want to select a dRep:

Always Abstain

Run following command to delegate to Always Abstain:

cd $NODE_HOME
cardano-cli conway stake-address vote-delegation-certificate \
--stake-verification-key-file stake.vkey \
--always-abstain \
--out-file vote-deleg.cert

Go to Step 3

Always No Confidence

Run following command to delegate to Always No Confidence:

cd $NODE_HOME
cardano-cli conway stake-address vote-delegation-certificate \
--stake-verification-key-file stake.vkey \
--always-no-confidence \
--out-file vote-deleg.cert

Go to Step 3

Script based dRep

Run following command to delegate to Script based dRep: Replace "< drep-script.id>":

cd $NODE_HOME
cardano-cli conway stake-address vote-delegation-certificate \
--stake-verification-key-file stake.vkey \
--drep-script-hash < drep-script.id > \
--out-file vote-deleg.cert

Go to Step 3


Step 3 - Copy vote-deleg.cert file to Relay

Now we will take the "vote-deleg.cert" file and copy to a warm machine to build the transaction. In this sample we will copy all our files to $NODE_HOME directory.


Step 4 - Find UTxO and change tx-in

We will find a UTxO (preferably with only ADA) to use to submit the transaction. Assuming you have a payment.addr file, run the following command. Otherwise swap $(cat payment.addr) with your payment address

cd $NODE_HOME
cardano-cli conway query utxo \
--address $(cat payment.addr) \
--mainnet

Step 5 - Build Transaction with the new UTxO

Replace utxo on the --tx-in line with your selected utxo. Also if you don't have payment.addr file, swap $(cat payment.addr) with your payment address in the --change-address line

cd $NODE_HOME
cardano-cli conway transaction build \
--mainnet \
--tx-in ec8c53495d26989a924f01d36a73f82952d4efac79b8ed534aca99fc111d9e5d#0 \
--change-address $(cat payment.addr) \
--certificate-file vote-deleg.cert \
--witness-override 2 \
--out-file tx.raw

Step 6 - Copy tx.raw file to Air Gapped Machine

Copy your vote-tx.raw file over to you air gapped machine to sign. In this sample we will copy all our files to $NODE_HOME directory.


Step 7 - Sign with SPO Wallet Stake and Payment Key

⚠️ON AIR GAPPED MACHINE

cd $NODE_HOME
cardano-cli conway transaction sign \
--tx-body-file tx.raw \
--signing-key-file payment.skey \
--signing-key-file stake.skey \
--out-file tx.signed

Step 8 - Copy tx.signed file to Relay

Copy the "tx.signed" file to a warm machine to submit the transaction. In this sample we will copy all our files to $NODE_HOME directory


Step 9 - Submit the Transaction

cd $NODE_HOME
cardano-cli conway transaction submit \
--tx-file tx.signed \
--mainnet

Step 10 - Confirm dRep Delegation

Wait a few minutes for your transaction to make it on-chain. Then copy your stake address and go to cardanoscan.io and search it to see if your dRep delegation was registered

Stake Address
Vote Delegated To: dRep

Congratulations you did it!

Additional Resources:

Contributors

Thanks to the following pools for helping to put together these guides. Please consider delegating to their pools to support them. Are you a pool? Consider buying them a coffee

Apex Cardano Pool - Ticker: APEX

Earn Coin Pool - Ticker: ECP

xSPO Alliance

Last updated