Network Overview

Selfchain
Self Chain Is the First Modular Intent-Centric Access Layer L1 Blockchain and Keyless Wallet Infrastructure Service That Uses MPC-TSS/AA for Multi-Chain Web3 Access
https://rpc-selfchain.sychonix.comhttps://api-selfchain.sychonix.com53ff834bd5b80817d008f653b16565d7d1e62659@selfchain-mainnet.sychonix.com:11256PEERS="$(curl -sS https://rpc-selfchain.sychonix.com/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}' | sed -z 's|\n|,|g;s|.$||')"  
sed -i -e "s|^persistent_peers *=.*|persistent_peers = \"$PEERS\"|" $HOME/.selfchain/config/config.tomlcurl -L https://snapshot.sychonix.com/mainnet/selfchain/genesis.json > $HOME/.selfchain/config/genesis.jsoncurl -L https://snapshot.sychonix.com/mainnet/selfchain/addrbook.json > $HOME/.selfchain/config/addrbook.jsonInstallation
- Install Dependencies
 
sudo apt update && sudo apt upgrade -y
sudo apt install curl iptables build-essential git wget jq make gcc nano tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev aria2 -y- Install Go
 
VER="1.21.6"
sudo rm -rf /usr/local/go
curl -Ls https://go.dev/dl/go$VER.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile
source $HOME/.bash_profile
go versioncd $HOME
curl -L https://snapshot.sychonix.com/mainnet/selfchain/selfchaind.tar.gz | tar -xvzf - -C $HOME
sudo mv selfchaind /usr/local/bin/- Initialize The Node
 
selfchaind config node tcp://localhost:11257
selfchaind config keyring-backend os
selfchaind config chain-id self-1
selfchaind init "YourName" --chain-id self-1- Download Genesis & Addrbook
 
curl -L https://snapshot.sychonix.com/mainnet/selfchain/genesis.json > $HOME/.selfchain/config/genesis.json
curl -L https://snapshot.sychonix.com/mainnet/selfchain/addrbook.json > $HOME/.selfchain/config/addrbook.json- Configure Seeds and Peers
 
PEERS="$(curl -sS https://rpc-selfchain.sychonix.com/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}' | sed -z 's|\n|,|g;s|.$||')"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.selfchain/config/config.toml- Update Port Configuration
 
sed -i -e "s%:1317%:11217%; s%:8080%:11280%; s%:9090%:11290%; s%:9091%:11291%; s%:8545%:11245%; s%:8546%:11246%; s%:6065%:11265%" $HOME/.selfchain/config/app.toml
sed -i -e "s%:26658%:11258%; s%:26657%:11257%; s%:6060%:11260%; s%:26656%:11256%; s%:26660%:11261%" $HOME/.selfchain/config/config.toml- Customize Pruning
 
sed -i \
  -e 's|^pruning *=.*|pruning = "custom"|' \
  -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
  -e 's|^pruning-interval *=.*|pruning-interval = "17"|' \
  $HOME/.selfchain/config/app.toml- Set Minimum Gas Price, Enable Prometheus, and Disable the Indexer
 
sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"1uslf\"|" $HOME/.selfchain/config/app.toml
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.selfchain/config/config.toml
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.selfchain/config/config.toml- Create Service File
 
sudo tee /etc/systemd/system/selfchaind.service > /dev/null <<EOF
[Unit]
Description=selfchain mainnet node
After=network-online.target
[Service]
User=$USER
ExecStart=$(which selfchaind) start
Restart=always
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF- Download Current Snapshot
 
curl "https://snapshot.sychonix.com/mainnet/selfchain/selfchain-snapshot.tar.lz4" | lz4 -dc - | tar -xf - -C "$HOME/.selfchain"- Enable the Service and Start the Node
 
sudo systemctl daemon-reload
sudo systemctl enable selfchaind.service
sudo systemctl restart selfchaind.service && sudo journalctl -u selfchaind.service -f --no-hostname -o catUpgrade
No chain upgrades scheduled yet.
Peers
- Automatically adding Live peers to your config.toml file
 
PEERS="$(curl -sS http://rpc-selfchain.sychonix.com/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}' | sed -z 's|\n|,|g;s|.$||')"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.selfchain/config/config.tomlSnapshot
Height: Loading... | Last updated: Loading... | Size: Loading...
- Install dependencies, if needed
 
sudo apt update && sudo apt install aria2- Stop Service
 
sudo systemctl stop selfchaind- Back up priv_validator_state.json
 
cp $HOME/.selfchain/data/priv_validator_state.json $HOME/.selfchain/priv_validator_state.json.backup- Reset the data
 
selfchaind tendermint unsafe-reset-all --home $HOME/.selfchain --keep-addr-book- Download Snapshot
 
aria2c -x 16 -s 16 -o selfchain-snapshot.tar.lz4 https://snapshot.sychonix.com/mainnet/selfchain/selfchain-snapshot.tar.lz4
lz4 -dc selfchain-snapshot.tar.lz4 | tar -xf - -C $HOME/.selfchain
rm -v selfchain-snapshot.tar.lz4- Restore Backup and Restart Service
 
