Add a baker account in the Desktop Wallet

A baker is a node that participates in the network by baking (creating) new blocks that are added to the chain. Each baker has a set of cryptographic keys called baker keys that the node needs to bake blocks. You generate the baker keys in the Desktop Wallet when you add a baker account. The baker node will start baking two epochs after the transaction has been approved.

The process of becoming a baker involves the following:

  1. Create a set of baker keys.

  2. Register the baker keys with the account.

  3. Start a node with the baker keys.

This guide goes through all the steps involved in adding a baker in the Desktop Wallet. To learn about running a baker node, see Run a node on a server with Ubuntu.

Prerequisites

There are a couple of things you must set up in preparation before you can start baking.

  • Run a node on the Concordium blockchain. Make sure that you have a setup where the node can operate around the clock.

  • Set up a Ledger hardware wallet for your private key.

  • Download and install the Desktop Wallet.

  • Set up an initial account and an identity.

  • Set up a new account that you’ll be using as baker account.

  • Verify that the account balance has the required amount of GTU.

Select an account to add as baker account

  1. Go to the Multi Signature Transactions tab, and then select Add Baker.

  2. Select the account you want to add as baker account, and then select Continue.

Stake an amount

You need to stake an amount of GTU on the account that you want to add as baker account. When you have staked an amount, the amount is still part of the balance, but you can’t transfer it to other accounts. The account always shows how much of the balance that’s been staked.

  1. Specify the amount that you want to stake where it says Amount. The more you stake the greater is the probability that your account will be chosen to bake the next block.

    Baker accounts receive a reward when they have baked a block, and the reward is added to the staked amount on the account by default. However, you can change this setting so that the reward is added to the disposable amount instead.

    • Select No, don’t restake if you’d rather add the rewards to the disposable amount on the account.

  2. When you look at the Transaction Details in the left pane, you can see the identity of the account owner, the account where the GTU are staked from, the staked amount, the estimated fee, and whether rewards are going to be restaked. Verify that the details are as you intended.

  3. Select Generate keys. The baker keys are generated and the public keys are displayed in the left pane. There are three public keys:

    • Election verify key

    • Signature verify key

    • Aggregation verify

  4. Select Continue to generate the transaction.

Generate the transaction

There are two ways that you can generate the transaction:

In combination, these two options enable organizations to distribute the responsibility of creating and signing transfers among more people. It makes it possible to have one employee create the proposals and another one sign the proposals. It also makes it possible to sign the transaction on the Ledger in a different location than where the proposal was created.

Generate the transaction without signing

  1. Verify that the Transaction details are as you are as you intended, and then select I am sure that the proposed changes are correct.

  2. Select Generate without signing. You can now export the baker credentials.

Generate and sign the transaction on the Ledger

  1. Connect the Ledger to the computer if you haven’t done so already. There’s a message saying Waiting for device. Please connect your Ledger.

  2. Enter your PIN code on the Ledger. Press the buttons above the up and down arrows to choose a digit, and then press both buttons to select the digit. Press the right button to navigate to the Concordium app, and then press both buttons to open the app. The Ledger says Concordium is ready. Wait for the message in the Desktop Wallet saying Ledger Nano S is ready.

  3. In the Desktop Wallet verify that all transaction details are correct and select I am sure that the proposed changes are correct.

  4. Select Generate and sign. There’s a message saying Waiting for user to finish the process on the device.

  5. On the Ledger, there’s a message saying Review transaction. Review the Amount to stake and the Restake earnings information to verify that it matches the transaction details in the Desktop Wallet.

  6. When the Ledger says Sign transaction, press both buttons to confirm the transaction. The Ledger says Concordium is ready.

Note

If you want to decline the transaction, press the right button on the Ledger. The hardware wallet now says Decline to sign transaction. Press both buttons to decline. In the Desktop Wallet there’s a message saying The action was declined on the Ledger device. Please try again.

Export baker credentials

  1. You have to export the baker credentials so that you can start the node with the baker keys. Select Export baker credentials and navigate to the place on your computer where you want to save the file.

    You can now see Transaction details, Signatures, and Security & Submission Details, which includes the status of the transaction, the identicon, and the digest to sign. You can also see the date and time before which you must submit the transaction proposal. If no more signatures are required, you can submit the transaction to the blockchain. If more signatures are required, you’ll have to export and send the transaction proposal to the co-signers.

Warning

This is the only time that you can export the credentials. If you’re going to transfer the baker keys to someone else make sure to do so through a secure channel. Generate new keys if you believe the keys have been compromised or lost.

Export a transaction proposal

If more than one signature is needed to sign off on the baker account proposal, you must share a file of the type JSON with the co-signers. In the Signatures pane, you can see how many signatures are required before you can submit the transaction to the blockchain.

  1. In the Desktop Wallet, select Export transaction proposal.

  2. Navigate to the location on your computer where you want to save the file. If you’re on Windows make sure that All Files is selected. Give the file a name and the extension .json, and then click Save.

  3. Send a copy of the file through a secure channel to the co-signers that must sign the transaction. Optionally, you can also send a copy of the identicon through a secure channel that is different from the one used to send the file.

Receive signatures from co-signers

When the co-signers have signed the transaction, they return the signed transaction proposal to you, and you have to import the files into the Desktop Wallet before you can submit the transaction to the chain.

  1. If you left the page with the account transaction, go to Multi-signature Transactions, and then select Your proposed transactions. If you’re still on the same page, go to step 3.

  2. Select the transaction that you want to submit to the chain. You can see an overview of the transaction details and an overview of the signatures. You can also see that the status of the transaction is Unsubmitted, and you can see the identicon, and the transaction hash.

  3. Select Browse to file and then navigate to the location on your computer where you saved the signed transaction files. Select the relevant files, and then select OK. The files are uploaded to the Desktop Wallet and added to the list of signatures. Alternatively, you can drag and drop the signature files from their location on the computer and on to the Desktop Wallet.

Submit the transaction to the blockchain

When you have received and added all the required signatures, you can submit the transaction to the blockchain.

  1. Review the transaction details carefully to ensure that all information is correct.

  2. Select I understand this is the final submission, and that it cannot be reverted.

    • If you don’t want to submit the transaction to the chain, you can select Cancel. The proposal is no longer active; however it is still visible in the list of proposals.

  3. Select Submit transaction to chain. The transaction is submitted to the chain and finalized on the Ledger.

  4. Select Finish to leave the page.

Warning

Transactions on the blockchain are permanent. That is, they are irreversible and can’t be deleted. Therefore, carefully review that you have selected the right account to add as baker, and that you have entered the correct amount to stake.

To start baking, you now have to start your node with the baker keys. See Run a node on a server with Ubuntu for more information about this.

Support & Feedback

If you have questions or feedback, join us on Discourse, or contact us at support@concordium.software.