Electrum has a powerful command line. This page will show you a few basic principles.
Note that this page has been updated for Electrum 4.0.
To see the list of Electrum commands, type:
electrum helpTo see the documentation for a command, type:
electrum help <command>By default, commands are sent to an Electrum daemon. Here is how to start and stop the daemon:
electrum daemon -d
electrum getinfo
electrum stopSome commands require a wallet. Here is how to load a wallet in the daemon:
electrum load_wallet # this will load the default wallet
electrum load_wallet -w /path/to/wallet/file
electrum list_walletsOnce the wallet is loaded, wallet operations are possible, such as:
electrum listaddresses
electrum payto <address> <amount>Some commands do not require network access, and can be executed without a running daemon. This is done with the --offline flag:
electrum -o listaddresses
electrum -o payto <address> <amount>
electrum -o -w /path/to/wallet/file listaddressesThe arguments passed to commands may be one of the following magic words: ! ? : and -.
The exclamation mark ! is a shortcut that means 'the maximum amount available'.
Example:
electrum payto 1JuiT4dM65d8vBt8qUYamnDmAMJ4MjjxRE !Note that the transaction fee will be computed and deducted from the amount.
A question mark ? means that you want the parameter to be prompted.
Example:
electrum signmessage 1JuiT4dM65d8vBt8qUYamnDmAMJ4MjjxRE ?Use a colon : if you want the prompted parameter to be hidden (not echoed in your terminal).
electrum importprivkey :Note that you will be prompted twice in this example, first for the private key, then for your wallet password.
A parameter replaced by a dash - will be read from standard input (in a pipe)
cat LICENCE | electrum signmessage 1JuiT4dM65d8vBt8qUYamnDmAMJ4MjjxRE -
You can use DNS aliases in place of bitcoin addresses, in most commands.
electrum payto ecdsa.net !Command outputs are either simple strings or json structured data. A very useful utility is the 'jq' program. Install it with:
sudo apt-get install jqThe following examples use it.
We may use a variable to store the signature, and verify it:
sig=$(cat LICENCE| electrum signmessage 1JuiT4dM65d8vBt8qUYamnDmAMJ4MjjxRE -)And:
cat LICENCE | electrum verifymessage 1JuiT4dM65d8vBt8qUYamnDmAMJ4MjjxRE $sig -The 'listunspent' command returns a list of dict objects, with various fields. Suppose we want to extract the 'value' field of each record. This can be achieved with the jq command:
electrum listunspent | jq 'map(.value)'Incoming transactions have a positive 'value' field
electrum history | jq '.[] | select(.value>0)'The following command selects transactions that were timestamped after a given date:
after=$(date -d '07/01/2015' +"%s")
electrum history | jq --arg after $after '.[] | select(.timestamp>($after|tonumber))'Similarly, we may export transactions for a given time period:
before=$(date -d '08/01/2015' +"%s")
after=$(date -d '07/01/2015' +"%s")
electrum history | jq --arg before $before --arg after $after '.[] | select(.timestamp>($after|tonumber) and .timestamp<($before|tonumber))'First we need the public key of a wallet address:
pk=$(electrum getpubkeys 1JuiT4dM65d8vBt8qUYamnDmAMJ4MjjxRE| jq -r '.[0]')Encrypt:
cat | electrum encrypt $pk -Decrypt:
electrum decrypt $pk ?Note: this command will prompt for the encrypted message, then for the wallet password
The following command will export the private keys of all wallet addresses that hold some bitcoins:
electrum listaddresses --funded | electrum getprivatekeys -This will return a list of lists of private keys. In most cases, you want to get a simple list. This can be done by adding a jq filer, as follows:
electrum listaddresses --funded | electrum getprivatekeys - | jq 'map(.[0])'Finally, let us use this list of private keys as input to the sweep command:
electrum listaddresses --funded | electrum getprivatekeys - | jq 'map(.[0])' | electrum sweep - [destination address]