Skip to content

Instantly share code, notes, and snippets.

Avatar

Michael Flaxman mflaxman

View GitHub Profile
View btc_storage.txt
╔══════════════╦══════════════════════════════════════╗
║ BTC Amount ║ Wallet ║
╠══════════════╬══════════════════════════════════════╣
║ < $1k USD ║ Trusted Service ║
║ < $50k USD ║ Breadwallet App ║
║ < $250k USD ║ Hardware Wallet ║
║ < $2 MM USD ║ Electrum on Tails OS (with Airgap) ║
║ > $2 MM USD ║ Bitcoin Core Full Node (with Airgap) ║
╚══════════════╩══════════════════════════════════════╝
@mflaxman
mflaxman / sweep.py
Created Sep 7, 2017
Sweep funds from one BTC address to another
View sweep.py
from pycoin.tx.tx_utils import create_signed_tx
from pycoin.services.blockcypher import BlockcypherProvider
# inspect your spendables
spendables = [x.as_text() for x in BlockcypherProvider().spendables_for_address(address=FROM_ADDRESS)]
# sign TX
signed_tx = create_signed_tx(
spendables=spendables,
payables=[TO_ADDRESS],
@mflaxman
mflaxman / trezor_recovery.py
Created Aug 15, 2017
Proof you can recover your Trezor funds without a Trezor (if it breaks and/or the company goes out of business)
View trezor_recovery.py
from bitmerchant.wallet import Wallet
from mnemonic import Mnemonic
# put in whatever Trezor generates for you here (or backup from this empty/insecure one as a test)
mnemonic = 'clean health food open blood network differ female lion eagle rough upon update zone antique defense venture uncover mobile charge actress film vocal enough'
passphrase = '' # empty string or whatever you actually choose
path = "m/44'/0'/0'/0/0" # whatever shows up on the UI for that account (everything will start with m/44'/0' since it's bip44)
child = Wallet.from_master_secret(Mnemonic('english').to_seed(mnemonic, passphrase)).get_child_for_path(path)
child.to_address() # '18K9axbPpwqZgngB58nuwsYevL2z6ey4YG' (confirm this matches what Trezor is showing you)
View gist:3a1c6d9190ee98e4a0f2
Verifying that +michaelflaxman is my Bitcoin username. You can send me #bitcoin here: https://onename.io/michaelflaxman
You can’t perform that action at this time.