> 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/story-protocol.md).

# Story Protocol

## **Public Endpoints**

> RPC <https://story-testnet-rpc.validator247.com>
>
> API <https://story-testnet-api.validator247.com>

## Explorer

> <https://testnet.story.explorers.guru/validator/storyvaloper1hce0zrf60rq7nttz72mxzyt8hk0uzzz37zlpra>EVM Address: 0x1B6518B6794eD12CAAa75924164494EB02896DbA
>
> \--validator-pubkey:  A0vX1mg9wseYtm39MUl1eBOaq/ROfWmIWZItiT11UuOn

## 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&#x20;

```
rm -rf $HOME/go
sudo rm -rf /usr/local/go
cd $HOME
curl https://dl.google.com/go/go1.22.1.linux-amd64.tar.gz | sudo tar -C/usr/local -zxvf -
cat <<'EOF' >>$HOME/.profile
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
EOF
source $HOME/.profile
go version
```

## Story-Geth binary

```
wget https://story-geth-binaries.s3.us-west-1.amazonaws.com/geth-public/geth-linux-amd64-0.9.2-ea9f0d2.tar.gz
tar -xzvf geth-linux-amd64-0.9.2-ea9f0d2.tar.gz
sudo cp geth-linux-amd64-0.9.2-ea9f0d2/geth $HOME/go/bin/story-geth
source $HOME/.bash_profile
story-geth version
```

## Story binary&#x20;

```
wget https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-linux-amd64-0.9.11-2a25df1.tar.gz
tar -xzvf story-linux-amd64-0.9.11-2a25df1.tar.gz
sudo cp story-linux-amd64-0.9.11-2a25df1/story $HOME/go/bin/story
source $HOME/.bash_profile
story version
```

## Init Iliad node

```
story init --network <Your_node_name> iliad
```

## story-geth service

```
sudo tee /etc/systemd/system/story-geth.service > /dev/null <<EOF
[Unit]
Description=Story Geth Client
After=network.target

[Service]
User=root
ExecStart=/root/go/bin/story-geth --iliad --syncmode full
Restart=on-failure
RestartSec=3
LimitNOFILE=4096

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable story-geth
```

Start story-geth & Check logs

```
sudo systemctl start story-geth
sudo systemctl status story-geth

sudo journalctl -u story-geth -f -o cat
```

## story service

```
sudo tee /etc/systemd/system/story.service > /dev/null <<EOF
[Unit]
Description=Story Consensus Client
After=network.target

[Service]
User=root
ExecStart=/root/go/bin/story run
Restart=on-failure
RestartSec=3
LimitNOFILE=4096

[Install]
WantedBy=multi-user.target
EOF


sudo systemctl daemon-reload
sudo systemctl enable story
```

Start story & Check logs

```
sudo systemctl start story
sudo systemctl status story

sudo journalctl -u story -f -o cat
```

## Check sync

```
curl localhost:26657/status | jq
```

## Download Genesis & Addrbook

```
curl -o genesis.json https://raw.githubusercontent.com/Validator247/Story-Protocol/main/genesis.json
curl -o addrbook.json https://raw.githubusercontent.com/Validator247/Story-Protocol/main/addrbook.json
```

## Peer Live

```
URL="https://story-testnet-rpc.validator247.com/net_info"
# Fetch data
response=$(curl -s $URL)
# Parse JSON and construct PEERS string using jq
PEERS=$(echo $response | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):" + (.node_info.listen_addr | capture("(?<ip>.+):(?<port>[0-9]+)$").port)' | paste -sd "," -)
# Display the PEERS string
echo "PEERS=\"$PEERS\""
# Set peers
sed -i 's|^persistent_peers *=.*|persistent_peers = "'$PEERS'"|' $HOME/.story/story/config/config.toml
```

Peer Retrieval

```
curl -s https://story-testnet-rpc.validator247.com/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr | capture("(?<ip>.+):(?<port>[0-9]+)$").port)"'
```

## Validator Operations

### Validator Key Export

By default, when you run `./story init` a validator key is created for you. To view your validator key, run the following command:

```
story validator export
```

In addition, if you want to export the derived EVM private key of your validator into the default data config directory, please run the following:

```
story validator export --export-evm-key
```

### Validator Creation

To create a new validator, run the following command:

( your\_private\_key : /root/.story/story/config/private\_key.txt )

```
story validator create --stake 1000000000000000000 --private-key "your_private_key"
```

## Staking&#x20;

```
story validator stake \
  --validator-pubkey A0vX1mg9wseYtm39MUl1eBOaq/ROfWmIWZItiT11UuOn \
  --stake 2000000000000000000 \
  --private-key <your-private_key>
```

*Note:  change number 2 in paragraph 2000000000000000000 equal to the number of tokens you have (>=1 minus gas)*

*Peer:*&#x20;

