Testnet

Pryzm

Installation Guide
CLI Command
State Sync
Snapshot
Public Endpoint
Explorers
Node Maps
Pricefeeder
Installation Guide
Installation Guide
CLI Command
State Sync
Snapshot
Public Endpoint
Explorers
Node Maps
Pricefeeder

State Sync

sudo systemctl stop pryzmd

cp $HOME/.pryzm/data/priv_validator_state.json $HOME/.pryzm/priv_validator_state.json.backup
pryzmd tendermint unsafe-reset-all --home $HOME/.pryzm --keep-addr-book

SNAP_RPC="https://testnet-pryzm-rpc.konsortech.xyz:443"

LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 1000)); \
TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)

echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH

sed -i -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC,$SNAP_RPC\"| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"|" $HOME/.pryzm/config/config.toml

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

sudo systemctl restart pryzmd
sudo journalctl -u pryzmd -f --no-hostname -o cat
Embed Iframe

Pryzm Testnet Decentralization Maps

How To Install Full Node Pryzm Testnet

Setting up vars

Your Nodename (validator) that will shows in explorer

NODENAME=<Your_Nodename_Moniker>

Save variables to system

echo "export NODENAME=$NODENAME" >> $HOME/.bash_profile
if [ ! $WALLET ]; then
    echo "export WALLET=wallet" >> $HOME/.bash_profile
fi
echo "export PRYZM_CHAIN_ID=indigo-1" >> $HOME/.bash_profile
source $HOME/.bash_profile

Update packages

sudo apt update && sudo apt upgrade -y

Install dependencies

sudo apt install curl build-essential git wget jq make gcc tmux net-tools ccze -y

Download binaries

cd $HOME
wget https://storage.googleapis.com/pryzm-zone/core/0.11.1/pryzmd-0.11.1-linux-amd64
mv pryzmd-0.11.1-linux-amd64 pryzmd 
chmod +x pryzmd
mv pryzmd /root/go/bin

Config app

pryzmd config chain-id $PRYZM_CHAIN_ID

Init app

pryzmd init $NODENAME --chain-id $PRYZM_CHAIN_ID

Download configuration

cd $HOME
curl -Ls https://snapshot3.konsortech.xyz/pryzm-testnet/genesis.json > $HOME/.pryzm/config/genesis.json
curl -Ls https://snapshot3.konsortech.xyz/pryzm-testnet/addrbook.json > $HOME/.pryzm/config/addrbook.json

Config pruning

pruning="custom"
pruning_keep_recent="100"
pruning_keep_every="0"
pruning_interval="19"
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.pryzm/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.pryzm/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.pryzm/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.pryzm/config/app.toml

Set minimum gas price

sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0.015upryzm, 0.01factory/pryzm15k9s9p0ar0cx27nayrgk6vmhyec3lj7vkry7rx/uusdsim\"|" $HOME/.pryzm/config/app.toml

Create service

sudo tee /etc/systemd/system/pryzmd.service > /dev/null <<EOF
[Unit]
Description=Pryzm Node
After=network-online.target

[Service]
User=$USER
ExecStart=$(which pryzmd) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

Register and start service

sudo systemctl daemon-reload
sudo systemctl enable pryzmd
sudo systemctl restart pryzmd && sudo journalctl -u pryzmd -f -o cat

Guidence for Create Validator

Create wallet

To create new wallet you can use command below. Don’t forget to save the mnemonic

pryzmd keys add $WALLET

To recover your wallet using seed phrase

pryzmd keys add $WALLET --recover

Show your wallet list

pryzmd keys list

Save wallet info

Add wallet and validator address into variables

PRYZM_WALLET_ADDRESS=$(pryzmd keys show $WALLET -a)
PRYZM_VALOPER_ADDRESS=$(pryzmd keys show $WALLET --bech val -a)
echo 'export PRYZM_WALLET_ADDRESS='${PRYZM_WALLET_ADDRESS} >> $HOME/.bash_profile
echo 'export PRYZM_VALOPER_ADDRESS='${PRYZM_VALOPER_ADDRESS} >> $HOME/.bash_profile
source $HOME/.bash_profile

Fund your wallet

In order to create validator first you need to fund your wallet with discord faucet.

faucet

Create validator

check your wallet balance:

pryzmd query bank balances $PRYZM_WALLET_ADDRESS

To create your validator run command below

pryzmd tx staking create-validator \
  --amount 1000000upryzm \
  --from $WALLET \
  --commission-max-change-rate "0.01" \
  --commission-max-rate "0.2" \
  --commission-rate "0.07" \
  --min-self-delegation "1" \
  --pubkey  $(pryzmd tendermint show-validator) \
  --moniker $NODENAME \
  --chain-id $PRYZM_CHAIN_ID
  --gas-adjustment 1.4 \
  --gas auto \
  --gas-prices 0.015upryzm \
  -y

Check your validator key

