Stake

Stake T tokens to the Staking Provider account according to the instructions received from your Staking Provider or the Threshold Network Staking Guide.

Authorize Applications

Authorize the Random Beacon and TBTC applications.

Register Operator

Once the tokens are staked the one controlling the Staking Provider account has to register an operator for the Random Beacon and TBTC applications.

An Operator for the Provider registration can be submitted just once. The Operator address assignment cannot be updated.

If a Key File for the Staking Provider account is available the registration can be performed from the Via Keep Client.

Another way is registration from the Via Web Browser.

For the Keep Legacy stakes the Staking Provider account and Operator account are the same.

Via Keep Client

An operator-registering transaction can be submitted with the Keep Client.

The commands that should be used are provided below. You need to replace a few values in the commands:

  • ETHEREUM_WS_URL - an URL to the Ethereum WebSocket API,

  • STAKING_PROVIDER_KEY_FILE_PASSWORD - a password used for the Staking Provider Ethereum Key File encryption,

  • STAKING_PROVIDER_KEY_FILE_NAME - a name of the Staking Provider Ethereum Key File, that is expected to be placed inside the KEEP_CLIENT_CONFIG_DIR (config/ directory).

  • OPERATOR_ADDRESS - an Operator address that will be running the Keep Client.

Command templates for the supported applications:

  • Random Beacon application (RandomBeacon contract)

ETHEREUM_WS_URL="<Ethereum API WS URL>"

OPERATOR_ADDRESS="<Operator Account Address>"

STAKING_PROVIDER_KEY_FILE_NAME="<Staking Provider Account Key File Name>"
STAKING_PROVIDER_KEY_FILE_PASSWORD="<Staking Provider Account Key File Password>"

CONFIG_DIR="<Path to the directory containing the Staking Provider Key File>"

docker run \
    --volume $CONFIG_DIR:/mnt/keep-client/config \
    --env KEEP_ETHEREUM_PASSWORD=$STAKING_PROVIDER_KEY_FILE_PASSWORD \
    us-docker.pkg.dev/keep-test-f3e0/public/keep-client:latest \
    ethereum \
    --ethereum.url $ETHEREUM_WS_URL \
    --ethereum.keyFile /mnt/keep-client/config/$STAKING_PROVIDER_KEY_FILE_NAME \
    beacon random-beacon register-operator --submit \
    $OPERATOR_ADDRESS
  • TBTC application (WalletRegistry contract)

ETHEREUM_WS_URL="<Ethereum API WS URL>"
OPERATOR_ADDRESS="<Operator Account Address>"

CONFIG_DIR="<Path to the directory containing the Staking Provider Key File>"

STAKING_PROVIDER_KEY_FILE_NAME="<Staking Provider Account Key File Name>"
STAKING_PROVIDER_KEY_FILE_PASSWORD="<Staking Provider Account Key File Password>"

docker run \
    --volume $CONFIG_DIR:/mnt/keep-client/config \
    --env KEEP_ETHEREUM_PASSWORD=$STAKING_PROVIDER_KEY_FILE_PASSWORD \
    us-docker.pkg.dev/keep-test-f3e0/public/keep-client:latest \
    ethereum \
    --ethereum.url $ETHEREUM_WS_URL \
    --ethereum.keyFile /mnt/keep-client/config/$STAKING_PROVIDER_KEY_FILE_NAME \
    ecdsa wallet-registry register-operator --submit \
    $OPERATOR_ADDRESS
For Testnet add --goerli flag to the commands executed above.

Via Web Browser

An operator-registering transactions can be submitted with Etherscan.

For each of the RandomBeacon and WalletRegistry contracts perform the following steps:

  1. Find the address of the contract and open it on Etherscan (see below).

  2. Go to ContractWrite Contract tab.

  3. Connect your wallet with Connect to Web3 button.

  4. Submit the registerOperator function with your Operator address as an argument.

Please see the Keep Network Contract Addresses page for the recent Mainnet addresses of the contracts.

For Testnet contracts please visit the link.