View and manage Validators
Affiliate a Validator with a Validator Group. This allows the Validator Group to add that Validator as a member. If the Validator is already a member of a Validator Group, affiliating with a different Group will remove the Validator from the first group's members.
Affiliate a Validator with a Validator Group. This allows the Validator Group to add that Validator as a member. If the Validator is already a member of a Validator Group, affiliating with a different Group will remove the Validator from the first group's members.​USAGE$ celocli validator:affiliate GROUPADDRESS​ARGUMENTSGROUPADDRESS ValidatorGroup's address​OPTIONS--from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Signer or Validator'saddress​--yes Answer yes to prompt​EXAMPLEaffiliate --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d950x97f7333c51897469e8d98e7af8653aab468050a3
See code: src/commands/validator/affiliate.ts​
Deaffiliate a Validator from a Validator Group, and remove it from the Group if it is also a member.
Deaffiliate a Validator from a Validator Group, and remove it from the Group if it is also a member.​USAGE$ celocli validator:deaffiliate​OPTIONS--from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Signer or Validator'saddress​EXAMPLEdeaffiliate --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95
See code: src/commands/validator/deaffiliate.ts​
Deregister a Validator. Approximately 60 days after the validator is no longer part of any group, it will be possible to deregister the validator and start unlocking the CELO. If you wish to deregister your validator, you must first remove it from it's group, such as by deaffiliating it, then wait the required 60 days before running this command.
Deregister a Validator. Approximately 60 days after the validator is no longer part of any group, it will be possible to deregister the validator and start unlocking the CELO. If you wish to deregister your validator, you must first remove it from it's group, such as by deaffiliating it, then wait the required 60 days before running this command.​USAGE$ celocli validator:deregister​OPTIONS--from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Signer or Validator'saddress​EXAMPLEderegister --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95
See code: src/commands/validator/deregister.ts​
Downtime slash a validator
Downtime slash a validator​USAGE$ celocli validator:downtime-slash​OPTIONS--beforeBlock=beforeBlockSlash for slashable downtime window before provided block​--from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d(required) From address to perform the slash (reward recipient)​--intervals='[0:1], [1:2]'Array of intervals, ordered by min start to max end​--validator=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232dValidator (signer or account) address​--validators='["0xb7ef0985bdb4f19460A29d9829aA1514B181C4CD","0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95"]'Validator (signer or account) address list​EXAMPLESdowntime-slash --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 --validator0xb7ef0985bdb4f19460A29d9829aA1514B181C4CD --intervals "[100:150), [150:200)"​downtime-slash --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 --validator0xb7ef0985bdb4f19460A29d9829aA1514B181C4CD --slashableDowntimeBeforeBlock 200
See code: src/commands/validator/downtime-slash.ts​
Force deaffiliate a Validator from a Validator Group, and remove it from the Group if it is also a member. Used by stake-off admins in order to remove validators from the next epoch's validator set if they are down and consistently unresponsive, in order to preserve the health of the network. This feature will be removed once slashing for downtime is implemented.
Force deaffiliate a Validator from a Validator Group, and remove it from the Group if it is also a member. Used by stake-off admins in order to remove validators from the next epoch's validator set if they are down and consistently unresponsive, in order to preserve the health of the network. This feature will be removed once slashing for downtime is implemented.​USAGE$ celocli validator:force-deaffiliate​OPTIONS--from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Initiator--validator=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Validator's address​EXAMPLEforce-deaffiliate --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 --validator0xb7ef0985bdb4f19460A29d9829aA1514B181C4CD
See code: src/commands/validator/force-deaffiliate.ts​
List registered Validators, their name (if provided), affiliation, uptime score, and public keys used for validating.
List registered Validators, their name (if provided), affiliation, uptime score, and public keys used for validating.​USAGE$ celocli validator:list​OPTIONS-x, --extended show extra columns--columns=columns only show provided columns (comma-separated)--csv output is csv format [alias: --output=csv]--filter=filter filter property by partial string matching, ex: name=foo--no-header hide table header from output--no-truncate do not truncate output to fit screen--output=csv|json|yaml output in a more machine friendly format--sort=sort property to sort by (prepend '-' for descending)​EXAMPLElist
See code: src/commands/validator/list.ts​
Register a new Validator
Register a new Validator​USAGE$ celocli validator:register​OPTIONS--blsKey=0x (required) BLS Public Key--blsSignature=0x (required) BLS Proof-of-Possession--ecdsaKey=0x (required) ECDSA Public Key​--from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address for theValidator​--yes Answer yes to prompt​EXAMPLEregister --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --ecdsaKey0x049b7291ab8813a095d6b7913a7930ede5ea17466abd5e1a26c6c44f6df9a400a6f474080098b2c752c6c4871978ca977b90dcd3aed92bc9d564137c8dfa14ee72 --blsKey0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00 --blsSignature0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35664ea3923900
See code: src/commands/validator/register.ts​
List the Locked Gold requirements for registering a Validator. This consists of a value, which is the amount of CELO that needs to be locked in order to register, and a duration, which is the amount of time that CELO must stay locked following the deregistration of the Validator.
List the Locked Gold requirements for registering a Validator. This consists of a value, which is the amount of CELO that needs to be locked in order to register, and a duration, which is the amount of time that CELO must stay locked following the deregistration of the Validator.​USAGE$ celocli validator:requirements​EXAMPLErequirements
See code: src/commands/validator/requirements.ts​
Set validator signature bitmaps for provided intervals
Set validator signature bitmaps for provided intervals​USAGE$ celocli validator:set-bitmaps​OPTIONS--from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) From addressto sign set bitmaptransactions​--intervals='[0:1], [1:2]' Array of intervals,ordered by min start tomax end​--slashableDowntimeBeforeBlock=slashableDowntimeBeforeBlock Set all bitmaps forslashable downtime windowbefore provided block​--slashableDowntimeBeforeLatest Set all bitmaps forslashable downtime windowbefore latest block​EXAMPLESset-bitmaps --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95--slashableDowntimeBeforeBlock 10000​set-bitmaps --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 --intervals "[0:100],(100:200]"
See code: src/commands/validator/set-bitmaps.ts​
Show information about a registered Validator.
Show information about a registered Validator.​USAGE$ celocli validator:show VALIDATORADDRESS​ARGUMENTSVALIDATORADDRESS Validator's address​EXAMPLEshow 0x97f7333c51897469E8D98E7af8653aAb468050a3
See code: src/commands/validator/show.ts​
Display a graph of blocks and whether the given signer's signature is included in each. A green '.' indicates the signature is present in that block, a red '✘' indicates the signature is not present. A yellow '~' indicates the signer is not elected for that block.
Display a graph of blocks and whether the given signer's signature is included in each. A green '.' indicates the signature is present in that block, a red '✘' indicates the signature is not present. A yellow '~' indicates the signer is not elected for that block.​USAGE$ celocli validator:signed-blocks​OPTIONS--at-block=at-blocklatest block to examine for signer activity​--lookback=lookback[default: 120] how many blocks to look back for signer activity​--signer=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232daddress of the signer to check for signatures​--signers='["0xb7ef0985bdb4f19460A29d9829aA1514B181C4CD","0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95"]'list of signer addresses to check for signatures​--slashableDowntimeLookbacklookback of slashableDowntime​--wasDownWhileElectedindicate whether a validator was down while elected for range​--width=width[default: 40] line width for printing marks​EXAMPLESsigned-blocks --signer 0x5409ED021D9299bf6814279A6A1411A7e866A631​signed-blocks --signer 0x5409ED021D9299bf6814279A6A1411A7e866A631 --follow​signed-blocks --at-block 100000 --signer 0x5409ED021D9299bf6814279A6A1411A7e866A631​signed-blocks --lookback 500 --signer 0x5409ED021D9299bf6814279A6A1411A7e866A631​signed-blocks --lookback 50 --width 10 --signer0x5409ED021D9299bf6814279A6A1411A7e866A631
See code: src/commands/validator/signed-blocks.ts​
Shows the consensus status of a validator. This command will show whether a validator is currently elected, would be elected if an election were to be run right now, and the percentage of blocks signed and number of blocks successfully proposed within a given window.
Shows the consensus status of a validator. This command will show whether a validator is currently elected, would be elected if an election were to be run right now, and the percentage of blocks signed and number of blocks successfully proposed within a given window.​USAGE$ celocli validator:status​OPTIONS-x, --extended show extra columns​--all get the status of allregistered validators​--columns=columns only show provided columns(comma-separated)​--csv output is csv format [alias:--output=csv]​--end=end [default: -1] what block toend at when looking at signeractivity. defaults to thelatest block​--filter=filter filter property by partialstring matching, ex: name=foo​--no-header hide table header from output​--no-truncate do not truncate output to fitscreen​--output=csv|json|yaml output in a more machinefriendly format​--signer=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d address of the signer to checkif elected and validating​--sort=sort property to sort by (prepend'-' for descending)​--start=start [default: -1] what block tostart at when looking atsigner activity. defaults tothe last 100 blocks​--validator=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d address of the validator tocheck if elected andvalidating​EXAMPLESstatus --validator 0x5409ED021D9299bf6814279A6A1411A7e866A631​status --validator 0x5409ED021D9299bf6814279A6A1411A7e866A631 --start 1480000​status --all --start 1480000 --end 1490000
See code: src/commands/validator/status.ts​
Update the BLS public key for a Validator to be used in consensus.
Update the BLS public key for a Validator to be used in consensus.​Regular (ECDSA and BLS) key rotation is recommended for Validator operational security.​WARNING: By default, the BLS key used by the validator node is derived from the ECDSA private key. As a result, rotating the BLS key without rotating the ECDSA key will result in validator downtime without special configuration. Use this method only if you know what you are doing.​USAGE$ celocli validator:update-bls-public-key​OPTIONS--blsKey=0x (required) BLS Public Key--blsPop=0x (required) BLS Proof-of-Possession--from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Validator's address​DESCRIPTION​Regular (ECDSA and BLS) key rotation is recommended for Validator operationalsecurity.​WARNING: By default, the BLS key used by the validator node is derived from the ECDSAprivate key. As a result, rotating the BLS key without rotating the ECDSA key willresult in validator downtime without special configuration. Use this method only ifyou know what you are doing.​EXAMPLEupdate-bls-key --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --blsKey0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00 --blsPop0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35664ea3923900
See code: src/commands/validator/update-bls-public-key.ts​