# Namada Pre-genesis Delegations
Written by Spork on Sep 16, 2024
Last updated: Oct 7, 2024 by Gavin
Looking for validator instructions? https://hackmd.io/@ian-knowable/H1XlWIq5A
---
## Quick reference
Find your NAM balance: https://raw.githubusercontent.com/anoma/namada-genesis/main/balances.toml
Pre-genesis delegation instructions: https://hackmd.io/hrSE8cvaREivp4CYTe55Tw
Pre-genesis delegation interface: https://namada-genesis.kintsugi-nodes.com
Testnet explorers:
- https://shielded.live
- https://testnet.namada.valopers.com
Testnet interface to test your balance: https://interface.housefire.tududes.com
## Read me!
Pre-genesis delegations will be used to determine which validators will launch the Namada mainnet. Any valid delegation will be included.
If you are a validator, please do not try to openly solicit delegations using this process. Please ask your prospective delegators to wait until mainnet so that they have a web Namada interface.
The easiest way to delegate will be with a web interface (like Namadillo) after mainnet, but please continue if you're one of the following:
- a validator
- a backer
- an early core contributor
- someone that's excited to participate in mainnet launch
## What you need before starting:
- Confirm your NAM allocation in the mainnet genesis `balances.toml` file [here](https://raw.githubusercontent.com/anoma/namada-genesis/main/balances.toml).
- The `tnam` address for each validator you want to delegate to in the [pre-genesis list](https://github.com/anoma/namada-mainnet-genesis?tab=readme-ov-file#validators).
- Namada `v0.43.0` software (aka "binaries")
You can download these from the [Github releases page](https://github.com/anoma/namada/releases/tag/v0.43.0).
- (Optional) A Ledger Nano S **(not X)** with the Namada app installed using a work-around according to these [instructions](https://docs.namada.net/users/wallet/hardware-wallet).
#### **⚠️ Note:** Nano X and others won't work until the Namada app has been updated in the Ledger Live catalogue.
## Step by step guide
**:video_camera: [Here is a 5-minute video walk-through](https://www.loom.com/share/91c0db5ddf804c1780b6c07d324d30b6?sid=0505f595-2b4b-4233-9ea4-745b756bce73) of the entire process, from beginning to end.**
------
1. Add your keys to your wallet. In these commands, `$ALIAS` is a name of your choosing.
- Using mnemonic: `namadaw --pre-genesis derive --alias $ALIAS`
- Using private key: `namadaw --pre-genesis add --alias $ALIAS --value $RAW_PRIVATE_KEY`
- Using a Ledger:`namadaw --pre-genesis derive --alias $ALIAS --use-device` (you will be prompted to confirm on your device)
2. Display your address and public key; you'll need them in the next steps:
```
namadaw --pre-genesis list
```
Copy/paste the public key to a variable:
```
PUB_KEY=tpknam...
```
3. Find the address (`tnam...`) of the validator you wish to delegate to. Check the README of the [mainnet-genesis repo](https://github.com/anoma/namada-mainnet-genesis) for a list of potential validators. Copy/paste the address to a variable for later:
```
TARGET=tnam...
```
4. Consult the [balances.toml](https://raw.githubusercontent.com/anoma/namada-genesis/main/balances.toml) and use Ctrl+F to find your address, to see how many NAM you have available to delegate.
**DO NOT DELEGATE YOUR ENTIRE BALANCE,** save at least 1 NAM for transaction fees.
```
AMOUNT=5000
```
5. Create the unsigned bond pre-genesis transaction, which will be written to the location specified by `--path`. Example below delegates 5000 NAM:
```
namadac utils genesis-bond \
--source $PUB_KEY \
--validator $TARGET \
--amount $AMOUNT \
--path bond.toml
```
6. **Multiple delegations**
It may be wise to distribute your stake among several validators to lessen the penalty-size risk of cubic slashing, but this is optional.
Use Step 5 to create the bond.toml file and open in a plaintext editor. Copy/paste and then update the validator and amount for each new paste:
```
[[bond]]
source = "tpknam1qqt3q97n8knytcfvsax4k4rvdthxl9f5pjkj9fmscvyg72r2kdl9674f37e"
validator = "tnam1qxypnz2hsgdn6avhz6szk82c6nzxq7gvvvexmnrt"
amount = "10000"
[[bond]]
source = "tpknam1qqt3q97n8knytcfvsax4k4rvdthxl9f5pjkj9fmscvyg72r2kdl9674f37e"
validator = "tnam1qxuv9e6rx0stfz7e842q4uwmpcexh50765qqw9ns"
amount = "5000"
[[bond]]
source = "tpknam1qqt3q97n8knytcfvsax4k4rvdthxl9f5pjkj9fmscvyg72r2kdl9674f37e"
validator = "tnam1q4k4rvdthxl9f5pjkj9fmswmpcexh50765qqw9ns"
amount = "25000"
```
*Note: Regardless of whether you're doing one bond or multiple, only sign and submit one bond toml file*
7. Finally, sign the transaction(s) file. In the below command, `--path` is the input file and `--output` is the resulting signed file:
```
namadac utils sign-genesis-txs \
--path bond.toml \
--output signed-bond.toml
```
If you're using a Ledger Nano S, the command is almost the same:
```
namadac utils sign-genesis-txs \
--path bond.toml \
--output signed-bond.toml \
--use-device
```
You will be prompted on the device to confirm the signing.
8. Make a Pull Request to the [mainnet-genesis repo](https://github.com/anoma/namada-mainnet-genesis) by doing the following:
a) rename the `signed-bond.toml` file to match the Github username of the account you'll be submitting from; eg. `gavinly-bond.toml`
**!! the filename must be all lowercase !!**
b) clone the repo and place your `[github_username]-bond.toml` in the `transactions/` folder
c) Create a new Pull Request with the name "Add [github_username]-bond.toml"
As pre-genesis bond txs are added, the README and graph on the [mainnet-genesis repo](https://github.com/anoma/namada-mainnet-genesis) will dynamically update with the current voting power.
Until the end of Stage 2, you can update/delete your delegation(s) by making a PR to modify/remove your existing `[github_username]-bond.toml`. **After Stage 2 is complete, you will not be able to make further modifications prior to chain-launch.**
9. If you like, you can sign up for the staking newsletter for updates about mainnet and next steps: https://namada.us7.list-manage.com/subscribe?u=69adafe0399f0f2a434d8924b&id=263f552276