mv $HOME/.selfchain/priv_validator_state.json.backup $HOME/.selfchain/data/priv_validator_state.jsonsudo systemctl restart selfchaind && sudo journalctl -u selfchaind -f -o catAddrbook
curl -L https://snapshot.sychonix.com/mainnet/selfchain/addrbook.json > $HOME/.selfchain/config/addrbook.jsonGenesis
curl -L https://snapshot.sychonix.com/mainnet/selfchain/addrbook.json > $HOME/.selfchain/config/addrbook.jsonAPI
https://api-selfchain.sychonix.comRPC
https://rpc-selfchain.sychonix.comCLI Cheatsheet
Wallet Management
selfchaind keys add
selfchaind keys add --recover
selfchaind keys list
selfchaind keys delete
selfchaind keys export
selfchaind keys import .backup
selfchaind q bank balances $(selfchaind keys show -a)
Validator Management
Moniker
Identity
Details
Website
Security Contact
Amount
selfchaind tx staking create-validator \ --amount=1000000uslf \ --pubkey=$(selfchaind tendermint show-validator) \ --moniker="" \ --identity="" \ --details="" \ --website="" \ --security-contact= \ --chain-id=self-1 \ --commission-rate=0.05 \ --commission-max-rate=0.20 \ --commission-max-change-rate=0.01 \ --min-self-delegation=1 \ --gas-prices 1uslf \ --gas "auto" \ --gas-adjustment "1.5" \ --from wallet \ -y
selfchaind tx staking edit-validator \
--new-moniker="" \
--identity="" \
--details="" \
--website="" \
--chain-id=self-1 \
--commission-rate=0.07 \
--from wallet \
--gas=auto \
--gas-prices 1uslf \
-yselfchaind tx slashing unjail --from wallet --chain-id self-1 --gas auto --gas-adjustment 1.5
selfchaind query slashing signing-info $(selfchaind tendermint show-validator)
selfchaind q staking validator $(selfchaind keys show wallet --bech val -a)
selfchaind q bank denom-metadata -oj | jq
selfchaind status 2>&1 | jq -r '.SyncInfo.catching_up // .sync_info.catching_up'
selfchaind status 2>&1 | jq -r '.SyncInfo.latest_block_height // .sync_info.latest_block_height'
Token Management
selfchaind tx distribution withdraw-all-rewards --from wallet --chain-id self-1 --gas auto --gas-adjustment 1.5 --gas-prices 1uslf -y
selfchaind tx distribution withdraw-rewards $(selfchaind keys show wallet --bech val -a) --commission --from wallet --chain-id self-1 --gas auto --gas-adjustment 1.5 --gas-prices 1uslf -y
selfchaind tx staking delegate $(selfchaind keys show wallet --bech val -a) 1000000uslf --from wallet --chain-id self-1 --gas auto --gas-adjustment 1.5 --gas-prices 1uslf -y
selfchaind tx staking redelegate $(selfchaind keys show wallet --bech val -a) 1000000uslf --from wallet --chain-id self-1 --gas auto --gas-adjustment 1.5 --gas-prices 1uslf -y
selfchaind tx staking delegate 1000000uslf --from --chain-id self-1 --gas auto --gas-adjustment 1.5 --gas-prices 1uslf -y
selfchaind tx staking unbond $(selfchaind keys show wallet --bech val -a) 1000000uslf --from wallet --chain-id self-1 --gas auto --gas-adjustment 1.5 --gas-prices 1uslf -y
selfchaind tx bank send wallet 1000000uslf --from wallet --chain-id self-1 --gas auto --gas-adjustment 1.5 --gas-prices 1uslf -y
Service Management
sudo systemctl daemon-reload
sudo systemctl enable selfchaind
sudo systemctl disable selfchaind
sudo systemctl start selfchaind
sudo systemctl stop selfchaind
sudo systemctl restart selfchaind
sudo systemctl status selfchaind
sudo journalctl -u selfchaind -f --no-hostname -o cat
CUSTOM_PORT=
sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${CUSTOM_PORT}658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${CUSTOM_PORT}657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${CUSTOM_PORT}060\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${CUSTOM_PORT}656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${CUSTOM_PORT}660\"%" $HOME/.selfchain/config/config.toml
sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${CUSTOM_PORT}317\"%; s%^address = \":8080\"%address = \":${CUSTOM_PORT}080\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${CUSTOM_PORT}090\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${CUSTOM_PORT}091\"%" $HOME/.selfchain/config/app.tomlcd $HOME && sudo systemctl stop selfchaind && sudo systemctl disable selfchaind && sudo rm /etc/systemd/system/selfchaind.service && sudo systemctl daemon-reload && sudo rm -rf $(which selfchaind) && sudo rm -rf $HOME/.selfchain && sudo rm -rf $(which selfchaind)
