logo

Empeiria

EMPE
  • Network:

    Testnet

  • Chain ID:

    empe-testnet-2

  • Current Node Version:

    0.4.0

Overview

Empeiria is a Digital Trust-as-a-Service platform that lets organizations turn data, documents, and events into tamper-proof, verifiable credentials for people, devices, and AI agents. Using simple APIs, developers can issue and verify credentials in minutes, with all integrity anchored on the Empe Blockchain and aligned with open standards like W3C Verifiable Credentials and DIDs.

Key Components:

  • Digital Trust APIs: REST and WebSocket APIs to issue, verify, and revoke digital credentials, replacing manual checks and paperwork.

  • Credential Engine & Schema Builder: Tools to automate credential workflows and define compliant templates (e.g., consent, KYC, ISO 27001) with AI-guided schemas.

  • Empe Blockchain: A modular trust layer that records privacy-preserving anchors for credentials and DIDs, providing tamper-proof, auditable verification with stable, predictable fees.

  • Identity & Wallet: DID wallet and SDKs to manage decentralized identities and enable passwordless, verifiable interactions across users, organizations, and autonomous agents.

Empeiria is used across AI agents, fintech and digital identity, supply chain and trade, IoT, real-world asset tokenization, and public sector compliance-where verifiable, interoperable, and auditable data is critical.

Public Endpoints

TypeEndpointLink
RPChttps://empeiria-testnet-rpc.crouton.digital arrow right icon
APIhttps://empeiria-testnet-api.crouton.digital arrow right icon
gRPCempeiria-testnet-grpc.crouton.digital:29090
peere058f20874c7ddf7d8dc8a6200ff6c7ee66098ba@65.109.93.124:29056

Guide

INFOINFO

This guide provides a complete and reliable setup for running an Empeiria testnet node and validator. It covers everything from downloading binaries and configuration files to initializing the node, managing keys, applying snapshots, and maintaining a stable validator environment. Follow the steps carefully to ensure a smooth and secure deployment on the Empeiria network.

Prepare

Update and install packages

sudo apt update && sudo apt upgrade -y && \ sudo apt install curl tar wget clang pkg-config libssl-dev libleveldb-dev jq build-essential bsdmainutils git make ncdu htop screen unzip bc fail2ban htop -y

Installing Go

VER="1.22.0" 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" >> $HOME/.bash_profile && \ source $HOME/.bash_profile && \ go version

Binary

git clone https://github.com/empe-io/empe-chain empeiria cd empeiria git checkout 0.4.0 make install emped version --long | grep -e version -e commit # version: 0.4.0 # commit: ed3616c08b12bc9fe553b33dcf23625b30376f1f

Initialization

Initialize the node (replace VALIDATOR_NAME with your own)

emped init VALIDATOR_NAME --chain-id empe-testnet-2 && \ emped config chain-id empe-testnet-2 && \ emped config keyring-backend os

Genesis

Download genesis

wget https://storage.crouton.digital/testnet/empeiria/files/genesis.json -O $HOME/.empe-chain/config/genesis.json

Addrbook

Download addrbook

wget https://storage.crouton.digital/testnet/empeiria/files/addrbook.json -O $HOME/.empe-chain/config/addrbook.json

Configuration

EXTERNAL_IP=$(wget -qO- eth0.me) NODE_NUMBER="1" sed -i.bak \ -e "s/\(proxy_app = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$(($NODE_NUMBER + 266))58\"/" \ -e "s/\(laddr = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$(($NODE_NUMBER + 266))57\"/" \ -e "s/\(pprof_laddr = \"\)\([^:]*\):\([0-9]*\).*/\1localhost:$(($NODE_NUMBER + 60))60\"/" \ -e "/\[p2p\]/,/^\[/{s/\(laddr = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$(($NODE_NUMBER + 266))56\"/}" \ -e "/\[p2p\]/,/^\[/{s/\(external_address = \"\)\([^:]*\):\([0-9]*\).*/\1${EXTERNAL_IP}:$(($NODE_NUMBER + 266))56\"/; t; s/\(external_address = \"\).*/\1${EXTERNAL_IP}:$(($NODE_NUMBER + 266))56\"/}" \ -e "s/\(prometheus_listen_addr = \":\)\([0-9]*\).*/\1$(($NODE_NUMBER + 266))60\"/" $HOME/.empe-chain/config/config.toml sed -i.bak \ -e "/\[api\]/,/^\[/{s/\(address = \"tcp:\/\/\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 13))17\4/}" \ -e "/\[grpc\]/,/^\[/{s/\(address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 90))90\4/}" \ -e "/\[grpc-web\]/,/^\[/{s/\(address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 90))91\4/}" \ -e "/\[json-rpc\]/,/^\[/{s/\(address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 85))45\4/}" \ -e "/\[json-rpc\]/,/^\[/{s/\(ws-address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 85))46\4/}" $HOME/.empe-chain/config/app.toml echo "export NODE=http://localhost:$(($NODE_NUMBER + 266))57" >> $HOME/.bash_profile && \ source $HOME/.bash_profile && \ emped config node $NODE