[[ $(pryzmd q staking validator $PRYZM_VALOPER_ADDRESS -oj | jq -r .consensus_pubkey.key) = $(pryzmd status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "\n\e[1m\e[32mTrue\e[0m\n" || echo -e "\n\e[1m\e[31mFalse\e[0m\n"

Get list of validators

pryzmd q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl

Usefull commands

Service management

Check logs

journalctl -fu pryzmd -o cat

Start service

sudo systemctl start pryzmd

Stop service

sudo systemctl stop pryzmd

Restart service

sudo systemctl restart pryzmd

Node info

Synchronization info

pryzmd status 2>&1 | jq .SyncInfo

Validator info

pryzmd status 2>&1 | jq .ValidatorInfo

Node info

pryzmd status 2>&1 | jq .NodeInfo

Show node id

pryzmd tendermint show-node-id

Wallet operations

List of wallets

pryzmd keys list

Recover wallet

pryzmd keys add $WALLET --recover

Delete wallet

pryzmd keys delete $WALLET

Get wallet balance

pryzmd query bank balances $PRYZM_WALLET_ADDRESS

Transfer funds

pryzmd tx bank send $PRYZM_WALLET_ADDRESS <TO_PRYZM_WALLET_ADDRESS> 1000000upryzm

Voting

pryzmd tx gov vote 1 yes --from $WALLET --chain-id=$PRYZM_CHAIN_ID

Staking, Delegation and Rewards

Delegate stake

pryzmd tx staking delegate $PRYZM_VALOPER_ADDRESS 1000000upryzm --from=$WALLET --chain-id=$PRYZM_CHAIN_ID --gas=auto

Redelegate stake from validator to another validator

pryzmd tx staking redelegate <srcValidatorAddress> <destValidatorAddress> 1000000upryzm --from=$WALLET --chain-id=$PRYZM_CHAIN_ID --gas=auto

Withdraw all rewards

pryzmd tx distribution withdraw-all-rewards --from=$WALLET --chain-id=$PRYZM_CHAIN_ID --gas=auto

Withdraw rewards with commision

pryzmd tx distribution withdraw-rewards $PRYZM_VALOPER_ADDRESS --from=$WALLET --commission --chain-id=$PRYZM_CHAIN_ID

Validator management

Edit validator

pryzmd tx staking edit-validator \
  --moniker=$NODENAME \
  --identity=<your_keybase_id> \
  --website="<your_website>" \
  --details="<your_validator_description>" \
  --chain-id=$PRYZM_CHAIN_ID \
  --from=$WALLET

Unjail validator

pryzmd tx slashing unjail \
  --broadcast-mode=block \
  --from=$WALLET \
  --chain-id=$PRYZM_CHAIN_ID \
  --gas=auto

Public Endpoint

RPC

https://testnet-pryzm-rpc.konsortech.xyz 

API

https://testnet-pryzm-api.konsortech.xyz 

gRPC

testnet-pryzm.konsortech.xyz:35090

Peers

c35f39ee848989dffc52a0e71d523ec09ebad755@testnet-pryzm.konsortech.xyz:35656

Snapshot

sudo systemctl stop pryzmd
cp $HOME/.pryzm/data/priv_validator_state.json $HOME/.pryzm/priv_validator_state.json.backup
rm -rf $HOME/.pryzm/data

SNAP_NAME=$(curl -s https://snapshot3.konsortech.xyz/pryzm-testnet/ | egrep -o ">pryzm-snapshot.*\.tar.lz4" | tr -d ">")
curl https://snapshot3.konsortech.xyz/pryzm-testnet/${SNAP_NAME} | lz4 -dc - | tar -xf - -C $HOME/.pryzm
mv $HOME/.pryzm/priv_validator_state.json.backup $HOME/.pryzm/data/priv_validator_state.json

sudo systemctl restart pryzmd && journalctl -u pryzmd -f --no-hostname -o cat

How To Install & Run Pryzm Pricefeeder

Install Docker & Docker Compose

Followed this Link

Install Docker

Install Docker Compose

Download Your Pricefeeder resource

cd $HOME
mkdir -p $HOME/pricefeeder $$ cd pricefeeder

wget https://snapshot3.konsortech.xyz/pryzm-testnet/pricefeeder/config.yaml
wget https://storage.googleapis.com/pryzm-zone/feeder/init.sql
wget https://snapshot3.konsortech.xyz/pryzm-testnet/pricefeeder/docker-compose.yml

Download docker image

docker pull europe-docker.pkg.dev/pryzm-zone/core/pryzm-feeder:0.3.4
docker pull timescale/timescaledb:2.13.0-pg16

Create New Wallet For Przym Pricefeeder

Save your price feeder wallet address and save mnemonic

pryzmd keys add pricefeeder

Edit your config.yml

nano config.yml
feeder: "pryzmxxxxxxx" # Filled with your pryzm pricefeeder wallet address (you may use validator address, but we choose create new one)
feederMnemonic: "" # Filled with your mnemonic pricefeeder wallet address
validator: "przymvaloperxxxxx" # Filled with your validator address

Check Your Folder path is correctly

Make sure you have correct this folder and file path

ls $HOME/pricefeeder
# config.yaml  docker-compose.yml  init.sql

Add Balances

fund your pricefeeder wallet address with faucet

Pryzm Faucet

Use the consent tx and link your validator address and feeder address together

pryzmd tx oracle delegate-feed-consent [feeder-address] --fees 2000factory/pryzm15k9s9p0ar0cx27nayrgk6vmhyec3lj7vkry7rx/uusdsim,3000upryzm --from your-validator-wallet-address

Run your Pricefeeder

docker compose up -d

Check your logs

docker logs -f pryzm-feeder
[2023-12-21T10:32:28.166Z] databaseService info: service started
[2023-12-21T10:32:28.172Z] assetsHostChainMonitoringService info: service started
[2023-12-21T10:32:28.173Z] osmoMonitoringService info: service started
[2023-12-21T10:32:28.174Z] pryzmMonitoringService info: service started
[2023-12-21T10:32:28.175Z] icStakingHostChainMonitoringService info: service started
[2023-12-21T10:32:28.176Z] assetsPlugin info: plugin started
[2023-12-21T10:32:28.176Z] ammPlugin info: plugin started
[2023-12-21T10:32:28.176Z] icStakingPlugin info: plugin started
[2023-12-21T10:32:28.188Z] TelemetryServer info: ⚡️ express server is running at port: 2121

Stop and Delete Pricefeeder

docker compose down
sudo rm -rf $HOME/pricefeeder/*