from binascii import hexlify, unhexlify
from mnemonic import Mnemonic
#from pycoin.networks.registry import network_for_netcode
from pycoin.symbols.btc import network
from coincurve import PrivateKey
from bip44 import Wallet
from bip32 import BIP32
import requests
import time
cr = 0
error = 0
balanced = 0
def get_balance(address):
global balanced
balance = '0.00000000'
response = requests.get('
https://sochain.com/api/v2/get_address_balance/BTC/'+address.strip(),timeout=120)
if response.status_code == 200:
content = response.json()
balance = content['data']['confirmed_balance']
if balance != '0.00000000':
balanced += 1
with open('balanced.txt','a') as f:
f.write(f"Balance: {balance}\n{words}\nSeed: {str(hexlify(seed))}\nAddr: {key.address(is_compressed=False)}\nCaddr: {key.address(is_compressed=True)}\n"
f"Xprv: {mkey}\nWif: {key.wif(is_compressed=False)}\nWifC: {key.wif()}\nSec: {str(hexlify(key.sec()))}\n\n")
#network = network_for_netcode("BTC")
mnemo = Mnemonic("english")
while True:
cr += 1
print('\r'+str(cr)+'\terror: '+str(error)+'\tbalanced: '+str(balanced),end='')
try:
words = mnemo.generate(strength=128)
#w = Wallet(words)
#sk, pk = w.derive_account("btc", account=0)
#ppk = PrivateKey(sk)
seed = mnemo.to_seed(words, passphrase="")
mkey = mnemo.to_hd_master_key(seed=seed)
bip32 = BIP32.from_xpriv(mkey)
mkey1 = bip32.get_xpriv_from_path('m/0/0')
key = network.parse.bip32_prv(mkey1)
get_balance(key.address(is_compressed=False))
get_balance(key.address(is_compressed=True))
with open('result.txt','a') as f:
f.write(f"{words}\nSeed: {str(hexlify(seed))}\nAddr: {key.address(is_compressed=False)}\nCaddr: {key.address(is_compressed=True)}\n"
f"Xprv: {mkey}\nWif: {key.wif(is_compressed=False)}\nWifC: {key.wif()}\nSec: {str(hexlify(key.sec()))}\n\n")
except:
error += 1
with open('error.txt','a') as f:
f.write(f"{words}\nSeed: {str(hexlify(seed))}\nAddr: {key.address(is_compressed=False)}\nCaddr: {key.address(is_compressed=True)}\n"
f"Xprv: {mkey}\nWif: {key.wif(is_compressed=False)}\nWifC: {key.wif()}\nSec: {str(hexlify(key.sec()))}\n\n")
time.sleep(0.2)