# SEDA

Website: [https://seda.xyz/ ](<https://seda.xyz/ >)

Twitter: <https://twitter.com/sedaprotocol>

Discord: <https://discord.gg/seda>

Explorer: <https://explorer.nodesync.top/SEDA-Mainnet>

API: <https://seda-api.nodesync.top>

RPC: <https://seda-rpc.nodesync.top>

## **1. Minimum hardware requirement**

4 Cores, 8G Ram,  160G SSD, Ubuntu 22.04

## 2. Server preparation

```
sudo apt update && sudo apt upgrade -y
sudo apt install make curl git wget -y
sudo apt install htop tmux build-essential jq make lz4 gcc unzip -y
```

## 3. Install GO

```
if ! which go ; then
#Install GO
ver="1.22.4"
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"
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile
source $HOME/.bash_profile
go version
fi
```

## 4. Download and build binaries

```
wget -O sedad https://github.com/sedaprotocol/seda-chain/releases/download/v0.1.1/sedad-amd64
chmod +x sedad
sudo mv sedad /usr/local/bin
sedad version
```

## 5. Initialize the node

```
sedad config chain-id seda-1
sedad config keyring-backend file
sedad config node tcp://localhost:26657
sedad init MyNode --chain-id seda-1
```

```
curl -Ls https://files.nodesync.top/SEDA/genesis.json > $HOME/.sedad/config/genesis.json
curl -Ls https://files.nodesync.top/SEDA/addrbook.json > $HOME/.sedad/config/addrbook.json
```

```
# Add seeds
sed -i -e "s|^seeds *=.*|seeds = \"400f3d9e30b69e78a7fb891f60d76fa3c73f0ecc@seda.rpc.kjnodes.com:17359\"|" $HOME/.sedad/config/config.toml

# Set minimum gas price
sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"10000000000aseda\"|" $HOME/.sedad/config/app.toml

# Set pruning
sed -i \
  -e 's|^pruning *=.*|pruning = "custom"|' \
  -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
  -e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
  -e 's|^pruning-interval *=.*|pruning-interval = "19"|' \
  $HOME/.sedad/config/app.toml
```

```
# Download latest chain snapshot
curl -L https://files.nodesync.top/SEDA/snapshot_latest.tar.lz4 | tar -Ilz4 -xf - -C $HOME/.sedad
```

## 5. Create Service and Start node

```
sudo tee /etc/systemd/system/sedad.service > /dev/null <<EOF
[Unit]
Description=Seda
After=network-online.target
[Service]
User=root
ExecStart=$(which sedad) start
Restart=always
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
```

```
sudo systemctl daemon-reload
sudo systemctl enable sedad
sudo systemctl restart sedad 
sudo journalctl -u sedad -f --no-hostname -o cat
```

## 6. Wallet

Add New Wallet Key - **Save seed**

```
sedad keys add wallet
```

Recover existing key

<pre><code><strong>sedad keys add wallet --recover
</strong></code></pre>

List All Keys

```
sedad keys list
```

### 6.1 Query Wallet Balance

```
sedad q bank balances $(sedad keys show wallet -a)
```

### 6.2 Check sync status

<mark style="color:red;">**False is synced**</mark>

```
sedad status 2>&1 | jq .sync_info.catching_up
```

### 6.3 Create Validator

**Obtain your validator public key by running the following command:**

```
sedad comet show-validator
```

**The output will be similar to this (with a different key):**

{"@type":"/cosmos.crypto.ed25519.PubKey","key":"lR1d7YBVK5jYijOfWVKRFoWCsS4dg3kagT7LB9GnG8I="}

**Then, create a file named** `validator.json` **with the following content:**

```
nano $HOME/validator.json
```

Change your info, from "pubkey" to "details" and Save them

```
{
 "pubkey": {"@type":"/cosmos.crypto.ed25519.PubKey","key":"lR1d7YBVK5jYijOfWVKRFoWCsS4dg3kagT7LB9GnG8I="},
 "amount": "10000000000000000000aseda", 
 "moniker": "your-node-moniker",
 "identity": "eqlab testnet validator",
 "website": "optional website for your validator",
 "security": "optional security contact for your validator",
 "details": "optional details for your validator",
 "commission-rate": "0.05",
 "commission-max-rate": "0.2",
 "commission-max-change-rate": "0.05",
 "min-self-delegation": "1" 
}
```

**Finally, we're ready to submit the transaction to create the validator:**

```
sedad tx staking create-validator validator.json --from wallet --chain-id seda-1 \
--gas-adjustment 1.4 \
--gas auto \
--gas-prices 10000000000aseda \
-y
```

### 6.4 Delegate Token to your own validator

```
sedad tx staking delegate $(sedad keys show wallet --bech val -a) 1290000000000000000000aseda --from wallet --chain-id seda-1 --gas-adjustment 1.4 --gas auto --gas-prices 10000000000aseda -y
```

### 6.6 Withdraw rewards and commission from your validator

```
sedad tx distribution withdraw-rewards $(sedad keys show wallet --bech val -a) \
--from wallet \
--commission \
--chain-id=seda-1 \
--gas-adjustment 1.4 \
--gas auto \
--gas-prices 10000000000aseda \
-y
```

### 6.7 Unjail validator

```
sedad tx slashing unjail --from wallet --chain-id seda-1 --gas-adjustment 1.4 --gas auto --gas-prices 10000000000aseda -y
```

### 6.8 Services Management

```
# Reload Service
sudo systemctl daemon-reload

# Enable Service
sudo systemctl enable sedad

# Disable Service
sudo systemctl disable sedad

# Start Service
sudo systemctl start sedad

# Stop Service
sudo systemctl stop sedad

# Restart Service
sudo systemctl restart sedad

# Check Service Status
sudo systemctl status sedad

# Check Service Logs
sudo journalctl -u sedad -f --no-hostname -o cat
```

### 7. Snapshot <a href="#snap" id="snap"></a>

```
sudo systemctl stop sedad

cp $HOME/.sedad/data/priv_validator_state.json $HOME/.sedad/priv_validator_state.json.backup
rm -rf $HOME/.sedad/data $HOME/.sedad/wasmPath

curl https://files.nodesync.top/SEDA/snapshot_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.sedad

mv $HOME/.sedad/priv_validator_state.json.backup $HOME/.sedad/data/priv_validator_state.json

sudo systemctl restart sedad && sudo journalctl -u sedad -f
```

## 8. Backup Validator

<mark style="color:red;">**Important**</mark>

```
cat $HOME/.sedad/config/priv_validator_key.json
```

## 9. Remove node

```
cd $HOME
sudo systemctl stop sedad
sudo systemctl disable sedad
sudo rm /etc/systemd/system/nibid.service
sudo systemctl daemon-reload
rm -f $(which sedad)
rm -rf $HOME/.sedad
rm -rf $HOME/sedad
```


---

# 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://services.nodesync.top/mainnet-running/seda.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.