Create a service file

sudo tee /etc/systemd/system/emped.service > /dev/null <<EOF [Unit] Description=empeiria_node After=network.target [Service] User=$USER Type=simple ExecStart=$(which emped) start --home $HOME/.empe-chain Restart=on-failure LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF

Start the node

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

Snapshot

Block HeightSizeIndexerLast SnapshotDownload
80458793.3Gnull2025-12-12T01:58:27.341072336Z arrow right icon

Restore node from snapshot

sudo apt install lz4 -y && \ sudo systemctl stop emped && \ cp $HOME/.empe-chain/data/priv_validator_state.json $HOME/.empe-chain/priv_validator_state.json.backup && \ rm -rf $HOME/.empe-chain/data && \ curl https://storage.crouton.digital/testnet/empeiria/snapshots/empeiria_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.empe-chain && \ mv $HOME/.empe-chain/priv_validator_state.json.backup $HOME/.empe-chain/data/priv_validator_state.json && \ sudo systemctl restart emped && \ sudo journalctl -u emped -f

State Sync

Restore node from state sync

SNAP_RPC="https://empeiria-testnet-rpc.crouton.digital:443" && \ sudo systemctl stop emped && \ cp $HOME/.empe-chain/data/priv_validator_state.json $HOME/.empe-chain/priv_validator_state.json.backup && \ emped tendermint unsafe-reset-all --home $HOME/.empe-chain --keep-addr-book && \ peers="e058f20874c7ddf7d8dc8a6200ff6c7ee66098ba@65.109.93.124:29056" && \ sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.empe-chain/config/config.toml && \ 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" && sleep 2 && \ sed -i.bak -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\"| ; s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\"\"|" $HOME/.empe-chain/config/config.toml && \ mv $HOME/.empe-chain/priv_validator_state.json.backup $HOME/.empe-chain/data/priv_validator_state.json && \ sudo systemctl restart emped && \ sudo journalctl -u emped -f

Upgrade Node

VER="v0.4.0" git clone https://github.com/empe-io/empe-chain empeiria && \ cd $HOME && \ rm -rf empeiria && \ git clone https://github.com/empe-io/empe-chain empeiria && \ cd empeiria && \ git checkout tags/$VER -b $VER && \ make install && \ sudo systemctl restart emped && \ sudo journalctl -u emped -f

Delete Node

sudo systemctl stop emped && \ sudo systemctl disable emped && \ sudo rm -rf /etc/systemd/system/emped.service && \ sudo rm "$(which emped)" && \ sudo rm -rf "$HOME/.empe-chain"

Key management

# This command generates a new wallet with a unique keypair. # Use this to create a secure, brand-new wallet for transactions. # Your wallet name = "wallet" emped keys add wallet

Validator management

emped tx staking create-validator \ --amount 1000000uempe \ --moniker "VALIDATOR_NAME" \ --identity "" \ --website "" \ --details "" \ --from wallet \ --commission-rate 0.1 \ --commission-max-rate 0.2 \ --commission-max-change-rate 0.01 \ --min-self-delegation 1 \ --pubkey $(celestia-appd tendermint show-validator) \ --chain-id empe-testnet-2 \ --gas auto \ --gas-adjustment 1.4 \ --gas-prices 0.002uempe \ -y

Validator commands

# Retrieves comprehensive information regarding the validator. # This command is utilized to fetch details about the current validator, including its address, public key, and associated data. # Your wallet name = "wallet" emped q staking validator $(emped keys show wallet --bech val -a)

Onchain

# Withdraw all accumulated rewards from your account. # This command retrieves and withdraws all rewards earned from staking. # Your wallet name = "wallet" emped tx distribution withdraw-all-rewards --from wallet --chain-id empe-testnet-2 --gas-adjustment=1.15 --gas auto --gas-prices 0.002uempe -y

Chat With Us

Connect directly with our team by filling out the contact form. Whether you’re looking to optimize staking yields, deploy validator nodes, integrate RPC services, or find a reliable validator partner for your blockchain or project — we’re here to help.

We can explore Web3 and blockchain infrastructure solutions together and tailor our support to your long-term goals. Schedule a meeting, and let’s discuss your long-term goals.

Crouton Digital respects your privacy. By submitting this form, you are acknowledging that you have read and agree to our Privacy Policy, which details how we collect and use your information.