Ich verwende derzeit eine Ledger-Brieftasche und finde es mühsam, sie jedes Mal anzuschließen, wenn ich mein Guthaben überprüfen möchte.
Ich habe Zugriff auf meinen Master-XPUB-Schlüssel. Wie finde ich alle zugehörigen Adressen heraus? Gibt es eine Website, die diesen Dienst hostet und über eine API verfügt?
Ich habe online ein Skript gefunden, das dies tut, aber es ist in PHP geschrieben und ziemlich langsam. Ich suche etwas, das mit Python kompatibel ist.
Sie können Blockonomics verwenden, es ist ziemlich schnell. Es hat auch eine API, um das Gleichgewicht des gegebenen xpub zu geben.
Wenn Sie Ihr xpub nicht an den Server senden möchten, können Sie https://github.com/dan-da/hd-wallet-addrs verwenden . Dadurch wird der Zufallssaldo-API-Dienst für jede Adresse ausgewählt und eine HD-Walkthrough durchgeführt.
Beispielcode mit Blockr-API hinzugefügt, ruft Salden für 20 Adressen auf einmal ab, sollte ziemlich schnell sein
import pycoin.key
import sys
import os
os.environ["PYCOIN_NATIVE"]="openssl"
import requests
BATCH_SIZE = 20
BLOCKR_URL= "http://btc.blockr.io/api/v1/address/info"
def get_used_addresses(xpub, account_type):
xpub_subkey = xpub.subkey(account_type)
index = 0
addr_batch = []
output = []
while True:
addr = xpub_subkey.subkey(index).bitcoin_address()
addr_batch.append(addr)
if (index+1)%BATCH_SIZE==0:
results = requests.get("{}/{}".format(BLOCKR_URL, ",".join(addr_batch))).json()
addr_batch = []
used_addrs = [x["address"] for x in results['data'] if not x["is_unknown"]]
if (used_addrs):
output.extend(used_addrs)
else:
break
index += 1
return output
def main():
xpub = pycoin.key.Key.from_text(sys.argv[1])
result = []
result.extend(get_used_addresses(xpub, 0))
result.extend(get_used_addresses(xpub, 1))
print result
if __name__ == "__main__":
main()
ccpizza