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
Tested with CLI version: 10.1.1.0
You have four delegation options:
Delegate to a dRep (dRep ID will be needed)
Always Abstain: this option signals your intention not to participate in the voting process, indicating a choice to abstain from voting
Always No Confidence: this option signifies your lack of trust in the current constitutional committee, indicating a vote of no confidence in their decisions
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


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.
Please note we keep our stake keys in the $NODE_HOME folder for this example, please change path as needed
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:
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


Congratulations you did it!
If you are getting errors, please double check paths. This guide was done using the typical paths and file names from the coincashew original guide.
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
Last updated