# 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="/files/bNsikXBcsDWbiW3j6NY0" alt=""><figcaption><p>tempo.vote</p></figcaption></figure>

<figure><img src="/files/k9D7ZGHSn86IDA5PIKtu" 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="/files/0KV2LVmcovuZbBZzFjyI" alt=""><figcaption><p>Stake Address</p></figcaption></figure>

<figure><img src="/files/fdmstEbwfFs0f4w4sxCM" 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](/files/padJ7At3xT4SVIbnghK3) [xSPO Alliance](http://xspo-alliance.org/discord)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ecp.gitbook.io/how-to-guides-for-coincashew-method-cardano-spos/maintenance-and-daily-operations/how-to-guides-for-spos-using-coincashew-method/how-to-delegate-your-spo-wallet-to-a-drep.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
