# Manage Wallet

This guide will show you how to create account and worker key, set default account, import keystore file, etc.

The wallet commands are shown in the table below.

Command Description
topio wallet createAccount Create account.
topio wallet importAccount Import account.
topio wallet createKey Create worker key for the account.
topio wallet listAccounts List all accounts in the wallet.
topio wallet setDefaultAccount Set a default account to send transactions.
topio wallet resetKeystorePwd Reset keystore file password.
topio wallet exportAccount Export the private key.

# Create An Account

Create a local account. You can create multiple accounts.

Each account will have a unique pair of public and private keys, called the owner key, which has all the permissions of the account, including but not limited to sending transactions, mining, etc.

WARNING

Please remember your keystore file password. If you lose the password, you will not be able to use the account. And the system does not have the option of "forgot password", only the password can be retrieved through the password prompt.

Do not share your keystore file and file password with others, so as to avoid asset loss!

Request

topio wallet createAccount

Request Parameters

None.

Options

Option Name Default Value Type Description
-p,--password - String Create an account with a password. If you do not add this option, it will create an account without a password.
The password consists of numbers and letters, 8-16 characters.
-f, --pwd_file_path - - Create an account with a password file.
-h, --help - - Check the command's help information.

Response Parameters

Parameter Name Type Description
Account Address String You can share your public key and account address with anyone. Others need them to interact with you.
The address created here is a normal user account address, beginning with a "T80000" identifier.
Owner public-key String Account public key and private key always come in pairs, the private key is stored in the owner keystore file, about the keystore file, please see the Account Protocol.
Public key which is used for encryption and signature verification.

Request Sample

topio wallet createAccount

Response Sample

  • Successful

    Successfully create an account locally!
    
    You can share your public key and account address with anyone. Others need them to interact with you!
    You must nerver share the private key or account keystore file with anyone! They control access to your funds!
    You must backup your account keystore file! Without the file, you will not be able to access the funds in your account!
    You must remember your password if you set it! Without the password, it's impossible to use the keystore file!
    
    Account Address: T800002276a7d58218ac4978733e5cca927a7d86cb7c87
    Owner public-Key: BAW5r2JJd/j7Wr6iISO7ki5+YE2OKflaG7dVbV+u1EkPpcAqe3Ou10EPNlKjlI4EsAJR9LBc+Fv9DC1Znm8rKcU=
    
  • Failed

    Password error!
    Please set a password for the account keystore file. The password must consist of Numbers and Letters, 8 to 16 characters.
    

# Import An Account

Import an account by importing private key.

Request

topio wallet importAccount

Request Parameters

None.

Options

Option Name Default Value Type Description
-p, --password - String Set a password when importing an account. If you do not add this option, the system will import an account without a password.
The password consists of numbers and letters, 8-16 characters.
-h, --help - - Check the command's help information.

Response Parameters

Parameter Name Type Description
Account Address String The account address corresponding to the imported private key.
Public-Key String Public key, used for encryption and signature verification.

Request Sample

topio wallet importAccount

After running the command, enter the private key according to the returned message.

Response Sample

Import successfully.

Account Address: T80000968927100f3cb7b23e8d477298311648978d8613
Public-Key: BK2CfxnSP0cL9/dbi6b3krWUlQP1jP4EIHu5Y5c2vMBNLMYMOE8K3mqOubDPQXBXc/D4ydtR0LDyWUEyxHO/ZZU=

# Create Worker Key

Create multiple public and private key pairs for an account. Such public and private key pairs are called worker keys. It can be granted mining permissions, but no transaction permissions. We recommend that you use worker key to mine online and keep the owner key offline to make your assets more secure.

Request

topio wallet createKey

Request Parameters

Parameter Name Required Type Description
account_addr No Default account. String The account to which the worker key belongs. If not specified, a worker key will be created for the default account .

Options

Option Name Default Value Type Description
-p, --password - String Create worker key with a password. If you do not add this option, it will create a worker key without a password.
The password consists of numbers and letters, 8-16 characters.
-f, --pwd_file_paty - - Create worker key with password file.
-h, --help - - Check the command's help information.

Response Parameters

Parameter Name Type Description
Public Key String Public key which is used for encryption and signature verification.
worker public_key String Public key of worker key.

Request Sample

topio wallet createKey -p

Response Sample

  • Successful

    Successfully create a worker keystore file!
    
    You can share your public key and account address with anyone. Others need them to interact with you!
    You must nerver share the private key or account keystore file with anyone! They control access to your funds!
    You must backup your account keystore file! Without the file, you will not be able to access the funds in your account!
    You must remember your password if you set it! Without the password, it's impossible to use the keystore file!
    
    Account Address: T800002276a7d58218ac4978733e5cca927a7d86cb7c87
    worker public-key: BAW5r2JJd/j7Wr6iISO7ki5+YE2OKflaG7dVbV+u1EkPpcAqe3Ou10EPNlKjlI4EsAJR9LBc+Fv9DC1Znm8rKcU=
    
  • Failed

    Password does not meet the format requirements:

    Password error!
    

# List All Accounts in the Wallet

Request

topio wallet listAccounts

Request Parameters

None.

Options

Option Name Default Value Type Description
-h,--help - - Check the command help information.

Response Parameters

Parameter Name Type Description
account String Account address. If the account address is marked with "default account", it means that this account is currently being used.
owner public-key String The public key of the account in base58 format. If the owner public-key is marked with "registered as minerkey", it means that the owner key is registered as the miner key.
balance Uint64 Account balance, unit is TOP.
Note the difference between "-" and "0" when the balance is displayed:
-: Indicates that this account has not been created on the chain;
0: Indicates that this account has been created on the chain, but the current balance is 0.
nonce Uint64 The nonce of the latest successful transaction. Unique in the global network.
worker public-key String The base58 format public key list of the worker key of this account. If the the worker public key is marked with "register as minerkey",it means that the worker key is registered as miner key.

