> For the complete documentation index, see [llms.txt](https://cardano-node-installation.stakepool247.eu/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cardano-node-installation.stakepool247.eu/cardano-block-producer-configuration/generating-wallet-keys.md).

# Generating wallet keys

All key generation should happen in your `~/cnode/keys/` directory.

```bash
cd ~/cnode/keys/
```

## 1) Create a payment wallet

Generate a payment-only wallet (`myWallet`) for paying transaction fees and the pool deposit:

```bash
02_genPaymentAddrOnly.sh myWallet cli
ls -al
```

![](/files/-MTGXGPU1QL8FiAaQwBq)

## 2) Check the wallet balance

```bash
01_queryAddress.sh myWallet
```

![](/files/-MTGyalPxmrlLtRQGyDv)

The wallet is empty — expected for a new address.

{% hint style="info" %}
You need approximately **505 ADA** to complete pool registration:
{% endhint %}

| Purpose                | Amount                                           |
| ---------------------- | ------------------------------------------------ |
| Pool key deposit       | 500 ADA (refunded when you de-register the pool) |
| Delegation key deposit | \~2 ADA                                          |
| Transaction fees       | \~3 ADA                                          |

{% hint style="info" %}
Send 505 ADA to the address shown by the query command above, then verify the balance before continuing.
{% endhint %}

After funding, verify the balance:

```bash
01_queryAddress.sh myWallet
```

![](/files/-MTGz4XPdzQksWOUIdSf)

## 3) Create a staking/pledge address

Generate the address that will hold your pool's pledge:

```bash
03a_genStakingPaymentAddr.sh poolOwner cli
ls -al poolOwner*
```

![](/files/-MTGZ9dqX9K_y7U5jwdj)

## 4) Register the stake key on-chain

Register the owner stake key. `myWallet` pays for the transaction and deposit:

```bash
03b_regStakingAddrCert.sh poolOwner myWallet
```

![](/files/-MTGzSIHeRaSyoSw4pAV)

## 5) Verify registration

```bash
03c_checkStakingAddrOnChain.sh poolOwner
```

![](/files/-MTGzmokj1jlHS-d-a5x)

The payment wallet and pledge wallet are ready. Continue to generating pool keys.
