This documentation is obsolete

Please refer to Command Line User Guide

Running a command line wallet

  • After extracting the wallet binary to a folder, we need to initialize the wallet by executing the following command:
./beam-wallet --command init
  • You will be prompted to provide wallet password and then the secret phrase, which would be used to initialize the master secret. Make sure to write down the secret phrase, to be able to restore wallet contents in case of emergency.

Printing wallet information

  • To get the information about the current status of the wallet, execute:
./beam-wallet --command info -n

Receiving Beams

  • To receive beams start the wallet in a listening mode by running:
./beam-wallet --command listen -n
  • After entering the password, the wallet will print out the line similar to: WalletID 4a0e54b24d5fdf06891a8eaa57b4b3ac16731e932a64da8ec768083495d624f1 subscribes to BBS channel 9
  • This shows the SBBS address the wallet is listening on. This address can be copied and sent to Sender.
  • If you want to create new SBBS address use the following command:
./beam-wallet --command=new_addr --listen -n

Exporting keys for standalone Node(s)

The Node(s) that belongs to the wallet should be given appropriate keys for the following purpose:

  • Node-Wallet authentication
  • Standalone mining (when the wallet is offline)
  • Monitoring wallet activity, supporting recovery and etc.

It's possible to export the master wallet key, as well as a child key, which is derived from the master key (but not vice versa!). In addition every key can be exported as a full key, or as a viewer key, which is suitable for Node authentication and monitoring activity, but not for generating and spending the UTXOs.

Keeping in mind that the wallet may own several nodes, we recommend providing each node a different child key for mining, so that in case it gets hacked - the attacker won't be able to steal what's been mined by other nodes. Anyway when the owner wallet connects the Node prefers to involve the wallet in mining, so that key won't be used either. Obviously it's not recommended to export the master secret key ever.

In addition to mining, one or more viewer keys should be exported and provided to the nodes. To be able to communicate with the wallet, each Node must have its master viewer key. In addition to this, every node should have all the viewer child keys that are used for mining, to be able to detect/restore all the mined UTXOs.

  • To export a child key
./beam-wallet --command=key_export --subkey=N

whereas N is the child index. Specifying 0 means the master key.

Sending Beams

  • To sending beams use the following command
./beam-wallet --command=send -n -r 77de6bd3de40bc58ab7e4fb68d5e0596fd1e72f3c4fb3eb3d106082d89264909 -a 11.3 -f 0.2
  • The send-related command line parameters of the wallet:
rSBBS address of the receiver node
aamount of beams to send
ftransaction fee

The Full list of wallet command line options

General options:

h or helplist of all options
p or port arg (=10000)port to start the server on
log_level arglog level `[info
file_log_level argfile log level `[info
v or versionreturn project version
git_commit_hashreturn commit hash

Wallet options:

seed_phrase argphrase to initialize master secret, according to BIP-39
pass argpassword for the wallet
a or amount argamount to send (in Beams, 1 Beam = 1000000 chattle)
f or fee arg (=0)fee (in Beams, 1 Beam = 1000000 chattle)
r or receiver_addr argaddress of receiver
n or node_addr argaddress of node
wallet_path arg (=wallet.db)path to wallet file
bbs_keystore_path arg (=bbs_keys.db)path to file with bbs keys
tx_historyprint transactions' history in info command
command argcommand to execute `[send

Known limitations

  • CPUs without SSE3 instruction set are not supported