> For the complete documentation index, see [llms.txt](https://services.noderuner.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://services.noderuner.xyz/pell-network/installation.md).

# 🔌  Installation

[🛠️ ](https://docs.lavanet.xyz/access-server-kit)Hardware Requirements

| CPU   | RAM | Storage |
| ----- | --- | ------- |
| 4 CPU | 8GB | 200GB   |

#### 📌**Step 1: Installation packeges and dependencies** <a href="#step-1-installation-packeges-and-dependencies" id="step-1-installation-packeges-and-dependencies"></a>

```
# Install dependencies for building from source
sudo apt update
sudo apt install -y lz4 jq make git gcc build-essential curl chrony unzip gzip snapd tmux bc

# Bash Profile Environment Setup
[ ! -f ~/.bash_profile ] && touch ~/.bash_profile
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> ~/.bash_profile
source $HOME/.bash_profile
[ ! -d ~/go/bin ] && mkdir -p ~/go/bin

# Install Go
cd $HOME
VER="1.22.0"
wget "https://golang.org/dl/go$VER.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go$VER.linux-amd64.tar.gz"
rm "go$VER.linux-amd64.tar.gz"
[ ! -f ~/.bash_profile ] && touch ~/.bash_profile
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> ~/.bash_profile
source $HOME/.bash_profile
```

#### 📌**Step 2: Set moniker and install node** <a href="#step-2-set-moniker-and-install-node" id="step-2-set-moniker-and-install-node"></a>

Give your validator a name by which you can find yourself in explorer, put it in ""

```
MONIKER=""
```

After that, insert the following node installation command ( apply one by one to avoid meeting with an error )

```
# Clone project repository
cd $HOME
wget -O pellcored https://github.com/0xPellNetwork/network-config/releases/download/v1.2.1/pellcored-v1.2.1-linux-amd64
chmod +x pellcored
mv pellcored ~/go/bin/
WASMVM_VERSION=v2.1.2
export LD_LIBRARY_PATH=~/.pellcored/lib
mkdir -p $LD_LIBRARY_PATH
wget "https://github.com/CosmWasm/wasmvm/releases/download/$WASMVM_VERSION/libwasmvm.$(uname -m).so" -O "$LD_LIBRARY_PATH/libwasmvm.$(uname -m).so"
echo "export LD_LIBRARY_PATH=$HOME/.pellcored/lib:$LD_LIBRARY_PATH" >> $HOME/.bash_profile
source ~/.bash_profile

# Initialize the node
If you encounter an error here, please manually edit the file using
pellcored config keyring-backend os
pellcored config chain-id ignite_186-1
pellcored init "$MONIKER" --chain-id ignite_186-1 

nano /root/.pellcored/config/client.toml
CTRL+X Y Enter

# Download genesis and addrbook files
curl -Ls https://raw.githubusercontent.com/mytolga/pell-testnet/refs/heads/main/genesis.json > $HOME/.pellcored/config/genesis.json
curl -Ls https://raw.githubusercontent.com/mytolga/pell-testnet/refs/heads/main/addrbook.json > $HOME/.pellcored/config/addrbook.json

# Peers
PEERS="1a7b6f07673a96f3a0391705da32ee184730fb7d@91.205.105.37:26656,2b2932bd000204b75d2675d84e0e6e690fcc9b41@31.165.179.107:26656,d003cb808ae91bad032bb94d19c922fe094d8556@pell-testnet-peer.itrocket.net:58656,f2474b5e49e1399ee933cb28776dd9893941457d@135.181.210.46:57656,a2460ce7888ac53f13aa50ba0b8df9a553bd3332@65.109.84.153:57656,2af565efc9036b85167e3c3c01a2b5ad6db0b8e3@43.157.105.179:26656,d52c32a6a8510bdf0d33909008041b96d95c8408@34.87.39.12:26656,81caef1e38e18974813624aea310722ad68a33dd@65.109.27.148:26656,f1049cc2be2902053bcf5ea1a553414d8a978ef6@[2a01:4f8:110:4265::11]:26656,c9a5d341547e06441e30e07db289fc337ec36f79@152.53.87.97:26656,78d89ac4ef91fd92bd97769891711ca58bd7f512@65.108.226.44:47956"
sed -i -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*persistent_peers *=.*/persistent_peers = \"$PEERS\"/}" $HOME/.pellcored/config/config.toml

# Disable indexer
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.pellcored/config/config.toml

# Change pruning
sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" $HOME/.pellcored/config/app.toml 
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $HOME/.pellcored/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"19\"/" $HOME/.pellcored/config/app.toml

# Download latest chain data snapshot ( credit-itrocket )
cp $HOME/.pellcored/data/priv_validator_state.json $HOME/.pellcored/priv_validator_state.json.backup
rm -rf $HOME/.pellcored/data
curl https://server-5.itrocket.net/testnet/pell/pell_2025-02-27_1169270_snap.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.pellcored
mv $HOME/.pellcored/priv_validator_state.json.backup $HOME/.pellcored/data/priv_validator_state.json

# Create a service 
sudo tee /etc/systemd/system/pellcored.service > /dev/null <<EOF
[Unit]
Description=Pell node
After=network-online.target
[Service]
User=$USER
WorkingDirectory=$HOME/.pellcored
ExecStart=$(which pellcored) start --home $HOME/.pellcored --chain-id=ignite_186-1
Environment=LD_LIBRARY_PATH=$HOME/.pellcored/lib/
Restart=on-failure
RestartSec=5
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF

# Start the service and check the logs
sudo systemctl daemon-reload
sudo systemctl enable pellcored
sudo systemctl restart pellcored && sudo journalctl -u pellcored -f
```

### 📝 Create wallet <a href="#create-wallet" id="create-wallet"></a>

#### 📌**Step 1: Create wallet** <a href="#step-1-create-wallet" id="step-1-create-wallet"></a>

```
pellcored keys add wallet
```

Save all information after entering the command.

#### 📌**Step 2: Request test tokens to your wallet address** <a href="#step-2-request-test-tokens-to-your-wallet-address" id="step-2-request-test-tokens-to-your-wallet-address"></a>

To receive test tokens, you will need to request tokens from the project team.

#### 📌**Step 3:** **Create validator** <a href="#step-3-create-validator" id="step-3-create-validator"></a>

Please arrange the following information according to yourself

```
cd $HOME
# Create validator.json file
echo "{\"pubkey\":{\"@type\":\"/cosmos.crypto.ed25519.PubKey\",\"key\":\"$(pellcored comet show-validator | grep -Po '\"key\":\s*\"\K[^"]*')\"},
    \"amount\": \"1000000apell\",
    \"moniker\": \"$MONIKER\",
    \"identity\": \"\",
    \"website\": \"\",
    \"security\": \"\",
    \"details\": \"\",
    \"commission-rate\": \"0.1\",
    \"commission-max-rate\": \"0.2\",
    \"commission-max-change-rate\": \"0.01\",
    \"min-self-delegation\": \"1\"
}" > validator.json

# Create a validator using the JSON configuration
pellcored tx staking create-validator validator.json \
    --from $WALLET \
    --chain-id ignite_186-1 \
	--gas auto --gas-adjustment 1.5
```

#### 📌**Step 4:** **Delegate to yourself** <a href="#step-3-create-validator" id="step-3-create-validator"></a>

```
pellcored tx staking delegate $(pellcored keys show $WALLET --bech val -a) 1000000apell --from $WALLET --chain-id ignite_186-1 --gas auto --gas-adjustment 1.5 -y 
```

#### Check Log <a href="#delegate-to-another-validator" id="delegate-to-another-validator"></a>

```
sudo journalctl -u pellcored -f
```