Request Sample

topio wallet listAccounts

Response Sample

  • Successful

    No default account
    account #0: T8000066ab344963eaa071f9636faac26b0d1a39900325
    owner public-key: BFPQ1X11sm+OU9ua3DeEnzwYb7npoa+uhJXcdi4i205y7PaXzfDwAUGGdaV6qj3k2V7lUQiFDuofl5CaFhjaXlQ=
    balance: 10000000.000000 TOP
    nonce: 0
    worker public-key list:
    public key #0: BG2KavysdOhOzfHPIHR2kBpq2SMw/M+n4S0Q90PS7bVZ9tV2ipPsbKeQmgyBx+BErOH0kgnGFvq++3rj3v6YxfA=
    ------------------------------------------------------
    
    account #1: T8000085a8e8acd53c72dca85dcb002a6710796975b4ba
    owner public-key: BJL6rIirL1m7ox+hKHymSISULh8HPYI8772Wq7h0oUga8exzuRrTR599inROGNkGK5O8buwFhe+E2WKyYD3l8tE=
    balance: 30000000.000000 TOP
    nonce: 0
    
  • Failed

    There is no account in wallet.
    

# Set Default Account

The following scenarios need to set the default account:

  • There are multiple accounts in the wallet, and a default account needs to be set for sending transactions.

  • There is only one account with password in the wallet. You need to set this account as the default account to send transactions.

  • Switch the account to send transaction.

  • If there is no operation (query or send transaction) within 30 minutes at the front desk of TOPIO, the default account you set will be invalid and you need to reset a default account.

Request

topio wallet setDefaultAccount

Request Parameters

Parameter Name Required Default Value Type Description
account_addr Yes - String Account address.

Options

Option Name Default Value Type Description
-p, --password - String The password set when the account was created.
-h, --help - - Check the command's help information.

Response Parameters

None.

Request Sample

topio wallet SetDefaultAccount T8000085a8e8acd53c72dca85dcb002a6710796975b4ba

Response Sample

  • Successful

    Set default account successfully.
    
  • Failed

    The owner key does not exist:

    The account's owner keystore file does not exist in wallet.
    

    The password is wrong or the owner key has no password:

    Password error!
    Hint: 
    Set default account failed.
    

# Reset Keystore File Password

Support resetting owner keystore and worker keystore file password.

Request

topio wallet resetKeystorePwd

Request Parameters

Parameter Name Required Default Value Type Description
public_key Yes - String Public key of owner key or worker key.

Options

Option Name Default Value Type Description
-h, --help - - Check the command's help information.

Response Parameters

None.

Request Sample

  • Old format

    topio wallet resetKeystorePwd BERrbuiBZ66gYHHhx2/4OzqHwqC+DrJRh7vdPz5e8fHD+OwGhgmRjnoNbyM2rnI9eXTjuSOvAGG5J1tOAyMFnVQ=
    
  • New format

    topio wallet resetKeystorePwd ad827f19d23f470bf7f75b8ba6f792b5949503f58cfe04207bb9639736bcc04d2cc60c384f0ade6a8eb9b0cf41705773f0f8c9db51d0b0f2594132c473bf6595
    

Response Sample

  • Successful

    Successfully reset password!
    
  • Failed

    Old password error:

    Password error!
    Hint: basketball
    Set default account failed.
    

# Export Private Key

Export and show the wallet private key and keystore file content. After exporting, you can copy and save it locally.

Request

topio wallet exportAccount

Request Parameters

None.

Options

Option Name Default Value Type Description
-h, --help - - Check the command's help information.

Response Parameters

Parameter Name Type Description
Account Address String Account address. When exporting the keystore file, the corresponding account address will be printed here.
Private-Key String The private key.

Request Sample

topio wallet exportAccount T80000968927100f3cb7b23e8d477298311648978d8613

Response Sample

About the format of Keystore file, see Account Protocol.

Export successfully.

Keystore file: /root/topnetwork/keystore/T80000968927100f3cb7b23e8d477298311648978d8613
Account Address: T80000968927100f3cb7b23e8d477298311648978d8613
Private-Key: b0032f8057051b611a7c0ea373da4d7a6764351030ed497e6134fd9e11775b19

{
   "account_address" : "T80000968927100f3cb7b23e8d477298311648978d8613",
   "address" : "968927100f3cb7b23e8d477298311648978d8613",
   "crypto" : {
      "cipher" : "aes-128-ctr",
      "cipherparams" : {
         "iv" : "e40a554c807b913c6e882e933ee6c103"
      },
      "ciphertext" : "762381ac2219511c647d27424761e81fecc14170eeff6e20412d6c9311149060",
      "kdf" : "scrypt",
      "kdfparams" : {
         "dklen" : 32,
         "n" : 262144,
         "p" : 1,
         "r" : 8,
         "salt" : "69c473d9a1ae16ad7cbab057101ccb9632d4109bf7f44e7ff2eba59e269f9932"
      },
      "mac" : "7d3c31b6aa3f43885682259e6e632b44799700cc7030bdbc1dddb2f587066dac"
   },
   "hint" : "",
   "id" : "b2951865-c391-9d98-ff85-83e149f88990",
   "key_type" : "owner",
   "public_key" : "BK2CfxnSP0cL9/dbi6b3krWUlQP1jP4EIHu5Y5c2vMBNLMYMOE8K3mqOubDPQXBXc/D4ydtR0LDyWUEyxHO/ZZU=",
   "version" : 3
}