Mainnet
Entangle

Installation Guide
CLI Command
State Sync
Snapshot
Public Endpoint
Custom Explorers
Decentralization Maps
Installation Guide
Installation Guide
CLI Command
State Sync
Snapshot
Public Endpoint
Custom Explorers
Decentralization Maps
How To Install Full Node Entangle Mainnet
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 ENTANGLE_CHAIN_ID=entangle_33033-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
Install go
if ! [ -x "$(command -v go)" ]; then
ver="1.21.2"
cd $HOME
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" >> ~/.bash_profile
source ~/.bash_profile
fi
Download and build binaries
cd $HOME
git clone https://github.com/Entangle-Protocol/entangle-blockchain
cd entangle-blockchain/
make install
Config app
entangled config chain-id $ENTANGLE_CHAIN_ID
entangled config keyring-backend file
Init app
entangled init $NODENAME --chain-id $ENTANGLE_CHAIN_ID
Download configuration
wget -O $HOME/.entangled/config/genesis.json https://snapshot.konsortech.xyz/entangle/genesis.json
wget -O $HOME/.entangled/config/addrbook.json https://snapshot.konsortech.xyz/entangle/addrbook.json
Set seeds and peers
sed -i -e "s|^seeds *=.*|seeds = \"ce585ba3e81c0064da87ca6376a37fc8a57469ed@mainnet-seed.konsortech.xyz:15165\"|" $HOME/.entangled/config/config.toml
Disable indexing
indexer="null"
sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.entangled/config/config.toml
Config pruning
sed -i 's|pruning = "default"|pruning = "custom"|g' $HOME/.entangled/config/app.toml
sed -i 's|pruning-keep-recent = "0"|pruning-keep-recent = "100"|g' $HOME/.entangled/config/app.toml
sed -i 's|pruning-interval = "0"|pruning-interval = "10"|g' $HOME/.entangled/config/app.toml
Set minimum gas price
sed -i 's|^minimum-gas-prices *=.*|minimum-gas-prices = "10aNGL"|g' $HOME/.entangled/config/app.toml
Create service
sudo tee /etc/systemd/system/entangled.service > /dev/null << EOF
[Unit]
Description=Entangle Node
After=network-online.target
[Service]
User=$USER
ExecStart=$(which entangled) start --chain-id $ENTANGLE_CHAIN_ID
Restart=on-failure
RestartSec=10
LimitNOFILE=10000
[Install]
WantedBy=multi-user.target
EOF
Register and start service
sudo systemctl daemon-reload
sudo systemctl enable entangled
sudo systemctl restart entangled && sudo journalctl -u entangled -f -o cat
Guide CLI Command
Create wallet
To create new wallet you can use command below. Don’t forget to save the mnemonic
entangled keys add $WALLET
To recover your wallet using seed phrase
entangled keys add $WALLET --recover
Show your wallet list
entangled keys list
Save wallet info
Add wallet and validator address into variables
ENTANGLE_WALLET_ADDRESS=$(entangled keys show $WALLET -a)
ENTANGLE_VALOPER_ADDRESS=$(entangled keys show $WALLET --bech val -a)
echo 'export ENTANGLE_WALLET_ADDRESS='${ENTANGLE_WALLET_ADDRESS} >> $HOME/.bash_profile
echo 'export ENTANGLE_VALOPER_ADDRESS='${ENTANGLE_VALOPER_ADDRESS} >> $HOME/.bash_profile
source $HOME/.bash_profile
Fund your wallet
export your wallet to evm private key and import into that private key into metamask
entangled keys unsafe-export-eth-key $WALLET
Create validator
check your wallet balance:
entangled query bank balances $ENTANGLE_WALLET_ADDRESS
To create your validator run command below
entangled tx staking create-validator \
--amount 5000000000000000000aNGL \
--from $WALLET \
--commission-max-change-rate "0.01" \
--commission-max-rate "0.2" \
--commission-rate "0.1" \
--min-self-delegation "1" \
--pubkey $(entangled tendermint show-validator) \
--moniker $NODENAME \
--chain-id $ENTANGLE_CHAIN_ID
--gas=500000 \
--gas-prices="10aNGL"
Check your validator key
[[ $(entangled q staking validator $ENTANGLE_VALOPER_ADDRESS -oj | jq -r .consensus_pubkey.key) = $(entangled 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
entangled 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 entangled -o cat
Start service
sudo systemctl start entangled
Stop service
sudo systemctl stop entangled
Restart service
sudo systemctl restart entangled
Node info
Synchronization info
entangled status 2>&1 | jq .SyncInfo
Validator info
entangled status 2>&1 | jq .ValidatorInfo
Node info
entangled status 2>&1 | jq .NodeInfo
Show node id
entangled tendermint show-node-id
Wallet operations
List of wallets
entangled keys list
Recover wallet
entangled keys add $WALLET --recover
Delete wallet
entangled keys delete $WALLET
Get wallet balance
entangled query bank balances $ENTANGLE_WALLET_ADDRESS
Transfer funds
entangled tx bank send $ENTANGLE_WALLET_ADDRESS <TO_ENTANGLE_WALLET_ADDRESS> 5000000000000000000aNGL
Voting
entangled tx gov vote 1 yes --from $WALLET --chain-id=$ENTANGLE_CHAIN_ID
Staking, Delegation and Rewards
Delegate stake
entangled tx staking delegate $ENTANGLE_VALOPER_ADDRESS 5000000000000000000aNGL --from=$WALLET --chain-id=$ENTANGLE_CHAIN_ID --gas=auto
Redelegate stake from validator to another validator
entangled tx staking redelegate <srcValidatorAddress> <destValidatorAddress> 5000000000000000000aNGL --from=$WALLET --chain-id=$ENTANGLE_CHAIN_ID --gas=auto
Withdraw all rewards
entangled tx distribution withdraw-all-rewards --from=$WALLET --chain-id=$ENTANGLE_CHAIN_ID --gas=auto
Withdraw rewards with commision
entangled tx distribution withdraw-rewards $ENTANGLE_VALOPER_ADDRESS --from=$WALLET --commission --chain-id=$ENTANGLE_CHAIN_ID
Validator management
Edit validator
entangled tx staking edit-validator \
--moniker=$NODENAME \
--identity=<your_keybase_id> \
--website="<your_website>" \
--details="<your_validator_description>" \
--chain-id=$ENTANGLE_CHAIN_ID \
--from=$WALLET
Unjail validator
entangled tx slashing unjail \
--broadcast-mode=block \
--from=$WALLET \
--chain-id=$ENTANGLE_CHAIN_ID \
--gas=auto
Public Endpoint
RPC
https://mainnet-entangle-rpc.konsortech.xyz
EVM RPC
Network Name : Entangle Mainnet
RPC URL : https://mainnet-entangle-evm.konsortech.xyz
Chain ID : 33033
Curreny Symbol : NGL
API
https://mainnet-entangle-api.konsortech.xyz
gRPC
mainnet-entangle.konsortech.xyz:11090
Peers and Seeds
Peers
7378259114db42b8b46fad4cc9f31d32a5419b60@mainnet-entangle.konsortech.xyz:11656
Seeds
ce585ba3e81c0064da87ca6376a37fc8a57469ed@mainnet-seed.konsortech.xyz:15165
Genesis & Address Book
Address Book
https://snap2.konsortech.xyz/entangle/addrbook.json
Genesis
https://snap2.konsortech.xyz/entangle/genesis.json
Statesync
sudo service entangled stop
cp $HOME/.entangled/data/priv_validator_state.json $HOME/.entangled/priv_validator_state.json.backup
entangled tendermint unsafe-reset-all --home $HOME/.entangled --keep-addr-book
SYNC_RPC="https://mainnet-entangle-rpc.konsortech.xyz:443"
SYNC_PEER="7378259114db42b8b46fad4cc9f31d32a5419b60@mainnet-entangle.konsortech.xyz:11656"
LATEST_HEIGHT=$(curl -s $SYNC_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 1000)); \
TRUST_HASH=$(curl -s "$SYNC_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)
sed -i \
-e "s|^enable *=.*|enable = true|" \
-e "s|^rpc_servers *=.*|rpc_servers = \"$SYNC_RPC,$SYNC_RPC\"|" \
-e "s|^trust_height *=.*|trust_height = $BLOCK_HEIGHT|" \
-e "s|^trust_hash *=.*|trust_hash = \"$TRUST_HASH\"|" \
-e "s|^persistent_peers *=.*|persistent_peers = \"$SYNC_PEER\"|" \
$HOME/.entangled/config/config.toml
mv $HOME/.entangled/priv_validator_state.json.backup $HOME/.entangled/data/priv_validator_state.json
sudo service entangled restart && sudo journalctl -fu entangled -o cat
Snapshot
sudo systemctl stop entangled
cp $HOME/.entangled/data/priv_validator_state.json $HOME/.entangled/priv_validator_state.json.backup
rm -rf $HOME/.entangled/data
SNAP_NAME=$(curl -s https://snap2.konsortech.xyz/entangle/ | egrep -o ">entangle-snapshot.*\.tar.lz4" | tr -d ">")
curl https://snap2.konsortech.xyz/entangle/${SNAP_NAME} | lz4 -dc - | tar -xf - -C $HOME/.entangled
mv $HOME/.entangled/priv_validator_state.json.backup $HOME/.entangled/data/priv_validator_state.json
sudo systemctl restart entangled && journalctl -u entangled -f --no-hostname -o cat