Guide to running a validator node on the Story Network
Download the latest Story Geth client releases
Download the latest Story consensus client releases
This section will guide you through how you can run your own validator. Validator operations may be done via the story
consensus client.
The below operations do not require running a node! However, if you would like to participate in staking rewards, you must run a validator node.
Before proceeding, it is important to familiarize yourself with the difference between a delegator and a validator:
priv_validator_key.json
file under your story
data directory. To print out your validator key details you may refer to the validator key export sectionIP
and wishes to participate in consensus rewards but without needing to run a validator themselves.In the same folder as where your story
binary resides, add a .env
file with a PRIVATE_KEY
whose account has IP
funded. We recommend using your delegator account for all below operations.
You may also issue transactions as the validator itself. To get the EVM
private key corresponding to your validator, please refer to the Validator
Key Export section. From Story v1.2.0, user must
use .env
for all operations.
The .env
file should look like the following (make sure not to add a 0x prefix):
With this, you are all set to perform different validator operations! Below, we will guide you through all of those supported via the CLI:
By default, when you run ./story init
a validator key is created for you. To view your validator key, run the following command:
This will print out your validator public key file in compressed and uncompressed formats. By default, we use the hex-encoded compressed key for public identification.
Available Flags:
--export-evm-key
: (bool) Exports the derived EVM private key of your validator into the default data config directory--export-evm-key-path
: (string) Specifies a different download location for the derived EVM private key of your validator--keyfile
: (string) Path to the Tendermint key file (default “/home/ubuntu/.story/story/config/priv_validator_key.json”)If you would like to issue transactions as your validator, and not as a
delegator, you may export the key to your .env
file and ensure it has IP
sent to it, e.g. via ./story validator export --export-evm-key --evm-key-path .env
To create a new validator, run the following command:
This will create the validator corresponding to your validator key saved in priv_validator_key.json
, providing the validator with {$AMOUNT_TO_STAKE_IN_WEI}
IP to self-stake.
To participate in consensus, at least 1024 IP must be staked (equivalent to
1024000000000000000000 wei
)!
Below is a list of optional flags to further customize your validator setup:
Available Flags:
--stake
: Sets the amount the validator will self-delegate in wei (default is 1024000000000000000000
wei).--moniker
: Defines a custom name for the validator, visible to users on the network.--chain-id
: Specifies the Chain ID for the transaction. By default, this is set to 1516
.--commission-rate
: Sets the validator’s commission rate in bips (1% = 100 bips). For instance, 1000
represents a 10% commission (default is 1000
).--explorer
: Specifies the URL of the blockchain explorer (default: https://www.storyscan.io).--keyfile
: Points to the path of the Tendermint key file (default: $HOME/.story/story/config/priv_validator_key.json
).--max-commission-change-rate
: Sets the maximum rate at which the validator’s commission can change, in bips. For example, 100
represents a maximum change of 1% (default is 1000
).--max-commission-rate
: Defines the maximum commission rate the validator can charge, in bips. For instance, 5000
allows a 50% maximum rate (default is 5000
).--rpc
: Sets the RPC URL to connect to the network (default: https://mainnet.storyrpc.io).--unlocked
: Determines if unlocked token staking is supported (true
for unlocked staking, false
for locked staking). By default, this is set to true
.--story-api
: Prevent potential fund losses. By default, you should set http://localhost:1317
as the valueOnce created, please use the Explorer URL
to confirm the transaction. If successful, you should see your validator pub key (found in yourpriv_validator_key.json
file) listed as part of the following endpoint:
Congratulations, you are now one of Story’s very first IP validators!
To stake to an existing validator, run the following command:
${VALIDATOR_PUB_KEY_IN_HEX}
may be found by running the ./story validator export
command as the Compressed Public Key (hex)
.*1024000000000000000000 wei
) for the transaction to be validOnce staked, you may use the Explorer URL
to confirm the transaction. As mentioned earlier, you may use our validator endpoint to confirm the new voting power of the validator.
Available Flags:
--validator-pubkey
: (string) The public key of the validator to stake to--stake
: (string) The amount of IP to stake in wei--chain-id
: (int) Chain ID to use for the transaction (default: 1514)--explorer
: (string) URL of the blockchain explorer--help
, -h
: Display help information for stake command--rpc
: (string) RPC URL to connect to the network--staking-period
: (stakingPeriod) Staking period (options: “flexible”, “short”, “medium”, “long”) (default: flexible)--story-api
: Prevent potential fund losses. By default, you should set http://localhost:1317
as the valueTo unstake from a validator, run the following command:
This will unstake ${AMOUNT_TO_UNSTAKE_IN_WEI}
IP from the selected validator. You must unstake at least 1024 IP worth (*1024000000000000000000 wei
) for the transaction to be valid.
Like in the staking operation, please use the Explorer URL
to confirm the transaction and our validator endpoint to double-check the newly reduced voting power of the validator.
Available Flags:
--chain-id
: (int) Chain ID to use for the transaction (default: 1514)--delegation-id
: (uint32) The delegation ID (0 for flexible staking)--explorer
: (string) URL of the blockchain explorer (default: “https://www.storyscan.io”)--help
, -h
: Help for unstake command--rpc
: (string) RPC URL to connect to the network (default: “https://mainnet.storyrpc.io”)--unstake
: (string) Amount to unstake in wei--validator-pubkey
: (string) Validator’s hex-encoded compressed 33-byte secp256k1 public key--story-api
: Prevent potential fund losses. By default, you should set http://localhost:1317
as the valueTo stake on behalf of another delegator, run the following command:
This will stake ${AMOUNT_TO_STAKE_IN_WEI}
IP to the validator on behalf of the provided delegator. You must stake at least 1024 IP worth (*1024000000000000000000 wei
) for the transaction to be valid.
Like in the other staking operations, please use the Explorer URL
to confirm the transaction and our validator endpoint to double-check the increased voting power of the validator.
Available Flags:
--chain-id
: (int) Chain ID to use for the transaction (default: 1514)--delegator-address
: (string) Delegator’s EVM address--explorer
: (string) URL of the blockchain explorer (default: “https://www.storyscan.io”)--help
, -h
: Help for stake-on-behalf command--rpc
: (string) RPC URL to connect to the network (default: “https://mainnet.storyrpc.io”)--stake
: (string) Amount for the validator to self-delegate in wei--staking-period
: (stakingPeriod) Staking period (options: “flexible”, “short”, “medium”, “long”) (default: flexible)--validator-pubkey
: (string) Validator’s hex-encoded compressed 33-byte secp256k1 public key--story-api
: Prevent potential fund losses. By default, you should set http://localhost:1317
as the valueYou may also unstake on behalf of delegators. However, to do so, you must be registered as an authorized operator for that delegator. To unstake on behalf of another delegator as an operator, run the following command:
This will unstake ${AMOUNT_TO_STAKE_IN_WEI}
IP from the validator on behalf of the delegator, assuming you are a registered operator for that delegator. You must unstake at least 1024 IP worth (*1024000000000000000000 wei
) for the transaction to be valid.
Like in the other staking operations, please use the Explorer URL
to confirm the transaction and our validator endpoint to double-check the decreased voting power of the validator.
Available Flags:
--chain-id
: (int) Chain ID to use for the transaction (default: 1514)--delegator-address
: (string) Delegator’s EVM address--explorer
: (string) URL of the blockchain explorer (default: “https://www.storyscan.io”)--help
, -h
: Help for unstake-on-behalf command--rpc
: (string) RPC URL to connect to the network (default: “https://mainnet.storyrpc.io”)--unstake
: (string) Amount to unstake in wei--validator-pubkey
: (string) Validator’s hex-encoded compressed 33-byte secp256k1 public key--story-api
: Prevent potential fund losses. By default, you should set http://localhost:1317
as the valueIn case a validator becomes jailed, for example if it experiences substantial downtime, you may use the following command to unjail the targeted validator:
Note that you will need at least 1 IP in the wallet submitting the transaction for the transaction to be valid.
Available Flags:
--chain-id
: (int) Chain ID to use for the transaction--explorer
: (string) URL of the blockchain explorer--rpc
: (string) RPC URL to connect to the network--story-api
: Prevent potential fund losses. By default, you should set http://localhost:1317
as the valueIf you are an authorized operator, you may unjail a validator on their behalf using the following command:
Available Flags:
--chain-id
: (int) Chain ID to use for the transaction--explorer
: (string) URL of the blockchain explorer--rpc
: (string) RPC URL to connect to the network--validator-pubkey
: (string) Validator’s hex-encoded compressed 33-byte secp256k1 public key--story-api
: Prevent potential fund losses. By default, you should set http://localhost:1317
as the valueThe snapshot must be taken from a node that has already been upgraded. That means the snapshot node has to do the rewind.
Recovery Options for Nodes Stuck in Long Rewind After Upgrade:
Wait for resync: Let the node catch up naturally. This may take time depending on the rewind depth and network bandwidth. Apply a snapshot: Use a snapshot from a node that has already been upgraded to Pectra. You can generate your own or obtain one from trusted community providers.
** Avaliable Flages:**
--api-address
: (string) The API server address to listen on (default ”*****:1317”)--api-enable
: (bool) Define if the API server should be enabled--api-enable-unsafe-cors
: (bool) Enable unsafe CORS for API server--api-idle-timeout
: (uint) Define the API server idle timeout (in seconds) (default 10)--api-max-header-bytes
: (uint) Define the API server max header (in bytes) (default 8192)--api-read-header-timeout
: (uint) Define the API server read header timeout (in seconds) (default 10)--api-read-timeout
: (uint) Define the API server read timeout (in seconds) (default 10)--api-write-timeout
: (uint) Define the API server write timeout (in seconds) (default 10)--app-db-backend
: (string) The type of database for application and snapshots databases (default “goleveldb”)--engine-endpoint
: (string) An EVM execution client Engine API http endpoint (default “http://localhost:8551”)--engine-jwt-file
: (string) The path to the Engine API JWT file--evm-build-delay
: (duration) Minimum delay between triggering and fetching a EVM payload build (default 600ms)--evm-build-optimistic
: (bool) Enables optimistic building of EVM payloads on previous block finalize (default true)--help
: (bool) help for rollback--home
: (string) The application home directory containing config and data (default “/home/timothyshen/.story/story”)--log-color
: (string) Log color (only applicable to console format); auto, force, disable (default “auto”)--log-format
: (string) Log format; console, json (default “console”)--log-level
: (string) Log level; debug, info, warn, error (default “info”)--min-retain-blocks
: (uint) Minimum block height offset during ABCI commit to prune CometBFT blocks--network
: (string) Story network to participate in: story, odyssey, aeneid or local--number
: (uint) number of blocks to rollback (default 1)--pruning
: (string) Pruning strategy (default|nothing|everything) (default “nothing”)--snapshot-interval
: (uint) State sync snapshot interval (default 1000)--snapshot-keep-recent
: (uint) State sync snapshot to keep (default 2)--tracing-endpoint
: (string) Tracing OTLP endpoint--tracing-headers
: (string) Tracing OTLP headersTo redelegate from one validator to another, run the following command:
Available Flags:
--chain-id
: (int) Chain ID to use for the transaction (default 1514)--delegation-id
: (uint32) The delegation ID (0 for flexible staking)--explorer
: (string) URL of the blockchain explorer (default “https://www.storyscan.io”)--help
, -h
: Help for redelegate command--redelegate
: (string) Amount to redelegate in wei--rpc
: (string) RPC URL to connect to the network (default “https://mainnet.storyrpc.io”)--validator-dst-pubkey
: (string) Dst validator’s hex-encoded compressed 33-byte secp256k1 public key--validator-src-pubkey
: (string) Src validator’s hex-encoded compressed 33-byte secp256k1 public key--story-api
: Prevent potential fund losses. By default, you should set http://localhost:1317
as the value≈
If you are an authorized operator, you may redelegate from one validator to another on behalf of a delegator using the following command:
Available Flags:
--chain-id
: (int) Chain ID to use for the transaction (default 1514)--delegation-id
: (uint32) The delegation ID (0 for flexible staking)--delegator-address
: (string) Delegator’s EVM address--explorer
: (string) URL of the blockchain explorer (default “https://www.storyscan.io”)--help
, -h
: Help for redelegate-on-behalf command--redelegate
: (string) Amount to redelegate in wei--rpc
: (string) RPC URL to connect to the network (default “https://mainnet.storyrpc.io”)--validator-dst-pubkey
: (string) Dst validator’s hex-encoded compressed 33-byte secp256k1 public key--validator-src-pubkey
: (string) Src validator’s hex-encoded compressed 33-byte secp256k1 public key--story-api
: Prevent potential fund losses. By default, you should set http://localhost:1317
as the valueDelegators may add operators to unstake or redelegate on their behalf. To add an operator, run the following command:
--chain-id
int Chain ID to use for the transaction (default 1514)--explorer
string URL of the blockchain explorer (default “https://www.storyscan.io”)--operator
string Sets an operator to your delegator--rpc
string RPC URL to connect to the network (default “https://mainnet.storyrpc.io”)Note that you will need at least 1 IP in the wallet submitting the transaction for the transaction to be valid.
To remove an operator, run the following command:
To change the address that your delegator receives staking and withdrawal rewards from, you can run the following:
Note that you will need at least 1 IP in the wallet submitting the transaction for the transaction to be valid.
To change the address that your delegator receives staking and withdrawal rewards from, you can run the following:
Note that you will need at least 1 IP in the wallet submitting the transaction for the transaction to be valid.
To change the commission rate for your validator, you can run the following:
Prerequisites:
Steps to enable:
${STORY_DATA_ROOT}/config/story.toml
enable = true
under the [api]
sectionThen you could use http://localhost:1317
as the -story-api
value
Before migrating your validator node to a new machine, make sure the current node is fully shut down. Attempting to restore an active validator could result in “double signing,” a critical error that may lead to the slashing of your delegated shares.
priv_validator_key.json
and priv_validator_state.json
and remove it from the current server running the active validator. Skipping these steps could result in missed blocks or other penalties.priv_validator_key.json
and priv_validator_state.json
in the ~/.story/story/config/
directory on your new machine. Replace this file with the backup copy from your old validator.Before proceeding, shut down the old validator on the original server and do not restart it!
Guide to running a validator node on the Story Network
Download the latest Story Geth client releases
Download the latest Story consensus client releases
This section will guide you through how you can run your own validator. Validator operations may be done via the story
consensus client.
The below operations do not require running a node! However, if you would like to participate in staking rewards, you must run a validator node.
Before proceeding, it is important to familiarize yourself with the difference between a delegator and a validator:
priv_validator_key.json
file under your story
data directory. To print out your validator key details you may refer to the validator key export sectionIP
and wishes to participate in consensus rewards but without needing to run a validator themselves.In the same folder as where your story
binary resides, add a .env
file with a PRIVATE_KEY
whose account has IP
funded. We recommend using your delegator account for all below operations.
You may also issue transactions as the validator itself. To get the EVM
private key corresponding to your validator, please refer to the Validator
Key Export section. From Story v1.2.0, user must
use .env
for all operations.
The .env
file should look like the following (make sure not to add a 0x prefix):
With this, you are all set to perform different validator operations! Below, we will guide you through all of those supported via the CLI:
By default, when you run ./story init
a validator key is created for you. To view your validator key, run the following command:
This will print out your validator public key file in compressed and uncompressed formats. By default, we use the hex-encoded compressed key for public identification.
Available Flags:
--export-evm-key
: (bool) Exports the derived EVM private key of your validator into the default data config directory--export-evm-key-path
: (string) Specifies a different download location for the derived EVM private key of your validator--keyfile
: (string) Path to the Tendermint key file (default “/home/ubuntu/.story/story/config/priv_validator_key.json”)If you would like to issue transactions as your validator, and not as a
delegator, you may export the key to your .env
file and ensure it has IP
sent to it, e.g. via ./story validator export --export-evm-key --evm-key-path .env
To create a new validator, run the following command:
This will create the validator corresponding to your validator key saved in priv_validator_key.json
, providing the validator with {$AMOUNT_TO_STAKE_IN_WEI}
IP to self-stake.
To participate in consensus, at least 1024 IP must be staked (equivalent to
1024000000000000000000 wei
)!
Below is a list of optional flags to further customize your validator setup:
Available Flags:
--stake
: Sets the amount the validator will self-delegate in wei (default is 1024000000000000000000
wei).--moniker
: Defines a custom name for the validator, visible to users on the network.--chain-id
: Specifies the Chain ID for the transaction. By default, this is set to 1516
.--commission-rate
: Sets the validator’s commission rate in bips (1% = 100 bips). For instance, 1000
represents a 10% commission (default is 1000
).--explorer
: Specifies the URL of the blockchain explorer (default: https://www.storyscan.io).--keyfile
: Points to the path of the Tendermint key file (default: $HOME/.story/story/config/priv_validator_key.json
).--max-commission-change-rate
: Sets the maximum rate at which the validator’s commission can change, in bips. For example, 100
represents a maximum change of 1% (default is 1000
).--max-commission-rate
: Defines the maximum commission rate the validator can charge, in bips. For instance, 5000
allows a 50% maximum rate (default is 5000
).--rpc
: Sets the RPC URL to connect to the network (default: https://mainnet.storyrpc.io).--unlocked
: Determines if unlocked token staking is supported (true
for unlocked staking, false
for locked staking). By default, this is set to true
.--story-api
: Prevent potential fund losses. By default, you should set http://localhost:1317
as the valueOnce created, please use the Explorer URL
to confirm the transaction. If successful, you should see your validator pub key (found in yourpriv_validator_key.json
file) listed as part of the following endpoint:
Congratulations, you are now one of Story’s very first IP validators!
To stake to an existing validator, run the following command:
${VALIDATOR_PUB_KEY_IN_HEX}
may be found by running the ./story validator export
command as the Compressed Public Key (hex)
.*1024000000000000000000 wei
) for the transaction to be validOnce staked, you may use the Explorer URL
to confirm the transaction. As mentioned earlier, you may use our validator endpoint to confirm the new voting power of the validator.
Available Flags:
--validator-pubkey
: (string) The public key of the validator to stake to--stake
: (string) The amount of IP to stake in wei--chain-id
: (int) Chain ID to use for the transaction (default: 1514)--explorer
: (string) URL of the blockchain explorer--help
, -h
: Display help information for stake command--rpc
: (string) RPC URL to connect to the network--staking-period
: (stakingPeriod) Staking period (options: “flexible”, “short”, “medium”, “long”) (default: flexible)--story-api
: Prevent potential fund losses. By default, you should set http://localhost:1317
as the valueTo unstake from a validator, run the following command:
This will unstake ${AMOUNT_TO_UNSTAKE_IN_WEI}
IP from the selected validator. You must unstake at least 1024 IP worth (*1024000000000000000000 wei
) for the transaction to be valid.
Like in the staking operation, please use the Explorer URL
to confirm the transaction and our validator endpoint to double-check the newly reduced voting power of the validator.
Available Flags:
--chain-id
: (int) Chain ID to use for the transaction (default: 1514)--delegation-id
: (uint32) The delegation ID (0 for flexible staking)--explorer
: (string) URL of the blockchain explorer (default: “https://www.storyscan.io”)--help
, -h
: Help for unstake command--rpc
: (string) RPC URL to connect to the network (default: “https://mainnet.storyrpc.io”)--unstake
: (string) Amount to unstake in wei--validator-pubkey
: (string) Validator’s hex-encoded compressed 33-byte secp256k1 public key--story-api
: Prevent potential fund losses. By default, you should set http://localhost:1317
as the valueTo stake on behalf of another delegator, run the following command:
This will stake ${AMOUNT_TO_STAKE_IN_WEI}
IP to the validator on behalf of the provided delegator. You must stake at least 1024 IP worth (*1024000000000000000000 wei
) for the transaction to be valid.
Like in the other staking operations, please use the Explorer URL
to confirm the transaction and our validator endpoint to double-check the increased voting power of the validator.
Available Flags:
--chain-id
: (int) Chain ID to use for the transaction (default: 1514)--delegator-address
: (string) Delegator’s EVM address--explorer
: (string) URL of the blockchain explorer (default: “https://www.storyscan.io”)--help
, -h
: Help for stake-on-behalf command--rpc
: (string) RPC URL to connect to the network (default: “https://mainnet.storyrpc.io”)--stake
: (string) Amount for the validator to self-delegate in wei--staking-period
: (stakingPeriod) Staking period (options: “flexible”, “short”, “medium”, “long”) (default: flexible)--validator-pubkey
: (string) Validator’s hex-encoded compressed 33-byte secp256k1 public key--story-api
: Prevent potential fund losses. By default, you should set http://localhost:1317
as the valueYou may also unstake on behalf of delegators. However, to do so, you must be registered as an authorized operator for that delegator. To unstake on behalf of another delegator as an operator, run the following command:
This will unstake ${AMOUNT_TO_STAKE_IN_WEI}
IP from the validator on behalf of the delegator, assuming you are a registered operator for that delegator. You must unstake at least 1024 IP worth (*1024000000000000000000 wei
) for the transaction to be valid.
Like in the other staking operations, please use the Explorer URL
to confirm the transaction and our validator endpoint to double-check the decreased voting power of the validator.
Available Flags:
--chain-id
: (int) Chain ID to use for the transaction (default: 1514)--delegator-address
: (string) Delegator’s EVM address--explorer
: (string) URL of the blockchain explorer (default: “https://www.storyscan.io”)--help
, -h
: Help for unstake-on-behalf command--rpc
: (string) RPC URL to connect to the network (default: “https://mainnet.storyrpc.io”)--unstake
: (string) Amount to unstake in wei--validator-pubkey
: (string) Validator’s hex-encoded compressed 33-byte secp256k1 public key--story-api
: Prevent potential fund losses. By default, you should set http://localhost:1317
as the valueIn case a validator becomes jailed, for example if it experiences substantial downtime, you may use the following command to unjail the targeted validator:
Note that you will need at least 1 IP in the wallet submitting the transaction for the transaction to be valid.
Available Flags:
--chain-id
: (int) Chain ID to use for the transaction--explorer
: (string) URL of the blockchain explorer--rpc
: (string) RPC URL to connect to the network--story-api
: Prevent potential fund losses. By default, you should set http://localhost:1317
as the valueIf you are an authorized operator, you may unjail a validator on their behalf using the following command:
Available Flags:
--chain-id
: (int) Chain ID to use for the transaction--explorer
: (string) URL of the blockchain explorer--rpc
: (string) RPC URL to connect to the network--validator-pubkey
: (string) Validator’s hex-encoded compressed 33-byte secp256k1 public key--story-api
: Prevent potential fund losses. By default, you should set http://localhost:1317
as the valueThe snapshot must be taken from a node that has already been upgraded. That means the snapshot node has to do the rewind.
Recovery Options for Nodes Stuck in Long Rewind After Upgrade:
Wait for resync: Let the node catch up naturally. This may take time depending on the rewind depth and network bandwidth. Apply a snapshot: Use a snapshot from a node that has already been upgraded to Pectra. You can generate your own or obtain one from trusted community providers.
** Avaliable Flages:**
--api-address
: (string) The API server address to listen on (default ”*****:1317”)--api-enable
: (bool) Define if the API server should be enabled--api-enable-unsafe-cors
: (bool) Enable unsafe CORS for API server--api-idle-timeout
: (uint) Define the API server idle timeout (in seconds) (default 10)--api-max-header-bytes
: (uint) Define the API server max header (in bytes) (default 8192)--api-read-header-timeout
: (uint) Define the API server read header timeout (in seconds) (default 10)--api-read-timeout
: (uint) Define the API server read timeout (in seconds) (default 10)--api-write-timeout
: (uint) Define the API server write timeout (in seconds) (default 10)--app-db-backend
: (string) The type of database for application and snapshots databases (default “goleveldb”)--engine-endpoint
: (string) An EVM execution client Engine API http endpoint (default “http://localhost:8551”)--engine-jwt-file
: (string) The path to the Engine API JWT file--evm-build-delay
: (duration) Minimum delay between triggering and fetching a EVM payload build (default 600ms)--evm-build-optimistic
: (bool) Enables optimistic building of EVM payloads on previous block finalize (default true)--help
: (bool) help for rollback--home
: (string) The application home directory containing config and data (default “/home/timothyshen/.story/story”)--log-color
: (string) Log color (only applicable to console format); auto, force, disable (default “auto”)--log-format
: (string) Log format; console, json (default “console”)--log-level
: (string) Log level; debug, info, warn, error (default “info”)--min-retain-blocks
: (uint) Minimum block height offset during ABCI commit to prune CometBFT blocks--network
: (string) Story network to participate in: story, odyssey, aeneid or local--number
: (uint) number of blocks to rollback (default 1)--pruning
: (string) Pruning strategy (default|nothing|everything) (default “nothing”)--snapshot-interval
: (uint) State sync snapshot interval (default 1000)--snapshot-keep-recent
: (uint) State sync snapshot to keep (default 2)--tracing-endpoint
: (string) Tracing OTLP endpoint--tracing-headers
: (string) Tracing OTLP headersTo redelegate from one validator to another, run the following command:
Available Flags:
--chain-id
: (int) Chain ID to use for the transaction (default 1514)--delegation-id
: (uint32) The delegation ID (0 for flexible staking)--explorer
: (string) URL of the blockchain explorer (default “https://www.storyscan.io”)--help
, -h
: Help for redelegate command--redelegate
: (string) Amount to redelegate in wei--rpc
: (string) RPC URL to connect to the network (default “https://mainnet.storyrpc.io”)--validator-dst-pubkey
: (string) Dst validator’s hex-encoded compressed 33-byte secp256k1 public key--validator-src-pubkey
: (string) Src validator’s hex-encoded compressed 33-byte secp256k1 public key--story-api
: Prevent potential fund losses. By default, you should set http://localhost:1317
as the value≈
If you are an authorized operator, you may redelegate from one validator to another on behalf of a delegator using the following command:
Available Flags:
--chain-id
: (int) Chain ID to use for the transaction (default 1514)--delegation-id
: (uint32) The delegation ID (0 for flexible staking)--delegator-address
: (string) Delegator’s EVM address--explorer
: (string) URL of the blockchain explorer (default “https://www.storyscan.io”)--help
, -h
: Help for redelegate-on-behalf command--redelegate
: (string) Amount to redelegate in wei--rpc
: (string) RPC URL to connect to the network (default “https://mainnet.storyrpc.io”)--validator-dst-pubkey
: (string) Dst validator’s hex-encoded compressed 33-byte secp256k1 public key--validator-src-pubkey
: (string) Src validator’s hex-encoded compressed 33-byte secp256k1 public key--story-api
: Prevent potential fund losses. By default, you should set http://localhost:1317
as the valueDelegators may add operators to unstake or redelegate on their behalf. To add an operator, run the following command:
--chain-id
int Chain ID to use for the transaction (default 1514)--explorer
string URL of the blockchain explorer (default “https://www.storyscan.io”)--operator
string Sets an operator to your delegator--rpc
string RPC URL to connect to the network (default “https://mainnet.storyrpc.io”)Note that you will need at least 1 IP in the wallet submitting the transaction for the transaction to be valid.
To remove an operator, run the following command:
To change the address that your delegator receives staking and withdrawal rewards from, you can run the following:
Note that you will need at least 1 IP in the wallet submitting the transaction for the transaction to be valid.
To change the address that your delegator receives staking and withdrawal rewards from, you can run the following:
Note that you will need at least 1 IP in the wallet submitting the transaction for the transaction to be valid.
To change the commission rate for your validator, you can run the following:
Prerequisites:
Steps to enable:
${STORY_DATA_ROOT}/config/story.toml
enable = true
under the [api]
sectionThen you could use http://localhost:1317
as the -story-api
value
Before migrating your validator node to a new machine, make sure the current node is fully shut down. Attempting to restore an active validator could result in “double signing,” a critical error that may lead to the slashing of your delegated shares.
priv_validator_key.json
and priv_validator_state.json
and remove it from the current server running the active validator. Skipping these steps could result in missed blocks or other penalties.priv_validator_key.json
and priv_validator_state.json
in the ~/.story/story/config/
directory on your new machine. Replace this file with the backup copy from your old validator.Before proceeding, shut down the old validator on the original server and do not restart it!