# How to Delegate your SPO Wallet to a dRep

UPDATED: 1/16/2025

{% hint style="danger" %}
Tested with CLI version: 10.1.1.0
{% endhint %}

**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](https://gov.tools/) or [tempo.vote](https://tempo.vote/) to find a dRep and read about them. Once you are ready to select a dRep, you can copy the dRep ID

{% hint style="info" %}
✅Make sure the dRep ID you copy is the CIP 105 one or also known as DRep ID (Legacy)
{% endhint %}

<figure><img src="https://2549074837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8PjW7zFPfe4PgCsPtkZx%2Fuploads%2F7Eey3NMojoUeSm4qkfAa%2Ftempo_vote_dRep_ID.png?alt=media&#x26;token=163aabdb-ce84-469b-9762-40b8549cf9ed" alt=""><figcaption><p>tempo.vote</p></figcaption></figure>

<figure><img src="https://2549074837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8PjW7zFPfe4PgCsPtkZx%2Fuploads%2F93KCTJ72kHYz07FolRzm%2Fgov_tools_dRep_ID.png?alt=media&#x26;token=a12c1171-8f61-4a09-a7d9-c21b76227894" alt=""><figcaption><p>gov.tools</p></figcaption></figure>

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.

{% hint style="success" %}
Please note we keep our stake keys in the $NODE\_HOME folder for this example, please change path as needed
{% endhint %}

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:

<details>

<summary>Always Abstain</summary>

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

</details>

<details>

<summary>Always No Confidence</summary>

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

</details>

<details>

<summary>Script based dRep</summary>

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

</details>

***

## 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](https://cardanoscan.io/) and search it to see if your dRep delegation was registered&#x20;

<figure><img src="https://2549074837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8PjW7zFPfe4PgCsPtkZx%2Fuploads%2FgeMdpbzcWYw77FqPDd4Q%2Fstake_address.png?alt=media&#x26;token=a4f9a031-caf7-4f64-8ba5-ca03df06b66a" alt=""><figcaption><p>Stake Address</p></figcaption></figure>

<figure><img src="https://2549074837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8PjW7zFPfe4PgCsPtkZx%2Fuploads%2FLlDpj1baFEpntC6uB57x%2Fdelegation_cert_after.png?alt=media&#x26;token=7003482c-a8ca-4733-be27-f3602bd4caf3" alt=""><figcaption><p>Vote Delegated To: dRep </p></figcaption></figure>

***

### Congratulations you did it!

{% hint style="danger" %}
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.
{% endhint %}

Additional Resources:

{% embed url="<https://developers.cardano.org/docs/get-started/cardano-cli/governance/delegate%20to%20a%20drep/>" %}

## Contributors&#x20;

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

![](https://img.cexplorer.io/a/5/7/2/1/pool12wpfng6cu7dz38yduaul3ngfm44xhv5xmech68m5fwe4wu77udd.png) [Apex Cardano Pool - Ticker: APEX](https://cexplorer.io/pool/pool12wpfng6cu7dz38yduaul3ngfm44xhv5xmech68m5fwe4wu77udd)

![](https://img.cexplorer.io/7/e/1/9/f/pool16cdtqyk0fvxzfkhjg3esjcuty4tnlpds5lj0lkmqmwdjyzaj7p8.png)  [Earn Coin Pool - Ticker: ECP](https://cexplorer.io/pool/pool16cdtqyk0fvxzfkhjg3esjcuty4tnlpds5lj0lkmqmwdjyzaj7p8)

![xSPO Alliance Logo](https://2549074837-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8PjW7zFPfe4PgCsPtkZx%2Fuploads%2F0sqzqoHnqVXizi2RHABd%2FxSPO_NFT_64x64.png?alt=media\&token=1c1b130e-26df-4b1e-8e0e-e85fae1ee73e) [xSPO Alliance](http://xspo-alliance.org/discord)
