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."

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 pip2 install https://download.electrum.org/2.9.0/Electrum-2.9.0.tar.gz
 * 1) sudo pip install https://download.electrum.org/Electrum-1.9.8.tar.gz#md5=e3918fec0254267f08e41a1fb8691382
 * 2) sudo pip install https://download.electrum.org/2.6.4/Electrum-2.6.4.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/

Version
$ pip list | grep Electrum Electrum (1.9.8)

getbalance
ONLINE COMMAND

Return the balance of your wallet, or of one account in your wallet Syntax: getbalance [ ]

~# electrum getbalance Connected to electrum.coinwallet.me:50002 {   "confirmed": "0.03" }

In offline mode: {   "confirmed": "0.03" }
 * 1) electrum -o getbalance

Note: running this command will sync new addresses to match the gap_limit

getseed
REQUIRES PASSWORD

Print the generation seed of your wallet.

{   "hex": "e57ceca34c63e37b48002e1320d74017", "mnemonic": "verse path laugh creator ship guilty serious tumble kingdom wonderful mutter lip" }
 * 1) electrum getseed

deseed
WARNING: DANGEROUS!

deseed - Remove seed from wallet, creating a seedless, watching-only wallet.

create
Create a new wallet

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'
 * 1) electrum create

restore
Restore a wallet options: accepts a seed or master public key.

Wallet saved in '/home/kenneth/.electrum/wallets/default_wallet'
 * 1) electrum restore "some text words here"

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'
 * 1) electrum restore

password
Change your password

New password: Confirm:
 * 1) electrum password

QUESTION: How do you remove a password from a wallet, once you have added it?

history
ONLINE COMMAND

Returns the transaction history of your wallet

Note: Affected by labels

Note: Does not show dates! :-(

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" ]
 * 1) electrum history

Fields: ?date?, address/label, amount, balance

NOTE: There appears to be a bug that the dates won't show until after loading the GUI

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" ]
 * 1) electrum history

listaddresses
Returns your list of addresses. options: -a: show all addresses, including change addresses -l: include labels in results

[   "17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN", "19VXhWB4j4yp3jLWqyLkedaDY4UJ8Pvs8K", ...   "1L4BFhzjZL5KFiLVdzgf4bT4ZtJtRA7LtK" ]
 * 1) electrum listaddresses

With labels: [   {        "address": "17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN" },   {        "address": "19VXhWB4j4yp3jLWqyLkedaDY4UJ8Pvs8K", "label": "item1" }, ...
 * 1) electrum -l listaddresses

setlabel
Assign a label to an item Syntax: setlabel 


 * 1) electrum setlabel 17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN first

Remove label:
 * 1) electrum setlabel 17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN ''

getaddressbalance
ONLINE COMMAND

Return the balance of an address Syntax: getbalance

Connected to electrum.coinwallet.me:50002 {   "confirmed": "0.01" }
 * 1) electrum getaddressbalance 19VXhWB4j4yp3jLWqyLkedaDY4UJ8Pvs8K

validateaddress
Check that the address is valid Syntax: validateaddress

{   "address": "19VXhWB4j4yp3jLWqyLkedaDY4UJ8Pvs8K", "ismine": true, "isvalid": true, "pubkey": "0435104d8f67737d94fbf73b1e27e01fb8ba9fbdb506aa1375df60408a0c90fb6ced0a1cd2b7cb1ad31a60885b575cad37616d07d57e5398714dbeb8913f992b61" }
 * 1) electrum validateaddress 19VXhWB4j4yp3jLWqyLkedaDY4UJ8Pvs8K

listunspent
Returns a list of unspent inputs in your wallet.

[   {        "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" } ]
 * 1) electrum listunspent

contacts
Show your list of contacts

Huh? Show favorite contacts? (set with setconfig)

{   "16eFiVsWR5AQ87Evabja8kF1HZv5hE3zmk": "contact1", "17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN": "deepbit" }
 * 1) electrum contacts

payto
Create and broadcast a transaction. Syntax: payto [label] 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


 * 1) electrum payto 1AqipkayBadTbbjapoNJ4ZKpSyiN5nyZWr 0.02452 bitmit-2600


 * 1)  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 [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

true
 * 1) electrum freeze 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr

unfreeze
unfreeze - Unfreeze the funds at one of your wallet's address Syntax: unfreeze

true
 * 1) electrum unfreeze 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr

