Skip to content

Instantly share code, notes, and snippets.

@s4w3d0ff
Forked from CoinWhisperer/burn-btc
Last active November 13, 2015 03:33
Show Gist options
  • Save s4w3d0ff/e9ff25e3ce43ec351850 to your computer and use it in GitHub Desktop.
Save s4w3d0ff/e9ff25e3ce43ec351850 to your computer and use it in GitHub Desktop.
A simple python program to create Bitcoin (or Bitcoin based coins) burn addresses.

burnaddress.py

This program requires base58 (https://pypi.python.org/pypi/base58/0.2.1).

Simply run from command line:

python burnaddress.py 1BitcoinBurnAddressForYou

or

Import into a script:

import burnaddress
burnaddress.makeBurnAddress()
burnaddress.makeBurnAddress('1withl0ts0finvalid')

Validate bitcoin burn addresses at http://uncaptcha.net/bitcoin.php or by using a local wallet and the validateaddress <coinaddress> method.

#! /usr/bin/env python
import binascii
import random
from hashlib import sha256
from base58 import b58encode, b58decode
b58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
hh256 = lambda s: binascii.hexlify(sha256(sha256(s).digest()).digest())
b58ec = lambda s: b58encode(str(bytearray.fromhex(unicode(s))))
b58dc = lambda encoded, trim=0: b58decode(encoded)[:-trim]
pickRandom = lambda c: random.choice(list(c))
def makeBurnAddress(template ="1BTCBurnAddressl0ts of badlllllllllllllll"):
for c in template:
if c not in b58:
template = template.replace(c, pickRandom(b58))
if len(template) < 34: template = template + ((34 - len(template)) * pickRandom(b58))
else: template = template[:34]
return b58ec((binascii.hexlify(b58dc(template, trim=4))) + (hh256(b58dc(template, trim=4))[:8]))
if __name__ == "__main__":
import sys
if len(sys.argv) == 2: makeBurnAddress(sys.argv[1])
else: makeBurnAddress()
@s4w3d0ff
Copy link
Author

s4w3d0ff commented Nov 5, 2015

Now 2/3 more simple... :3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment