Register Option 1 (Bootstrap)

Registering as a validator during Exocore's bootstrap phase.

Exocore has a unique, open-ended way to kickstart its network. Instead of locking in a small group of initial validators, Exocore allows anyone to become a validator right from the start using our Bootstrap contract.

Please note you should only proceed with the steps for either Before Network Launch or After Network Launch. At this current time, most validators will select "Post Network Launch". Do not complete both sections.

Here's how it works:

Option 1

  • Bootstrap Phase: If the network isn't live yet, you can register as a validator through the Bootstrap contract on Ethereum. However, keep in mind that this registration process closes 24 hours before the network launch to give the bootstrap validators time to prepare.

Option 2

  • Post Network Launch: Once the network is up and running, you can register directly on the Exocore chain itself.

This approach ensures that the validator set isn't pre-determined by a few stakeholders. Instead, it's open to anyone who wants to participate, making the launch phase more inclusive and decentralized.

To ensure your validator is eligible to participate in consensus, it is mandatory to have a minimum self-delegation of 1000 USD of value in any supported token. This self-delegation acts as a commitment and ensures that validators have a vested interest in maintaining the integrity and security of the network.


Similar to other Delegated Proof-of-Stake networks, Exocore requires validators to stake their own tokens and delegators to delegate their token to these validators. However, one major distinction is that Exocore supports multiple types of tokens, which may or may not live on the same chain.

Exocore is an L1 Cosmos-based chain which supports multiple tokens on Ethereum Sepolia and Holesky testnets, with additional chains to be supported in the near future. To that end, users are required to have two addresses - one on Ethereum and one on Exocore (generated previously) which may or may not be derived from the same mnemonic.

If any of the transactions in the next steps produce error code -32000: execution reverted, it likely means that you don't have enough ETH to pay for gas. This is caused by a spike in Sepolia gas prices; you can either (1) wait for the gas prices to normalize, or (2) obtain more Sepolia ETH through the faucets.


Follow these steps if you're registering during the BOOTSTRAP phase.


Registration Steps

Using the same ETH_PRIVATE_KEY that was used to make the deposit, validators may register themselves with the Bootstrap contract during this phase.

# The declaration of ETH_PRIVATE_KEY is written again for completeness but isn't needed if the steps are followed sequentially
ETH_PRIVATE_KEY=0xabcde.....
# must be unique
VALIDATOR_NAME="Dumpling Validator"
## The commissions should be between 0 and 1, both inclusive
# can be changed at most once during Bootstrap, and every 24 hours thereafter
COMMISSION_RATE=0.05
# can never be changed once set
COMMISSION_MAX_RATE=0.7
# can never be changed once set
COMMISSION_MAX_CHANGE_RATE=0.35
# Endpoint for Ethereum RPC
ETHEREUM_RPC_URL=https://rpc.ankr.com/eth_sepolia

# Constants
GATEWAY_ADDR=0xDf9caDCfb027d9f6264Ecd5eAEc839a8335d8520

# Verify that we can actually run this transaction
BOOTSTRAPPED=$(cast call --rpc-url $ETHEREUM_RPC_URL $GATEWAY_ADDR "bootstrapped() returns (bool)")
if [ "$BOOTSTRAPPED" = "true" ]; then
    echo "The network has already launched. Refer to the next section for validator registration instructions. Running the commands in this section will produce an error."
else
    # Derived values, depending on $ACCOUNT_KEY_NAME and $HOMEDIR in prior steps
    EXO_ADDRESS=$(exocored --home $HOMEDIR keys show -a $ACCOUNT_KEY_NAME)
    CONSENSUS_KEY=$(exocored --home $HOMEDIR keys consensus-pubkey-to-bytes --output json | jq -r .bytes32)

    # Actual transaction
    cast send --rpc-url $ETHEREUM_RPC_URL \
        $GATEWAY_ADDR \
        "registerValidator(string,string,(uint256,uint256,uint256),bytes32)" \
        $EXO_ADDRESS \
        "$VALIDATOR_NAME" \
        "($(cast 2w $COMMISSION),$(cast 2w $COMMISSION_MAX_RATE),$(cast 2w $COMMISSION_MAX_CHANGE_RATE))" \
        $CONSENSUS_KEY \
        --private-key $ETH_PRIVATE_KEY
fi

Your validator is now registered and ready to accept (self-) delegations. As a reminder, a minimum self-delegation of 1,000 USD in token value is required for inclusion in the validator set.

Last updated