Updated on April 13, 2020

Subcommands

transition

Manually run state transitions for blocks or slots for debugging.

blocks

teku transition blocks --config=<FILENAME> [--pre=<PRE>] [--post=<POST>] [blockFiles]
teku transition blocks --config=config.toml --pre=preState.bin --post=outputFile.bin blockFile1.bin blockFile2.bin

Process blocks on the pre-state to get a post-state where:

  • <PRE> is the Pre(Input) path. If not specified, input is read from STDIN.
  • <POST> is the Post(Output) path. If not specified, output is written to STDOUT.
  • [block...] are the files from which to read blocks.

slots

teku transition slots --config=<FILENAME> [--delta] [--pre=<PRE>] [--post=<POST>] <number>
teku transition slots --config=config.toml --pre=preState.bin --post=outputFile.bin 50

Process empty slots on the pre-state to get a post-state where:

  • <PRE> is the Pre(Input) path. If not specified, input is read from STDIN.
  • <POST> is the Post(Output) path. If not specified, output is written to STDOUT.
  • --delta specifies to interpret <number> as a delta from the pre-state.
  • <number> is number of slots to process.

peer

Commands for LibP2P PeerID.

generate

teku peer generate [--outputFile=<FILENAME>] <number>
teku peer generate --outputFile=./peerIDs 3

Generate a list of peer IDs including the private key, public key, and peer ID where:

  • --outputFile is the path and filename of the file to which the keys are written. If not specified, the peer IDs are written to the ./config/peer-ids.dat file.
  • <number is the number of peer IDs to generate.

validator

Register or generate validators, and send transactions to an Ethereum 1.0 node.

generate

Register a validator by generating new keys and sending deposit transactions to an Ethereum 1.0 node.

deposit-amount-gwei

teku validator generate --deposit-amount-gwei=<GWEI>
teku validator generate --deposit-amount-gwei=32000000000

Amount to deposit in the Ethereum 1.0 deposit contract.

encrypted-keystore-enabled

teku validator generate --encrypted-keystore-enabled=<BOOLEAN>
teku validator generate --encrypted-keystore-enabled=false

Specify whether to create encrypted BLS12-381 keystore validator and withdrawal keys. Defaults to true.

Use --keys-output-path to specify the output location of the encrypted or unencrypted keys.

Important

Unencrypted keys are displayed on the console if the output location is not specified.

eth1-deposit-contract-address

teku validator generate --eth1-deposit-contract-address=<ADDRESS>
teku validator generate --eth1-deposit-contract-address=0x77f7bED277449F51505a4C54550B074030d989bC

Ethereum 1.0 address of deposit contract.

eth1-endpoint

teku validator generate --eth1-endpoint=<URL>
teku validator generate --eth1-endpoint=http://localhost:8545

JSON-RPC URL of Ethereum 1.0 node.

eth1-keystore-file

teku validator generate --eth1-keystore-file=<FILE>
teku validator generate --eth1-keystore-file=/home/me/me_node/keystore

Path to the encrypted V3 keystore file containing the private key of the Ethereum 1.0 account from which to send the deposit transaction. Ensure the account has enough ether to cover the amount specified using --deposit-amount-gwei.

Cannot be used with --eth1-private-key

eth1-keystore-password-file

teku validator generate --eth1-keystore-password-file=<FILE>
teku validator generate --eth1-keystore-password-file=/home/me/me_node/password

Path to the file containing the password to decrypt the V3 keystore.

eth1-private-key

teku validator generate --eth1-private-key=<KEY>
teku validator generate --eth1-private-key=8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63

Private key of the Ethereum 1.0 account from which to send the deposit transaction. Ensure the account has enough ether to cover the amount specified using --deposit-amount-gwei.

Cannot be used with --eth1-keystore-file.

keys-output-path

teku validator generate --keys-output-path=<FILE|DIR>
teku validator generate --keys-output-path=/home/me/me_node/keys

Specify the output location for validator and withdrawal keys. If not set, unencrypted keys are written to standard out, and encrypted BLS12-381 keystores are created in current directory.

Use this option to specify:

encrypted-keystore-validator-password-env

teku validator generate --encrypted-keystore-validator-password-env=<ENV>
teku validator generate --encrypted-keystore-validator-password-env=VALIDATOR_PASSWORD

The environment variable that stores the password to decrypt the validator’s BLS12-381 keystore.

