In order to use the CLI Wallet, you must have an Echo full node running with an RPC port exposed. If you don't have a full node running yet, follow the installation tutorial.
To run a full node that we can connect to, we need to open the RPC interface, this can be done by:
./echo_node --rpc-endpoint=127.0.0.1:6312 --testnet
This will open port 6312
.
The CLI wallet is used to interact with the Echo blockchain and use to generate signatures.
All it takes for the CLI wallet to run is a trusted API server to connect to the blockchain. Businesses and individuals run these public API servers.
./echo_wallet -s wss://testnet.echo-dev.io/ws
In this example, we use the public Echo node API and connect via a secured websocket connection. But you can also use your local node IP and PORT like this:
./echo_wallet -s ws://127.0.0.1:6311/ws
If you get an {"remote_chain_id":"$$REMOTE_CHAIN_ID$$","chain_id":"$$CHAIN_ID$$"}
error, when the wallet starts, it'd mean that the genesis.json
file was changed. It can only happen on testnet or devnet networks.
You can fix it by adding add an argument --chain-id=$$REMOTE_CHAIN_ID$$
, where $$REMOTE_CHAIN_ID$$
is a chain ID that reported in the remote_chain_id
message.
Use ./echo_wallet --help
to see all options for running the CLI wallet.
This will open the CLI wallet and will ask you to provide a passphrase for your local wallet.
Default wallet file is wallet.json
. Use -w
option for changing the name of file. Once a new wallet has been created, it will prompt with:
Please use the set_password method to initialize a new wallet before continuingnew >>>
A new wallet needs to be initialized before its first use, by setting a password using the set_password
command:
IMPORTANT: Private data, such as a passphrase or private keys, aren't stored by the wallet.
new >>> set_passwordInput private data:TYPE_YOUR_SECRET_PASSWORD_HERElocked >>>
Now the wallet can be unlocked by providing the passphrase:
locked >>> unlockInput private data:supersecretpassphraseunlocked >>>
Once the wallet has been unlocked, you can import an existing account. If you do not have an account yet, follow the account creation and key importing tutorial.
You can get a detailed list of all commands by calling the help
command.
Also you may call help
with method name to see detailed description of method:
unlocked >>> help transfer​Transfer an amount from one account to another.​Parameters:from: the name or id of the account sending the funds (type: conststring &)to: the name or id of the account receiving the funds (type: conststring &)amount: the amount to send (in nominal units - to send half of a ECHO,specify 0.5) (type: const string &)asset_symbol: the symbol or id of the asset to send (type: const string&)broadcast: true to broadcast the transaction on the network (type:bool)​Returns:the signed transaction transferring funds​Example:transfer 1.2.0 1.2.1 10 ECHO true
For using this feature, echo_wallet should be compiled with Doxygen library.
By pressing TAB
you can get a list of autocomplete commands or complete current if there are no alternatives.
Many calls have an obligatory broadcast
-flag as the last argument. If this flag is false
, the wallet will create and sign but not broadcast the transaction. This can be very useful for a cold storage setup or to verify transactions. By default broadcast
is false
.
The CLI wallet can open an RPC port, so that in be accessed by applications or scripts. This can be done via either:
websocket RPC via the -r
parameter.
HTTP RPC via the -H
parameter.
./echo_wallet -s ws://127.0.0.1:6311/ws -H 127.0.0.1:8092 -r 127.0.0.1:8093