# 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