> For the complete documentation index, see [llms.txt](https://docs.validator247.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.validator247.com/testnet/initia.md).

# Initia

**Info**

> <https://discord.com/invite/initia>
>
> <https://twitter.com/initiaFDN>
>
> <https://initia.xyz/>

**Chain:**

```
nitiad version: v0.2.11
Chain ID : initiation-1
```

Public RPC Endpoint

> <https://initia-testnet-rpc.validator247.com>
>
> <https://initia-testnet-api.validator247.com>

**Explorer**

> <https://scan.testnet.initia.xyz/initiation-1/validators>

## **A.  Install Node**&#x20;

The minimum hardware requirements for running an Initia node are:

```
CPU: 16 cores
Memory: 64GB RAM
Disk: 1 TB SSD Storage
Bandwidth: 100 Mbps
```

Update system

```
sudo apt update
sudo apt-get install git curl build-essential make jq gcc snapd chrony lz4 tmux unzip bc -y
```

Install Go

```
sudo rm -rvf /usr/local/go/
wget https://golang.org/dl/go1.21.1.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.1.linux-amd64.tar.gz
rm go1.21.1.linux-amd64.tar.gz
```

**Configure Go**

```
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
```

**Install Cosmovisor**

```
go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor@v1.0.0
```

## **Install Node**

```
git clone https://github.com/initia-labs/initia initia
cd initia
git checkout v0.2.15
make install
```

## **Initialize Node**

```
initiad init YOUR_MONIKER --chain-id initiation-1
```

## Download  genesis & addrbook

```
wget https://github.com/Validator247/Innitia/raw/main/genesis.json
wget https://github.com/Validator247/Innitia/raw/main/addrbook.json
```

## **Create Service**

```
sudo tee /etc/systemd/system/initiad.service > /dev/null <<EOF
[Unit]
Description="initia node"
After=network-online.target

[Service]
User=root
ExecStart=/root/go/bin/cosmovisor start
Restart=always
RestartSec=3
LimitNOFILE=4096
Environment="DAEMON_NAME=initiad"
Environment="DAEMON_HOME=/root/.initia"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
Environment="UNSAFE_SKIP_BACKUP=true"

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable initiad

```

## **Download Snapshot**

> ```
> https://polkachu.com/testnets/initia/snapshots
> https://dashboard.moonlet.app/dashboard/snapshots
> ```

## Launch Node

```
sudo systemctl restart initia
journalctl -u initia -f -o cat
```

Command  services

```
initiad status | jq

sudo journalctl -u initiad -f --no-hostname -o cat

sudo systemctl restart initiad

sudo systemctl status initiad

sudo systemctl start initiad

sudo systemctl enable initiad

sudo systemctl daemon-reload
```

Upgrade&#x20;

```
sudo systemctl st initiad

cd $HOME
rm -rf initia
git clone https://github.com/initia-labs/initia.git
cd initia
git checkout v0.2.15
make install

sudo systemctl daemon-reload

sudo systemctl restart initiad && sudo journalctl -u initiad -f -o cat
```

***Above are the most important components. For details, please follow the team's guide***

> <https://docs.initia.xyz/run-initia-node/running-initia-node>

Create Validator

```
initiad tx mstaking create-validator \
    --amount="1000000uinit" \
    --pubkey=$(initiad tendermint show-validator) \
    --identity="your_keybase" \
    --website="your_website" \
    --security-contact="your_email" \
    --details="I love validator247" \
    --chain-id="initiation-1" \
    --from="wallet" \
    --commission-rate="0.10" \
    --commission-max-rate="0.20" \
    --commission-max-change-rate="0.01" \
    --gas="500000" \
    --fees="75000uinit" \
    -y
```

Edit Validator

```
initiad tx mstaking edit-validator --website="<your_website>" --details="<I love validator247>" --moniker="<your_nodename>" --identity="<your_keybase">" --from=<wallet_name> --gas=2000000 --fees=300000uinit -y
```

Unjail&#x20;

```
initiad tx slashing unjail --from wallet --chain-id initiation-1 --gas=2000000 --fees=563000move/944f8dd8dc49f96c25fea9849f16436dcfa6d564eec802f3ef7f8b3ea85368ff -y 
```

## B . Oracle

Step 1 : Clone the Repository

```
git clone https://github.com/skip-mev/slinky.git
cd slinky

# checkout proper version
git checkout v0.4.3
```

nano config/core/oracle.json

Check the final code and edit it to look like the following code: (if it's the same, keep it the same)

```
{
  "market_providers": [
    {
      "name": "marketmap_api",
      "api": {
        "enabled": true,
        "timeout": 20000000000,
        "interval": 10000000000,
        "reconnectTimeout": 2000000000,
        "maxQueries": 1,
        "atomic": true,
        "url": "0.0.0.0:9090",
        "endpoints": null,
        "batchSize": 0,
        "name": "marketmap_api"
      },
      "type": "market_map_provider"
    }
  ],
  "metrics": {
    "prometheusServerAddress": "0.0.0.0:8002",
    "enabled": true
  },
  "host": "0.0.0.0",
  "port": "8080"
}

```

## Create a new tmux, then run the next step

**Starting The Sidecar**

Compile Slinky:

```
# You can use one of the following two commands:
make build

# or
go build -o build/slinky ./cmd/slinky
```

Run sidecar:

```
./build/slinky --oracle-config-path ./config/core/oracle.json --market-map-endpoint 0.0.0.0:9090

```

Exit tmux to go to the next step

Create another tmux

Validating Prices:

```
make run-oracle-client
```

Exit tmux

Enable Vote Extension Oracle:&#x20;

open the <.initia/config/app.toml> file, scroll down to the bottom and edit the Oracle section to resemble the following code:

```
###############################################################################
###                                  Oracle                                 ###
###############################################################################
[oracle]
# Enabled indicates whether the oracle is enabled.
enabled = "true"

# Oracle Address is the URL of the out of process oracle sidecar. This is used to
# connect to the oracle sidecar when the application boots up. Note that the address
# can be modified at any point, but will only take effect after the application is
# restarted. This can be the address of an oracle container running on the same
# machine or a remote machine.
oracle_address = "127.0.0.1:8080"

# Client Timeout is the time that the client is willing to wait for responses from 
# the oracle before timing out.
client_timeout = "500ms"

# MetricsEnabled determines whether oracle metrics are enabled. Specifically
# this enables instrumentation of the oracle client and the interaction between
# the oracle and the app.
metrics_enabled = "false"
```

Restart and checklogs:

```
sudo systemctl daemon-reload

sudo systemctl restart initiad

sudo journalctl -u initiad -f --no-hostname -o cat
```

&#x20;\# **DONE**&#x20;
