Bitcoin/Electrum
Electrum
Electrum Bitcoin Client - http://electrum.org/
- Lightweight Bitcoin Client
"Electrum is an easy to use Bitcoin client. It protects you from losing coins in a backup mistake or computer failure, because your wallet can be recovered from a secret phrase that you can write on paper or learn by heart. There is no waiting time when you start the client, because it does not download the Bitcoin blockchain."
Features:
- Instant on: Your client does not download the blockchain, it uses a remote server.
- Forgiving: Your wallet can be recovered from a secret seed.
- Safe: Your seed or private keys are not sent to the server. Information received from the server is verified using SPV
- No downtimes: Several public servers are available, you can switch instantly.
- Ubiquitous: You can use the same wallet on different computers, it will auto-synchronize.
- Open: You can export your private keys into other Bitcoin clients.
- Tested and audited: Electrum is open source and was first released in November 2011.
Interesting:
- "Electrum is a naturally occurring alloy of gold and silver, with trace amounts of copper and other metals. It has also been produced artificially, and is often known as green gold. The ancient Greeks called it 'gold' or 'white gold', as opposed to 'refined gold'. Its colour ranges from pale to bright yellow, depending on the proportions of gold and silver. The gold content of naturally occurring electrum in modern Western Anatolia ranges from 70% to 90%, in contrast to the 45–55% of electrum used in ancient Lydian coinage of the same geographical area. This suggests that one reason for the invention of coinage in that area was to increase the profits from seignorage by issuing currency with a lower gold content than the commonly circulating metal." [1]
GitHub
spesmilo/electrum · GitHub - https://github.com/spesmilo/electrum
Documentation
Electrum - Bitcoin - https://en.bitcoin.it/wiki/Electrum
- List of commands
Installation
Electrum download - http://electrum.org/download.html
Ubuntu Linux
Install python-qt4 and pip:
sudo apt-get install python-qt4 python-pip
On Ubuntu 13.10 do:
sudo apt-get install python-slowaes
Install electrum:
# sudo pip install https://download.electrum.org/Electrum-1.9.8.tar.gz#md5=e3918fec0254267f08e41a1fb8691382 # sudo pip install https://download.electrum.org/2.6.4/Electrum-2.6.4.tar.gz sudo pip2 install https://download.electrum.org/2.9.0/Electrum-2.9.0.tar.gz
Run: (X version)
electrum
Development Version
Dependencies: python, qt, pyqt, gettext, ecdsa, slowaes. On Ubuntu you can install the dependencies with:
sudo apt-get install python-pip python-qt4 pyqt4-dev-tools sudo pip install ecdsa slowaes
sudo apt-get install python-pycurl # ken #
Check out the code from Github
git clone git://github.com/spesmilo/electrum.git
Compile the icons
pyrcc4 icons.qrc -o gui/icons_rc.py
Create translations
python mki18n.py
Install Electrum
sudo python setup.py install
Initial Configuration
Try to check balance first. If timeout, switch servers:
electrum getbalance
Switch server:
electrum setconfig server bitcoin.epicinet.net:50002:s
Electrum Server List - http://electrum.qc.to/
Installation Location
/usr/local/lib/python2.7/dist-packages/Electrum_LTC-* /usr/local/bin/electrum-ltc
Tutorials
BITCOIN – Setting Up A Wallet On A Raspberry Pi - http://www.instantsupportsite.com/self-help/bitcoin-setting-up-wallet-raspberry-pi/
Commands
Version
$ pip list | grep Electrum Electrum (1.9.8)
Money
getbalance
ONLINE COMMAND
Return the balance of your wallet, or of one account in your wallet Syntax: getbalance [<account>]
~# electrum getbalance Connected to electrum.coinwallet.me:50002 { "confirmed": "0.03" }
In offline mode:
# electrum -o getbalance { "confirmed": "0.03" }
Note: running this command will sync new addresses to match the gap_limit
Wallet
getseed
REQUIRES PASSWORD
Print the generation seed of your wallet.
# electrum getseed { "hex": "e57ceca34c63e37b48002e1320d74017", "mnemonic": "verse path laugh creator ship guilty serious tumble kingdom wonderful mutter lip" }
deseed
WARNING: DANGEROUS!
deseed - Remove seed from wallet, creating a seedless, watching-only wallet.
create
Create a new wallet
# electrum create Password (hit return if you do not wish to encrypt your wallet): server (default:electrum.coinwallet.me): port (default:50002): protocol [t=tcp;h=http] (default:s): fee (default:0.0005):0 gap limit (default 5): 17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN 19VXhWB4j4yp3jLWqyLkedaDY4UJ8Pvs8K 189GtcmuBLbno2LM3XMX5yYbixga3Rrerd 1BWMeAWW1ZHw3JtmZyyN8PVSRciubRdBWA 1A75ZG5bABjFGTnfXgmQtNdsxYBhqvyyHg 1GxSUrwHDTwDBa6q9m48F5cJW2y35cGALi 1LRnTCuUcaxPirNbh4xzB6MnuKjDK3vQi1 1Kk6WTB35E613yq6S4YwWiDNEon8Y7de82 Your wallet generation seed is: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Please keep it in a safe place; if you lose it, you will not be able to restore your wallet. Equivalently, your wallet seed can be stored and recovered with the following mnemonic code: "verse path laugh creator ship guilty serious tumble kingdom wonderful mutter lip" Wallet saved in '/root/.electrum/electrum.dat'
restore
Restore a wallet options: accepts a seed or master public key.
# electrum restore "some text words here" Wallet saved in '/home/kenneth/.electrum/wallets/default_wallet'
# electrum restore Password (hit return if you do not wish to encrypt your wallet): server (default:electrum.coinwallet.me): port (default:50002): protocol [t=tcp;h=http] (default:s): fee (default:0.0005):0 gap limit (default 5):10 seed:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Recovering wallet... 17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN 19VXhWB4j4yp3jLWqyLkedaDY4UJ8Pvs8K 189GtcmuBLbno2LM3XMX5yYbixga3Rrerd 1BWMeAWW1ZHw3JtmZyyN8PVSRciubRdBWA 1A75ZG5bABjFGTnfXgmQtNdsxYBhqvyyHg 17aBaFQezCjw3bGk5edbe7FHqmwgY6jraH 1P5rCjyL4MrgMQwcierKK58AUvz5mELQDX 19jZyi7Jh4gwBxVTB3cUBuDUkbAKyPTGU7 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr 13uN81RX5HrniuC2rH8MPn2ZcrHvPuvey7 1GxSUrwHDTwDBa6q9m48F5cJW2y35cGALi 1LRnTCuUcaxPirNbh4xzB6MnuKjDK3vQi1 1Kk6WTB35E613yq6S4YwWiDNEon8Y7de82 12xD238UUzS5DHfsk6fendwC3RUbCZw2mE 1Lt6rW6t36ZKz9LUswCYACZoAnVh8ePCoE 1L4BFhzjZL5KFiLVdzgf4bT4ZtJtRA7LtK Recovery successful Wallet saved in '/root/.electrum/electrum.dat'
password
Change your password
# electrum password New password: Confirm:
QUESTION: How do you remove a password from a wallet, once you have added it?
Transactions
history
ONLINE COMMAND
Returns the transaction history of your wallet
Note: Affected by labels
Note: Does not show dates! :-(
# electrum history Connected to electrum.coinwallet.me:50002 [ " ---- test3 0.02 0.02", " ---- test2 0.01 0.03", " ---- deepbit 0.01 0.04", " ---- slushpool 0.01006479 0.05006479", " ---- myslush 0.01003806 0.06010285", " ---- bitminter 0.01000297 0.07010582", " ---- bitmit_2600 -0.02502 0.04508582", " ---- deepbitpps 0.01 0.05508582" ]
Fields: ?date?, address/label, amount, balance
NOTE: There appears to be a bug that the dates won't show until after loading the GUI
# electrum history Connected to electrum.coinwallet.me:50002 [ "2013-10-05 18:50 import_test 0.001 0.001", "2013-10-11 10:52 test2 0.01 0.011", "2013-10-11 10:52 test3 0.02 0.031", "2013-10-14 15:20 deepbit 0.01 0.041", "2013-10-29 04:14 slushpool 0.01006479 0.05106479", "2013-10-29 15:07 myslush 0.01003806 0.06110285", "2013-10-30 09:08 bitminter 0.01000297 0.07110582", "2013-11-01 02:35 bitmit_2600 -0.02502 0.04608582", "2013-11-02 22:17 deepbitpps 0.01 0.05608582" ]
Addresses
listaddresses
Returns your list of addresses. options: -a: show all addresses, including change addresses -l: include labels in results
# electrum listaddresses [ "17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN", "19VXhWB4j4yp3jLWqyLkedaDY4UJ8Pvs8K", ... "1L4BFhzjZL5KFiLVdzgf4bT4ZtJtRA7LtK" ]
With labels: # electrum -l listaddresses [ { "address": "17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN" }, { "address": "19VXhWB4j4yp3jLWqyLkedaDY4UJ8Pvs8K", "label": "item1" }, ...
setlabel
Assign a label to an item Syntax: setlabel <tx_hash> <label>
# electrum setlabel 17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN first
Remove label:
# electrum setlabel 17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN ''
getaddressbalance
ONLINE COMMAND
Return the balance of an address Syntax: getbalance <address>
# electrum getaddressbalance 19VXhWB4j4yp3jLWqyLkedaDY4UJ8Pvs8K Connected to electrum.coinwallet.me:50002 { "confirmed": "0.01" }
validateaddress
Check that the address is valid Syntax: validateaddress <address>
# electrum validateaddress 19VXhWB4j4yp3jLWqyLkedaDY4UJ8Pvs8K { "address": "19VXhWB4j4yp3jLWqyLkedaDY4UJ8Pvs8K", "ismine": true, "isvalid": true, "pubkey": "0435104d8f67737d94fbf73b1e27e01fb8ba9fbdb506aa1375df60408a0c90fb6ced0a1cd2b7cb1ad31a60885b575cad37616d07d57e5398714dbeb8913f992b61" }
listunspent
Returns a list of unspent inputs in your wallet.
# electrum listunspent [ { "address": "19VXhWB4j4yp3jLWqyLkedaDY4UJ8Pvs8K", "index": 0, "raw_output_script": "76a9145d26476442224149ddc2d7ddf4f28a8536b4da4488ac", "tx_hash": "d5eef5996fd72aee5c1ee3578a645db9d43b5fc6184a38d9e92ceeddd316dd12", "value": "0.01" }, { "address": "189GtcmuBLbno2LM3XMX5yYbixga3Rrerd", "index": 0, "raw_output_script": "76a9144e5978f1bd454aade7b881e3839bca27fa99a86188ac", "tx_hash": "7b2861235bb2e912494999ca15d223d5bcf47c7f7d4d3187a520ab8c01e39362", "value": "0.02" } ]
contacts
Show your list of contacts
Huh? Show favorite contacts? (set with setconfig)
# electrum contacts { "16eFiVsWR5AQ87Evabja8kF1HZv5hE3zmk": "contact1", "17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN": "deepbit" }
Send Money
payto
Create and broadcast a transaction. Syntax: payto <recipient> <amount> [label] <recipient> can be a bitcoin address or a label options: --fee, -f: set transaction fee --fromaddr, -s: send from address - --changeaddr, -c: send change to address
# electrum payto 1AqipkayBadTbbjapoNJ4ZKpSyiN5nyZWr 0.02452 bitmit-2600
# electrum payto 1GJH7pYPMocSL1fFEizn6tqj83uUJnybNg 0.01002203 mtgox-20131204 --fee 0
mktx
First step in a signing a transaction (manual process)
Create a signed transaction Syntax: mktx <recipient> <amount> [label] options: --fee, -f: set transaction fee --fromaddr, -s: send from address - --changeaddr, -c: send change to address
Here is how to sign a transaction with an offline Electrum wallet - http://electrum.org/offline_wallets.html
freeze
freeze - Freeze the funds at one of your wallet's addresses Syntax: freeze <address>
# electrum freeze 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr true
unfreeze
unfreeze - Unfreeze the funds at one of your wallet's address Syntax: unfreeze <address>
# electrum unfreeze 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr true
prioritize
prioritize - Coins at prioritized addresses are spent first. Syntax: prioritize <address>
electrum unprioritize 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr
# electrum prioritize 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr true # electrum getconfig prioritized_addresses ['12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr']
unprioritize
Unprioritize an address Syntax: unprioritize <address>
# electrum unprioritize 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr true # electrum getconfig prioritized_addresses []
Configuration
getconfig
Return a configuration variable Syntax: getconfig <name> options: accounts, addr_history, auto_cycle, column_widths, console-history, contacts, fee_per_kb, frozen_addresses, gap_limit, imported_keys, labels, master_public_key, num_zeros, prioritized_addresses, proxy, seed, seed_version, server, transactions, use_change, use_encryption, winpos-qt
# electrum getconfig accounts #(output forced wrapped) {0: {0: ['17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN', '19VXhWB4j4yp3jLWqyLkedaDY4UJ8Pvs8K', '189GtcmuBLbno2LM3XMX5yYbixga3Rrerd', '1BWMeAWW1ZHw3JtmZyyN8PVSRciubRdBWA', '1A75ZG5bABjFGTnfXgmQtNdsxYBhqvyyHg', '17aBaFQezCjw3bGk5edbe7FHqmwgY6jraH', '1P5rCjyL4MrgMQwcierKK58AUvz5mELQDX', '19jZyi7Jh4gwBxVTB3cUBuDUkbAKyPTGU7', '12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr', '13uN81RX5HrniuC2rH8MPn2ZcrHvPuvey7', '12xD238UUzS5DHfsk6fendwC3RUbCZw2mE', '1Lt6rW6t36ZKz9LUswCYACZoAnVh8ePCoE', '1L4BFhzjZL5KFiLVdzgf4bT4ZtJtRA7LtK'], 1: ['1GxSUrwHDTwDBa6q9m48F5cJW2y35cGALi', '1LRnTCuUcaxPirNbh4xzB6MnuKjDK3vQi1', '1Kk6WTB35E613yq6S4YwWiDNEon8Y7de82'], 'name': 'Main account'}}
# electrum getconfig addr_history #(output forced wrapped) {'12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr': [], '1P5rCjyL4MrgMQwcierKK58AUvz5mELQDX': [], '189GtcmuBLbno2LM3XMX5yYbixga3Rrerd': [(u'7b2861235bb2e912494999ca15d223d5bcf47c7f7d4d3187a520ab8c01e39362', 262971)], '13uN81RX5HrniuC2rH8MPn2ZcrHvPuvey7': [], '1LRnTCuUcaxPirNbh4xzB6MnuKjDK3vQi1': [], '1BWMeAWW1ZHw3JtmZyyN8PVSRciubRdBWA': [], '1L4BFhzjZL5KFiLVdzgf4bT4ZtJtRA7LtK': [], '1Lt6rW6t36ZKz9LUswCYACZoAnVh8ePCoE': [], '17aBaFQezCjw3bGk5edbe7FHqmwgY6jraH': [], '19jZyi7Jh4gwBxVTB3cUBuDUkbAKyPTGU7': [], '1Kk6WTB35E613yq6S4YwWiDNEon8Y7de82': [], '17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN': [], '19VXhWB4j4yp3jLWqyLkedaDY4UJ8Pvs8K': [(u'd5eef5996fd72aee5c1ee3578a645db9d43b5fc6184a38d9e92ceeddd316dd12', 262971)], '1GxSUrwHDTwDBa6q9m48F5cJW2y35cGALi': [], '12xD238UUzS5DHfsk6fendwC3RUbCZw2mE': [], '1A75ZG5bABjFGTnfXgmQtNdsxYBhqvyyHg': []}
# electrum getconfig auto_cycle None
# electrum getconfig column_widths None
# electrum getconfig console-history None
# electrum getconfig contacts [] # electrum getconfig contacts [u'16eFiVsWR5AQ87Evabja8kF1HZv5hE3zmk', u'17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN']
# electrum getconfig fee_per_kb 50000
# electrum getconfig frozen_addresses []
# electrum getconfig gap_limit 5
# electrum getconfig imported_keys {}
# electrum getconfig labels {'17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN': 'first', '19VXhWB4j4yp3jLWqyLkedaDY4UJ8Pvs8K': 'item1'}
# electrum getconfig master_public_key 5ac4c655e0f0443b14199995c0a0fa527773ddc891d2fc93efd0f2b25ed71f4343bd2046178b7d54411c427f0035f96b0f68047311e6977149150213f0ef4846
# electrum getconfig num_zeros 0
# electrum getconfig prioritized_addresses ['17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN']
# electrum getconfig proxy None
# electrum getconfig seed 9vK4QX7WpFsB11PO9sQKY8f8RixZFEB1b+GtXlAwUjC8O85vFdxZmHLFuvsKUJkZ9CzAie8woBcS8/sF7ipgYA==
# electrum getconfig seed_version 4
# electrum getconfig server electrum.coinwallet.me:50002:s
# electrum getconfig transactions #(output forced wrapped) {u'7b2861235bb2e912494999ca15d223d5bcf47c7f7d4d3187a520ab8c01e39362': '010000000112dd16d3ddee2ce9d9384a18c65f3bd4b95d648a57e31e5cee2 ad76f99f5eed5010000006c493046022100aa2f4f1fa84e565614cb79d5dc4fc4bafe9167f2fd63870c865fd052d4e4d2160221009173c0694ce19fa9f204495b5ae a86a7c33ea364c27462b59bcf545a76d8fa6b0121031046b1dc988daf65caa3879cd03b6f8710d1776c40b6556024a79c0528a6307fffffffff0280841e000000000 01976a9144e5978f1bd454aade7b881e3839bca27fa99a86188acc0450400000000001976a9140de8b58942b0488e1ee46767f3a2a934434a52f688ac00000000', u'd5eef5996fd72aee5c1ee3578a645db9d43b5fc6184a38d9e92ceeddd316dd12': '01000000017fd0651c7467b07604188bb90c7424908c7f6f1af7f178a31136ee91a119464a000000006a47304402205e602212d92147138026978c0670607293874 ffe3a1e96ba870fc7e49359e47502207369c85a3ee072ad8e84a6cac76f22520e11fffb05716e4c64c598f05454a701012103b9b84ec1b3e62dd523a6291fd2725b3 2fda24f22973f98962e430a1bfc44ead4ffffffff0240420f00000000001976a9145d26476442224149ddc2d7ddf4f28a8536b4da4488ac50f12200000000001976a 9140de8b58942b0488e1ee46767f3a2a934434a52f688ac00000000'}
# electrum getconfig use_change True
# electrum getconfig use_encryption True
# electrum getconfig winpos-qt None
setconfig
Set a configuration variable Syntax: setconfig <name> <value> options: accounts, addr_history, auto_cycle, column_widths, console-history, contacts, fee_per_kb, frozen_addresses, gap_limit, imported_keys, labels, master_public_key, num_zeros, prioritized_addresses, proxy, seed, seed_version, server, transactions, use_change, use_encryption, winpos-qt
# electrum setconfig contacts "[u'16eFiVsWR5AQ87Evabja8kF1HZv5hE3zmk', u'17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN']" # electrum setconfig contacts "['16eFiVsWR5AQ87Evabja8kF1HZv5hE3zmk', '17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN']"
Set Server
Server list - http://electrum.qc.to/
# electrum getconfig server electrum.coinwallet.me:50002:s
# electrum setconfig server electrum.coinwallet.me:50002:s True # electrum setconfig server bitcoin.epicinet.net:50002:s True
How to run your own Electrum server - https://github.com/spesmilo/electrum-server/blob/master/HOWTO.md
Get Servers
Server list - http://electrum.qc.to/
Assuming you can actually connect to the current server, you can get a list of other servers by:
$ electrum getservers Starting daemon [bitcoin.chroot.ro:50002:s] { "EAST.electrum.jdubya.info": { "s": "50002" }, "bitcoin.chroot.ro": { "s": "50002" }, ... }
Private Keys
dumpprivkey
WARNING: ALL your private keys are secret. Exposing a single private key can compromise your entire wallet! In particular, DO NOT use 'redeem private key' services proposed by third parties.
dumpprivkey - Dumps a specified private key for a given address Syntax: dumpprivkey <bitcoin address>
# electrum dumpprivkey 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr 5JNt2dqtkyceaNcRKbRzMsrTJZ38RMYKdzbyLjTHGbE5Euo957J
dumpprivkeys
Export a private key, for backup or import into another source. (addresses are generated from private keys)
WARNING: ALL your private keys are secret. Exposing a single private key can compromise your entire wallet! In particular, DO NOT use 'redeem private key' services proposed by third parties.
dumpprivkeys - dump all private keys
# electrum dumpprivkeys { "12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr": "5JNt2dqtkyceaNcRKbRzMsrTJZ38RMYKdzbyLjTHGbE5Euo957J", "12xD238UUzS5DHfsk6fendwC3RUbCZw2mE": "5J9cRMqQjiwxp5SZ7oM6Z1BX5u9Nnb4tEy5HHcy3nYSRdn6SnNX", ... }
importprivkey
Import a private key generated by another source (addresses are generated from private keys)
importprivkey - Import a private key Syntax: importprivkey <privatekey>
# electrum importprivkey KwHrykkGkgAZX4QRKpEJqzWAqDHWQM5VnC5Mw2ToEy6T8CQdsaNM [ "Keypair imported: ", "1HdcTEjkWN416GiMtqHFDWohGfU6yWTn2N" ]
NOTE: These addresses will not be auto included, if you ever rebuild your wallet!
Sign Message
"The "Sign Message" feature is an advanced functionality of the Bitcoin client which allows you to sign arbitrary messages to prove to somebody that you are (were) in control of the funds of some Bitcoin address. For a usage example see this answer. You normally don't need this feature for day-to-day use of Bitcoin." [2]
"The signing mechanism is a way of proving that a particular message was signed by the holder of an address' private key. A merchant could ask that you sign a message stating where you want your order shipped to, using one of the addresses your payment originated from.
You should sign a statement saying "I, Jane Doe (jane.doe@email.com) sent 1.23 BTC to Acme Corp at 12:34pm, 1st Jan 2012 in payment for product XYZ for delivery to 456 High Street, Anytown, USA".
You shouldn't sign a vague statement saying "yes, I sent that money; send the product to the address I emailed you", because anyone seeing a copy of that signed message can then pass that on to the merchant with his own postal address and get the product you paid for, in the same way as you wouldn't put your signature to a piece of paper saying "I agree to the above" where the above was left blank. The postal address part won't be signed, but perhaps the merchant won't care." [3]
- bitcoin qt - How does "Sign Message" work? - Bitcoin Stack Exchange - http://bitcoin.stackexchange.com/questions/3898/how-does-sign-message-work
- security - What are the safety guidelines for using the Sign Message feature? - Bitcoin Stack Exchange - http://bitcoin.stackexchange.com/questions/3337/what-are-the-safety-guidelines-for-using-the-sign-message-feature/3339#3339
signmessage
signmessage - Sign a message with a key Syntax: signmessage <address> <message> If you want to lead or end a message with spaces, or want double spaces inside the message make sure you quote the string. I.e. " Hello This is a weird String "
Huh? I guess if you want to attach something to an email to verify it was you who sent the money??
# electrum signmessage 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr bitmint_sign_test HJpIllY8N4OQXpHrICLuGg5pc9YDcS1B60i56RPnvrrNhC1ltncdQ7al4LjcyHeuBF8Yu/aQW4OOyuapFJZpOkg=
verifymessage
verifymessage - electrum Verifies a signature Syntax: verifymessage <address> <signature> <message> If you want to lead or end a message with spaces, or want double spaces inside the message make sure you quote the string. I.e. " Hello This is a weird String "
# electrum verifymessage 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr HJpIllY8N4OQXpHrICLuGg5pc9YDcS1B60i56RPnvrrNhC1ltncdQ7al4LjcyHeuBF8Yu/aQW4OOyuapFJZpOkg= bitmint_sign_test true # electrum verifymessage 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr HJpIllY8N4OQXpHrICLuGg5pc9YDcS1B60i56RPnvrrNhC1ltncdQ7al4LjcyHeuBF8Yu/aQW4OOyuapFJZpOkg= goatcheese false
help
help
# electrum help Usage: %prog [options] command [options] Options: -h, --help show this help message and exit -g GUI, --gui=GUI User interface: qt, lite, gtk or text -w WALLET_PATH, --wallet=WALLET_PATH wallet path (default: electrum.dat) -o, --offline remain offline -a, --all show all addresses -b, --balance show the balance of listed addresses -l, --labels show the labels of listed addresses -f TX_FEE, --fee=TX_FEE set tx fee -F FROM_ADDR, --fromaddr=FROM_ADDR set source address for payto/mktx. if it isn't in the wallet, it will ask for the private key unless supplied in the format public_key:private_key. It's not saved in the wallet. -c CHANGE_ADDR, --changeaddr=CHANGE_ADDR set the change address for payto/mktx. default is a spare address, or the source address if it's not in the wallet -s SERVER, --server=SERVER set server host:port:protocol, where protocol is t or h -p PROXY, --proxy=PROXY set proxy [type:]host[:port], where type is socks4,socks5 or http -v, --verbose show debugging information -P, --portable portable wallet -L LANGUAGE, --lang=LANGUAGE defaut language used in GUI -u, --usb Turn on support for hardware wallets (EXPERIMENTAL) Type 'electrum help <command>' to see the help for a specific command Type 'electrum --help' to see the list of options List of commands: contacts, create, createmultisig, createrawtransaction, decoderawtransaction, deseed, dumpprivkey, dumpprivkeys, freeze, getaddressbalance, getaddresshistory, getbalance, getconfig, getseed, help, history, importprivkey, listaddresses, listunspent, mktx, password, payto, prioritize, restore, sendrawtransaction, setconfig, setlabel, signmessage, signrawtransaction, unfreeze, unprioritize, validateaddress, verifymessage
Other
createmultisig
createmultisig - similar to bitcoind's command
Huh?
createrawtransaction
createrawtransaction - similar to bitcoind's command
Huh?
decoderawtransaction
decoderawtransaction - similar to bitcoind's command
Huh?
getaddresshistory
getaddresshistory - Return the transaction history of an address Syntax: getaddresshistory <address>
# electrum getaddresshistory 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr Connected to electrum.coinwallet.me:50002 [ [ "18249931dd0ac76102fd07214cde8e0b5993d42c42abd63e8ebdac3b85db6566", 266904 ] ]
sendrawtransaction
sendrawtransaction - Broadcasts a transaction to the network. Syntax: sendrawtransaction <tx in hexadecimal>
Huh?
signrawtransaction
signrawtransaction - similar to bitcoind's command
huh?
Wallet Create & Restore
Create:
# electrum create Password (hit return if you do not wish to encrypt your wallet): server (default:electrum.coinwallet.me): port (default:50002): protocol [t=tcp;h=http] (default:s): fee (default:0.0005):0 gap limit (default 5): 17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN 19VXhWB4j4yp3jLWqyLkedaDY4UJ8Pvs8K 189GtcmuBLbno2LM3XMX5yYbixga3Rrerd 1BWMeAWW1ZHw3JtmZyyN8PVSRciubRdBWA 1A75ZG5bABjFGTnfXgmQtNdsxYBhqvyyHg 1GxSUrwHDTwDBa6q9m48F5cJW2y35cGALi 1LRnTCuUcaxPirNbh4xzB6MnuKjDK3vQi1 1Kk6WTB35E613yq6S4YwWiDNEon8Y7de82 Your wallet generation seed is: e57ceca34c63e37b48002e1320d74017 Please keep it in a safe place; if you lose it, you will not be able to restore your wallet. Equivalently, your wallet seed can be stored and recovered with the following mnemonic code: "verse path laugh creator ship guilty serious tumble kingdom wonderful mutter lip" Wallet saved in '/root/.electrum/electrum.dat'
Restore: (with a few used addresses)
# electrum restore Password (hit return if you do not wish to encrypt your wallet): server (default:electrum.coinwallet.me): port (default:50002): protocol [t=tcp;h=http] (default:s): fee (default:0.0005):0 gap limit (default 5):10 seed:e57ceca34c63e37b48002e1320d74017 Recovering wallet... 17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN 19VXhWB4j4yp3jLWqyLkedaDY4UJ8Pvs8K 189GtcmuBLbno2LM3XMX5yYbixga3Rrerd 1BWMeAWW1ZHw3JtmZyyN8PVSRciubRdBWA 1A75ZG5bABjFGTnfXgmQtNdsxYBhqvyyHg 17aBaFQezCjw3bGk5edbe7FHqmwgY6jraH 1P5rCjyL4MrgMQwcierKK58AUvz5mELQDX 19jZyi7Jh4gwBxVTB3cUBuDUkbAKyPTGU7 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr 13uN81RX5HrniuC2rH8MPn2ZcrHvPuvey7 1GxSUrwHDTwDBa6q9m48F5cJW2y35cGALi 1LRnTCuUcaxPirNbh4xzB6MnuKjDK3vQi1 1Kk6WTB35E613yq6S4YwWiDNEon8Y7de82 12xD238UUzS5DHfsk6fendwC3RUbCZw2mE 1Lt6rW6t36ZKz9LUswCYACZoAnVh8ePCoE 1L4BFhzjZL5KFiLVdzgf4bT4ZtJtRA7LtK Recovery successful Wallet saved in '/root/.electrum/electrum.dat' Exception in thread Thread-3 (most likely raised during interpreter shutdown):Exception in thread Thread-2 (most likely raised during interpreter shutdown): Traceback (most recent call last): Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner File "/usr/local/lib/python2.7/dist-packages/electrum/wallet.py", line 1121, in run File "/usr/local/lib/python2.7/dist-packages/electrum/verifier.py", line 185, in run File "/usr/local/lib/python2.7/dist-packages/electrum/interface.py", line 192, in get_response File "/usr/local/lib/python2.7/dist-packages/electrum/verifier.py", line 238, in verify_chunk File "/usr/lib/python2.7/Queue.py", line 174, in get
Clearly there are bugs
Issues
AttributeError: 'NetworkProxy' object has no attribute 'send' - v1.9.8
$ electrum getbalance Exception in thread Thread-2: Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner self.run() File "/usr/local/lib/python2.7/dist-packages/Electrum-1.9.8-py2.7.egg/electrum/verifier.py", line 106, in run if self.network.send([ ('blockchain.transaction.get_merkle',[tx_hash, tx_height]) ], lambda i,r: self.queue.put(r)): AttributeError: 'NetworkProxy' object has no attribute 'send'
Solution:
- https://github.com/spesmilo/electrum/issues/645
- "rename do_send as send. fixes #645"
ImportError: cannot import name _ - 63c7a27d7e35b4ae13a5eeb2b673a841a8c25242
Updated to development version to get around "'NetworkProxy' object has no attribute 'send'" error and ran into this:
$ sudo python setup.py install Traceback (most recent call last): File "setup.py", line 13, in <module> util = imp.load_source('util', 'lib/util.py') File "lib/util.py", line 5, in <module> from i18n import _ ImportError: cannot import name _
I hacked this to get around it:
diff --git a/lib/util.py b/lib/util.py index 38b13f3..0e96350 100644 --- a/lib/util.py +++ b/lib/util.py @@ -2,13 +2,14 @@ import os, sys, re, json import platform import shutil from datetime import datetime -from i18n import _ +#from i18n import i18n class NotEnoughFunds(Exception): pass class InvalidPassword(Exception): def __str__(self): - return _("Incorrect password") + #return _("Incorrect password") + return "Incorrect password" class MyEncoder(json.JSONEncoder): def default(self, obj):