If you do not specify a password, then you need to manually enter a password at the command line when prompted.

encrypted-keystore-validator-password-file

teku validator generate --encrypted-keystore-validator-password-file=<FILE>
teku validator generate --encrypted-keystore-validator-password-file=/home/me/me_node/password

The file that stores the password to decrypt the validator’s BLS12-381 keystore.

If you do not specify a password, then you need to manually enter a password at the command line when prompted.

encrypted-keystore-withdrawal-password-env

teku validator generate --encrypted-keystore-withdrawal-password-env=<ENV>
teku validator generate --encrypted-keystore-withdrawal-password-env=WITHDRAWAL_PASSWORD

The environment variable that stores the password to decrypt the validator’s withdrawal key.

If you do not specify a password, then you need to manually enter a password at the command line when prompted.

encrypted-keystore-withdrawal-password-file

teku validator generate --encrypted-keystore-withdrawal-password-file=<FILE>
teku validator generate --encrypted-keystore-withdrawal-password-file=/home/me/me_node/password

The file that stores the password to decrypt the validator’s withdrawal key.

If you do not specify a password, then you need to manually enter a password at the command line when prompted.

number-of-validators

teku validator generate --number-of-validators=<NUMBER>
teku validator generate --number-of-validators=64 

Specify the number of validators to create keys for and register.

A minimum of 64 validators are required in a network.

register

Register a validator using existing keys by sending a deposit transaction to an Ethereum 1.0 node.

deposit-amount-gwei

teku validator register --deposit-amount-gwei=<GWEI>
teku validator register --deposit-amount-gwei=32000000000

Amount to deposit in the Ethereum 1.0 deposit contract.

encrypted-keystore-validator-file

teku validator register --encrypted-keystore-validator-file=<FILE>
teku validator register --encrypted-keystore-validator-file=/home/me/me_node/password

Path to the BLS12-381 keystore file containing the validator’s encrypted private key.

encrypted-keystore-validator-password-env

teku validator register --encrypted-keystore-validator-password-env=<ENV>
teku validator register --encrypted-keystore-validator-password-env=VALIDATOR_PASSWORD

The environment variable that stores the password to decrypt the validator’s BLS12-381 keystore.

encrypted-keystore-validator-password-file

teku validator register --encrypted-keystore-validator-password-file=<FILE>
teku validator register --encrypted-keystore-validator-password-file=/home/me/me_node/password

The file that stores the password to decrypt the validator’s BLS12-381 keystore.

eth1-deposit-contract-address

teku validator register --eth1-deposit-contract-address=<ADDRESS>
teku validator register --eth1-deposit-contract-address=0x77f7bED277449F51505a4C54550B074030d989bC

Ethereum 1.0 address of deposit contract.

eth1-endpoint

teku validator register --eth1-endpoint=<URL>
teku validator register --eth1-endpoint=http://localhost:8545

JSON-RPC URL of Ethereum 1.0 node.

eth1-keystore-file

teku validator register --eth1-keystore-file=<FILE>
teku validator register --eth1-keystore-file=/home/me/me_node/keystore

Path to the encrypted V3 keystore file containing the private key of the Ethereum 1.0 account from which to send the deposit transaction. Ensure the account has enough ether to cover the amount specified using --deposit-amount-gwei.

Cannot be used with --eth1-private-key

eth1-keystore-password-file

teku validator register --eth1-keystore-password-file=<FILE>
teku validator register --eth1-keystore-password-file=/home/me/me_node/password

Path to the file containing the password to decrypt the V3 keystore.

eth1-private-key

teku validator register --eth1-private-key=<KEY>
teku validator register --eth1-private-key=8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63

Private key of the Ethereum 1.0 account from which to send the deposit transaction. Ensure the account has enough ether to cover the amount specified using --deposit-amount-gwei.

Cannot be used with --eth1-keystore-file.

validator-private-key

teku validator register --validator-private-key=<KEY>
teku validator register --validator-private-key=2a4055949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692cb87

Validator’s private signing key. Cannot be used with --encrypted-keystore-validator-file

withdrawal-public-key

teku validator register --withdrawal-public-key=<KEY>
teku validator register --withdrawal-public-key=b65c2a1dc6a8eaadae03d5849dd6ac614b32dc5f8af37e2eb4ced0c72fd69fabe90fc783b0435f5a36ff1338385ef837

Validators public withdrawal key.