prioritize
prioritize - Coins at prioritized addresses are spent first. Syntax: prioritize

electrum unprioritize 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr

true
 * 1) electrum prioritize 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr

['12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr']
 * 1) electrum getconfig prioritized_addresses

unprioritize
Unprioritize an address Syntax: unprioritize

true
 * 1) electrum unprioritize 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr

[]
 * 1) electrum getconfig prioritized_addresses

getconfig
Return a configuration variable Syntax: getconfig 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

{0: {0: ['17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN', '19VXhWB4j4yp3jLWqyLkedaDY4UJ8Pvs8K', '189GtcmuBLbno2LM3XMX5yYbixga3Rrerd', '1BWMeAWW1ZHw3JtmZyyN8PVSRciubRdBWA', '1A75ZG5bABjFGTnfXgmQtNdsxYBhqvyyHg', '17aBaFQezCjw3bGk5edbe7FHqmwgY6jraH', '1P5rCjyL4MrgMQwcierKK58AUvz5mELQDX', '19jZyi7Jh4gwBxVTB3cUBuDUkbAKyPTGU7', '12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr', '13uN81RX5HrniuC2rH8MPn2ZcrHvPuvey7', '12xD238UUzS5DHfsk6fendwC3RUbCZw2mE', '1Lt6rW6t36ZKz9LUswCYACZoAnVh8ePCoE', '1L4BFhzjZL5KFiLVdzgf4bT4ZtJtRA7LtK'], 1: ['1GxSUrwHDTwDBa6q9m48F5cJW2y35cGALi', '1LRnTCuUcaxPirNbh4xzB6MnuKjDK3vQi1', '1Kk6WTB35E613yq6S4YwWiDNEon8Y7de82'], 'name': 'Main account'}}
 * 1) electrum getconfig accounts    #(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': []}
 * 1) electrum getconfig addr_history    #(output forced wrapped)

None
 * 1) electrum getconfig auto_cycle

None
 * 1) electrum getconfig column_widths

None
 * 1) electrum getconfig console-history

[]
 * 1) electrum getconfig contacts

[u'16eFiVsWR5AQ87Evabja8kF1HZv5hE3zmk', u'17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN']
 * 1) electrum getconfig contacts

50000
 * 1) electrum getconfig fee_per_kb

[]
 * 1) electrum getconfig frozen_addresses

5
 * 1) electrum getconfig gap_limit

{}
 * 1) electrum getconfig imported_keys

{'17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN': 'first', '19VXhWB4j4yp3jLWqyLkedaDY4UJ8Pvs8K': 'item1'}
 * 1) electrum getconfig labels

5ac4c655e0f0443b14199995c0a0fa527773ddc891d2fc93efd0f2b25ed71f4343bd2046178b7d54411c427f0035f96b0f68047311e6977149150213f0ef4846
 * 1) electrum getconfig master_public_key

0
 * 1) electrum getconfig num_zeros

['17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN']
 * 1) electrum getconfig prioritized_addresses

None
 * 1) electrum getconfig proxy

9vK4QX7WpFsB11PO9sQKY8f8RixZFEB1b+GtXlAwUjC8O85vFdxZmHLFuvsKUJkZ9CzAie8woBcS8/sF7ipgYA==
 * 1) electrum getconfig seed

4
 * 1) electrum getconfig seed_version

electrum.coinwallet.me:50002:s
 * 1) electrum getconfig server

{u'7b2861235bb2e912494999ca15d223d5bcf47c7f7d4d3187a520ab8c01e39362': '010000000112dd16d3ddee2ce9d9384a18c65f3bd4b95d648a57e31e5cee2 ad76f99f5eed5010000006c493046022100aa2f4f1fa84e565614cb79d5dc4fc4bafe9167f2fd63870c865fd052d4e4d2160221009173c0694ce19fa9f204495b5ae a86a7c33ea364c27462b59bcf545a76d8fa6b0121031046b1dc988daf65caa3879cd03b6f8710d1776c40b6556024a79c0528a6307fffffffff0280841e000000000 01976a9144e5978f1bd454aade7b881e3839bca27fa99a86188acc0450400000000001976a9140de8b58942b0488e1ee46767f3a2a934434a52f688ac00000000', u'd5eef5996fd72aee5c1ee3578a645db9d43b5fc6184a38d9e92ceeddd316dd12': '01000000017fd0651c7467b07604188bb90c7424908c7f6f1af7f178a31136ee91a119464a000000006a47304402205e602212d92147138026978c0670607293874 ffe3a1e96ba870fc7e49359e47502207369c85a3ee072ad8e84a6cac76f22520e11fffb05716e4c64c598f05454a701012103b9b84ec1b3e62dd523a6291fd2725b3 2fda24f22973f98962e430a1bfc44ead4ffffffff0240420f00000000001976a9145d26476442224149ddc2d7ddf4f28a8536b4da4488ac50f12200000000001976a 9140de8b58942b0488e1ee46767f3a2a934434a52f688ac00000000'}
 * 1) electrum getconfig transactions    #(output forced wrapped)

