Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Instructions for Command Line Wallet
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 127.0.0.1:10000
- To receive beams start the wallet in a listening mode by running:
./beam-wallet --command listen -n 127.0.0.1:10000
- 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 127.0.0.1:10000
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
N is the child index. Specifying
0 means the master key.
- To sending beams use the following command
./beam-wallet --command=send -n 127.0.0.1:10000 -r 77de6bd3de40bc58ab7e4fb68d5e0596fd1e72f3c4fb3eb3d106082d89264909 -a 11.3 -f 0.2
- The send-related command line parameters of the wallet:
||SBBS address of the receiver node|
||amount of beams to send|
The Full list of wallet command line options
||list of all options|
||port to start the server on|
||log level `[info|
||file log level `[info|
||return project version|
||return commit hash|
||phrase to initialize master secret, according to BIP-39|
||password for the wallet|
||amount to send (in Beams, 1 Beam = 1000000 chattle)|
||fee (in Beams, 1 Beam = 1000000 chattle)|
||address of receiver|
||address of node|
||path to wallet file|
||path to file with bbs keys|
||print transactions' history in info command|
||command to execute `[send|
- CPUs without SSE3 instruction set are not supported