This section provides instructions for creating a wallet for use in developing or maintaining software. Before a user can make a change to program code of the product, he/she needs to create a wallet and keys for development.
Wallet — a repository of public-private key pair. Private key is stored in encrypted form and is needed to sign operations performed on the blockchain. Wallet is accessed using
About Wallets A common misconception in cryptocurrency regarding wallets is that they store tokens. However, in reality, a wallet is used to store private keys in an encrypted file to sign transactions. Wallets do not serve as a storage medium for tokens. Tokens are not stored in the wallets. Wallets store only keys for signing operations.
A user builds a transaction object, usually through an interface, sends that object to the wallet to be signed, the wallet then returns that transaction object with a signature which is then broadcast to the network. When/if the network confirms that the transaction is valid, it is included into a block on the blockchain.
The first step is to create a wallet. Use
cleos wallet create to create a new "default" wallet using the option
--to-console for simplicity. If using
cleos in production, it is wise to instead use
--to-file so your wallet password is not in your bash history. For development purposes and because these are development and not production keys
--to-console poses no security threat.
$ cleos wallet create --to-console
cleos application will return a password to save. Further information appears with a reminder that this password will be needed when unlocking the wallet, and that without a password, it will be impossible to recover the imported keys.
Creating wallet: defaultSave password to use in the future to unlock this wallet.Without password imported keys will not be retrievable."PW5HuQcBBqb...............................kEiE36gweSxy"
Running the default command creates a wallet named «default». If you want to create a wallet with a different name (for example, when creating more than one wallet) you can use the
--name option (or
$ cleos wallet create --name second-wallet --to-console
As a result, a wallet with the
second-wallet name is created.
Wallets are stored in the
keosd application. Wallets are kept in the closed state by default. To open the wallet, you have to use the
$ cleos wallet openor$ cleos wallet open --name second-wallet
It will return:
Opened: defaultorOpened: second-wallet
To obtain a list of open wallets use the
$ cleos wallet list
It will return:
In the absence of purses in the open state, the following information will appear:
Despite the fact that the wallet is open, the
keosd application keeps it in a locked state. To use the wallet, it must be unlocked by
$ cleos wallet unlockor$ cleos wallet unlock --name second-wallet
A password prompt will appear. Enter the password and press
You can enter the password directly on the command line by adding the
--passwordoption. For example,
$ cleos wallet unlock --password PW5...w2
You can get a list of open wallets by re-executing:
$ cleos wallet list
It should return:
Wallets:["default *","second-wallet *"]
The presence of the (*) symbol means that the wallet is in the unlocked state.
After the wallet is created and unlocked, a pair of keys can be loaded into it - private and public. To do this, you can use the
create_key operation. This operation allows you to generate keys and automatically load them into the wallet. By default, a key with type
K1 — privileged will be generated.
$ cleos wallet create_key
When having more than one wallet, you have specify the name of the wallet in the team, adding the
-name <text> option.
$ cleos wallet create_key --name second-wallet
It will return something like the following:
Created new private key with a public key of: "GLS8PE...,X6P..."
Unlike EOS, in CyberWay the public key code actually starts with the
Every new CyberWay chain has a default "system" user called "cyber". This account is used to setup the chain by loading system contracts that dictate the governance and consensus of the CyberWay chain. Every new CyberWay chain comes with a development key, and this key is the same. Load this key to sign transactions on behalf of the system user (cyberway)
$ cleos wallet import
You'll be prompted for a private key, enter the cyberway development key provided below:
You now have a default wallet unlocked and loaded with a key, and are ready to proceed
Sometimes it is necessary to have your wallet locked. For instance, when the long-term interruptions in software development are occuring. To lock a single wallet you can use the
$ cleos wallet lockor$ cleos wallet lock --name second-wallet
A message about locking the user's wallet should appear:
Locked: 'default'orLocked: 'second-wallet'
To lock all user wallets, use the
$ cleos wallet lock_all
The following message on locking all user wallets should appear:
Locked All Wallets
Never use the development key for a production account! Doing so will most certainly result in the loss of access to your account, this private key is publicly known.
Our congratulations!!! You now have a default wallet unlocked and loaded with a key, and are ready to proceed!!!