True
 * 1) electrum getconfig use_change

True
 * 1) electrum getconfig use_encryption

None
 * 1) electrum getconfig winpos-qt

setconfig
Set a configuration variable Syntax: setconfig 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


 * 1) electrum setconfig contacts "[u'16eFiVsWR5AQ87Evabja8kF1HZv5hE3zmk', u'17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN']"
 * 2) electrum setconfig contacts "['16eFiVsWR5AQ87Evabja8kF1HZv5hE3zmk', '17YYUy6V4zJwx8XBXUT9L7sj3P3kucBmGN']"

Set Server
Server list - http://electrum.qc.to/

electrum.coinwallet.me:50002:s
 * 1) electrum getconfig server

True
 * 1) electrum setconfig server electrum.coinwallet.me:50002:s

True
 * 1) electrum setconfig server bitcoin.epicinet.net:50002:s

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" }, ... }

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

5JNt2dqtkyceaNcRKbRzMsrTJZ38RMYKdzbyLjTHGbE5Euo957J
 * 1) electrum dumpprivkey 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr

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

{   "12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr": "5JNt2dqtkyceaNcRKbRzMsrTJZ38RMYKdzbyLjTHGbE5Euo957J", "12xD238UUzS5DHfsk6fendwC3RUbCZw2mE": "5J9cRMqQjiwxp5SZ7oM6Z1BX5u9Nnb4tEy5HHcy3nYSRdn6SnNX", ... }
 * 1) electrum dumpprivkeys

importprivkey
Import a private key generated by another source (addresses are generated from private keys)

importprivkey - Import a private key Syntax: importprivkey

[   "Keypair imported: ", "1HdcTEjkWN416GiMtqHFDWohGfU6yWTn2N" ]
 * 1) electrum importprivkey KwHrykkGkgAZX4QRKpEJqzWAqDHWQM5VnC5Mw2ToEy6T8CQdsaNM

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." 

"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."


 * 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 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??

HJpIllY8N4OQXpHrICLuGg5pc9YDcS1B60i56RPnvrrNhC1ltncdQ7al4LjcyHeuBF8Yu/aQW4OOyuapFJZpOkg=
 * 1) electrum signmessage 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr bitmint_sign_test

verifymessage
verifymessage - electrum Verifies a signature Syntax: verifymessage 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 "

true
 * 1) electrum verifymessage 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr HJpIllY8N4OQXpHrICLuGg5pc9YDcS1B60i56RPnvrrNhC1ltncdQ7al4LjcyHeuBF8Yu/aQW4OOyuapFJZpOkg= bitmint_sign_test

false
 * 1) electrum verifymessage 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr HJpIllY8N4OQXpHrICLuGg5pc9YDcS1B60i56RPnvrrNhC1ltncdQ7al4LjcyHeuBF8Yu/aQW4OOyuapFJZpOkg= goatcheese

help
Usage: %prog [options] command [options]
 * 1) electrum help

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 ' 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

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

Connected to electrum.coinwallet.me:50002 [   [        "18249931dd0ac76102fd07214cde8e0b5993d42c42abd63e8ebdac3b85db6566", 266904   ] ]
 * 1) electrum getaddresshistory 12oQAaTa6mRjnkbrgoCKVhYk37wtDsR6Zr

sendrawtransaction
sendrawtransaction - Broadcasts a transaction to the network. Syntax: sendrawtransaction

Huh?

signrawtransaction
signrawtransaction - similar to bitcoind's command

huh?

Wallet Create & Restore
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'
 * 1) electrum create

Restore: (with a few used addresses) 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
 * 1) electrum restore

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

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    util = imp.load_source('util', 'lib/util.py') File "lib/util.py", line 5, in    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):