```
36ae9a7911e9f9ca5cb04b5c740b94b96f1b20c8@38.242.211.97:26656
dd8c1e59141bb27fc0577d2c3fcd4a01f05364a0@57.129.51.140:26656
e8522a9777efdce9b4395981423e8157b4d1d0d1@65.21.45.194:27656
960278d079a111b44c207dca7c2ffac640b477d1@44.223.234.211:26656
401b104059ce4f8d5bf4897a16229d650d01c35e@157.173.197.112:26656
c1b1fb63cb1217e6c342c0fd7edf28902e33f189@100.42.179.9:26656
ccb6e8d1788bd46be4abec716e98236c2e21c067@116.202.51.143:26656
030aa7cc36b89517c9fc48aef96778a1e8e01ba0@45.159.229.206:26656
f16c644a6d19798e482edcfe5bd5728a22aa5e0d@65.108.103.184:26656
0e2f0d4b5204e5e92a994a1eaa745b9ccb1d747b@54.183.204.164:26656
c406516df70019ea35732381ccfd3a3ed20c34fd@45.159.230.24:26656
73bd78de3caccf12edc9dff12a0763b1529a649a@90.188.92.133:26656
38a43001fe9160e0623b7bbadb2a97aa38fadb4a@213.109.147.155:26656
8aa160aa30dd61a66230411f7bd9a5538d73023d@38.242.155.150:26656
6a07e2f396519b55ea05f195bac7800b451983c0@194.163.166.56:26656
8c008dffe0d6dfd8f6b55bbea1c02531b74b34ce@46.105.55.149:26656
b6cdd4ead30ee33030cecbefdfe745c0bde34aea@38.242.247.120:26656
ba940cde0ed8db35e151032de60653d76bb32edf@135.181.7.126:26656
4fcc3f1662834e2a2119204fcb974ac473b8a5f2@165.154.225.127:26656
83f8485a74e510f92983913fefab8f86ca4ee913@45.12.89.109:26656
bb84a8e391ff9ae2d95a3ad1ab10682d39cae583@109.123.241.100:26656
639589b76f79412329e92c9f6e425cf2acc231dd@185.249.225.180:26656
771ec5b075930c6cb19404ff53b7efedb256ceff@38.242.235.142:26656
a94a53b3ff53b69dbf953605e53050e803d72bed@45.159.229.201:26656
e5b80cd31b8f5c40644ce52834b58e51c6a24bfa@65.109.88.19:26656
0efc6115e0a909387f0e3dd29a215d3c62c0bf28@185.239.208.60:26656
ef16b7805dad32f0b66ab8650214f1bbe3692100@54.38.112.219:26656
58f06fabb93152ea6fc16049348b959b4b90b7dc@91.219.202.109:26656
c1d08abe5becc08eea8d7bcbe3c1d3354d712f79@100.42.181.122:26656
8f18f841e244c0aaf540b98704d77f1355686932@185.208.206.31:26656
d104d653aad6ab0363a9d1b1ac17f708db90d46f@62.146.180.25:26656
7afedb7358cee379c2cde6b7b2d7a3a32a407f19@158.220.84.39:26656
29eba33f1f6cfe1c75acf578a364ed52a92339e9@149.102.139.125:26656
359e4420e63db005d8e39c490ad1c1c329a68df3@3.222.216.118:26656
b86c7e06085d72e76eb9e2b908141ac12b0b3806@84.247.178.225:26656
9196235b8cc867b3a1d103da083368b337bae1ea@185.215.165.238:26656
ee7998bc75069aa9115d098f22585af14ecf8390@45.86.229.197:26656
a06353815a6a7542276b6a70fe3496655b356a6f@95.217.119.56:26656
3f7bca798b875a26cf3ba73ba721ce9bbd457713@31.220.17.22:26656
2e8c8d2d7f84b602069fc608a151c19840642d07@95.216.39.183:26656
adff5aa2de7dc5c56150ecac9383df9a2a7aaecf@62.169.17.179:26656
502768c5256728123626411bcd85a5633af5a1bc@95.217.193.182:46656
a4c71052194286f457d0ce7b220325e5a7938b4c@95.216.199.15:26656
e1cb62a52d8fcced3e0ed9ae529215b0d73c00a0@46.105.57.39:26656
4c2ae25d3caaa04facd6611dbf50bbbe43bf4113@107.148.0.230:26656
3fcad85f9858b9ba9eb69f6d1ac4409ad0a75ac5@217.76.52.122:26656
19ed4fd9a414b12a936cd0aaeb281e0f638bf826@193.233.75.216:26656
d0d46d03d81270a6fc0f4552eeb8c8df21a18646@65.108.227.145:26656
5d7507dbb0e04150f800297eaba39c5161c034fe@135.125.188.77:26656
```

## Upgrade

Upgrade v0.10.0 at height: 626575

```
sudo systemctl stop story story-geth
```

```
cd $HOME
rm -rf story
git clone https://github.com/piplabs/story
cd $HOME/story
git checkout v0.10.0
go build -o story ./client
sudo mv $HOME/story/story $(which story)
```

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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://docs.validator247.com/story-protocol.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.
