Instructions for Command Line Wallet - hadescoincom/hds-core GitHub Wiki
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:
./hds-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:
./hds-wallet --command info -n 127.0.0.1:10000
Receiving Hdss
- To receive hdss start the wallet in a listening mode by running:
./hds-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:
./hds-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
./hds-wallet --command=key_export --subkey=N
whereas N
is the child index. Specifying 0
means the master key.
Sending Hdss
- To sending hdss use the following command
./hds-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:
Name | Description |
---|---|
r |
SBBS address of the receiver node |
a |
amount of hdss to send |
f |
transaction fee |
The Full list of wallet command line options
General options:
Name | Description |
---|---|
h or help |
list of all options |
p or port arg (=10000) |
port to start the server on |
log_level arg |
log level `[info |
file_log_level arg |
file log level `[info |
v or version |
return project version |
git_commit_hash |
return commit hash |
Wallet options:
Name | Description |
---|---|
seed_phrase arg |
phrase to initialize master secret, according to BIP-39 |
pass arg |
password for the wallet |
a or amount arg |
amount to send (in Hdss, 1 Hds = 1000000 chattle) |
f or fee arg (=0) |
fee (in Hdss, 1 Hds = 1000000 chattle) |
r or receiver_addr arg |
address of receiver |
n or node_addr arg |
address 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_history |
print transactions' history in info command |
command arg |
command to execute `[send |
Known limitations
- CPUs without SSE3 instruction set are not supported