Stake using Creditcoin CLI

Running from the Docker image

Make sure your Creditcoin Node container is running and use Creditcoin CLI via the docker exec command.

docker exec -it creditcoin-validator creditcoin --help

Creating Accounts

Create an account using the new command and write down the seed phrase.

docker exec creditcoin-validator creditcoin new

The output should look like the following:

Creating new seed phrase...
Seed phrase: owner amateur hungry hockey clerk size parrot jump rural mad pretty gauge

Use show-address to get the address for the account by entering the seed phrase, so you can fund it with a transfer. This will be the Stash account that will hold all tokens meant for staking.

docker exec -it creditcoin-validator creditcoin show-address

Output:

βœ” Specify a seed phrase for the caller account … *************************************************************************
Account Substrate address: 5CUnLxUCFqtGkre7MZwyX66E3kPMKDXra4FYtiYp5SoDUwKM
Associated EVM address: 0x125cff2b5d2e00c0a0b632a7c1979c19bf70ac22

Funding Your Account

Once your account is created, make sure it has enough CTC to cover the desired staking amount plus transaction fees. To fund an account, you can transfer from another wallet using a number of tools such as Subwallet, Talisman, the PolkadotJS extension or Creditcoin CLI.

The minimum amount of CTC required to become a validator

  • Mainnet: 0

  • Testnet: 20000 CTC

You can confirm the balance of your account by following the directions mentioned in the Checking your Balance section of the Creditcoin CLI 3 page.

Validator Wizard

Creditcoin CLI provides a simple Wizard to set up validators. wizard will prompt you for the previously generated seed phrase. After launching the wizard and providing it with the seed phrase, it will show us the complete validator setup options and prompt us to continue.

It will show the current staking settings, make sure to check them before continuing.

After continuing, the Wizard will create all required extrinsics (i.e. transactions) and communicate with the node to pair it with the stash account.

Once the transactions are sent, the new validator should be in the waiting queue.

Use the status command to get information about the status of a particular validator by entering its Stash address.

The validator status will be shown:

If the validator shows up as Waiting the setup has been successful and it will become active if it gets enough backing.

Manual Setup

Setting a validator can also be done by sending each required command manually.

First bond CTC using your Stash account and enter the CTC amount to stake.

Set the validator node keys. The --rotate flag specifies that the node will generate new keys. Existing keys can be used with the --keys <key-string> option.

Once keys are set up, the last step is signaling the network the intention to validate. Use the --commission <commission-percent> option to set up a portion of the block reward that will not be shared with nominators or the --blocked flag to block nominations.

Distributing Rewards

It is conventionally the validator operator's responsibility to trigger the reward distribution at the end of every era. The address of the stash account doubles as the validator's ID when distributing rewards.

Remember, you can compute the stash account's address by running the following and providing the stash account's seed phrase when prompted:

With the stash address in hand, run the distribute-rewards command.

Stopping a Validator

Stop a running validator with the chill command. This will remove the validator from the active/waiting set in the next session.

Unbonding CTC

To unbond locked CTC, validators must first mark their tokens for unbonding, then wait for the unlocking period to end and finally withdraw the unbonded funds.

The status command shows when the next unlocking chunk will be available to withdraw.

After the unbonding period has passed, withdraw the funds.

Last updated