├── 12or24wordschoice.py ├── LICENSE ├── PySimpleGUI ├── 80000.txt ├── MizoggFaceBW.png ├── Word_GUI.py ├── Word_GUI_Start.bat ├── icon.vbs ├── install_modules.bat ├── miz.ico ├── mizogg.png └── window.VBS ├── README.md ├── datawordsearch.py ├── puzzle.txt ├── words.txt ├── wordsearch.py └── wordsearch_ice ├── ice_secp256k1.dll ├── ice_secp256k1.so ├── numbers.txt ├── secp256k1.py ├── words.txt ├── wordsearch_ice.py └── wordsearch_ice_eth.py /12or24wordschoice.py: -------------------------------------------------------------------------------- 1 | # pip install bip32utils 2 | # pip install mnemonic 3 | # pip install rich 4 | import bip32utils 5 | import binascii 6 | import random 7 | from mnemonic import Mnemonic 8 | import codecs 9 | from rich.console import Console 10 | console = Console() 11 | console.clear() 12 | console.print(" [yellow]----------------------------------------------------[/yellow]") 13 | console.print("[yellow] Starting search... Loading btc.txt[/yellow]") 14 | console.print("[yellow] Mnemonic Bitcoin Generator...[/yellow]") 15 | console.print(" [yellow]----------------------------------------------------[/yellow]") 16 | console.print('[purple]Loading Bitcoin List . .. . .. . . . [/purple]') 17 | filename ='puzzle.txt' 18 | 19 | with open(filename) as f: 20 | line_count = 0 21 | for line in f: 22 | line != "\n" 23 | line_count += 1 24 | 25 | with open(filename) as file: 26 | add = file.read().split() 27 | add = set(add) 28 | 29 | console.print('[purple] Total Bitcoin Addresses Loaded and Checking : [/purple]',str (line_count)) 30 | console.print("[purple]Starting search... Please Wait [/purple]") 31 | console.print("==========================================================") 32 | divs = int(input(" 📋How Many Derivation Paths m/44'/0'/0'/0/0/ to m/44'/0'/0'/0/999/ ✍️ -> ")) 33 | 34 | def data_wallet(): 35 | for child in range(0,divs): 36 | bip32_root_key_obj = bip32utils.BIP32Key.fromEntropy(seed) 37 | bip32_child_key_obj = bip32_root_key_obj.ChildKey( 38 | 44 + bip32utils.BIP32_HARDEN 39 | ).ChildKey( 40 | 0 + bip32utils.BIP32_HARDEN 41 | ).ChildKey( 42 | 0 + bip32utils.BIP32_HARDEN 43 | ).ChildKey(0).ChildKey(child) 44 | data.append({ 45 | 'bip32_root_key': bip32_root_key_obj.ExtendedKey(), 46 | 'bip32_extended_private_key': bip32_child_key_obj.ExtendedKey(), 47 | 'path': f"m/44'/0'/0'/0/{child}", 48 | 'address': bip32_child_key_obj.Address(), 49 | 'publickey': binascii.hexlify(bip32_child_key_obj.PublicKey()).decode(), 50 | 'privatekey': bip32_child_key_obj.WalletImportFormat(), 51 | }) 52 | 53 | 54 | wordlist = ["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake", "call", "calm", "camera", "camp", "can", "canal", "cancel", "candy", "cannon", "canoe", "canvas", "canyon", "capable", "capital", "captain", "car", "carbon", "card", "cargo", "carpet", "carry", "cart", "case", "cash", "casino", "castle", "casual", "cat", "catalog", "catch", "category", "cattle", "caught", "cause", "caution", "cave", "ceiling", "celery", "cement", "census", "century", "cereal", "certain", "chair", "chalk", "champion", "change", "chaos", "chapter", "charge", "chase", "chat", "cheap", "check", "cheese", "chef", "cherry", "chest", "chicken", "chief", "child", "chimney", "choice", "choose", "chronic", "chuckle", "chunk", "churn", "cigar", "cinnamon", "circle", "citizen", "city", "civil", "claim", "clap", "clarify", "claw", "clay", "clean", "clerk", "clever", "click", "client", "cliff", "climb", "clinic", "clip", "clock", "clog", "close", "cloth", "cloud", "clown", "club", "clump", "cluster", "clutch", "coach", "coast", "coconut", "code", "coffee", "coil", "coin", "collect", "color", "column", "combine", "come", "comfort", "comic", "common", "company", "concert", "conduct", "confirm", "congress", "connect", "consider", "control", "convince", "cook", "cool", "copper", "copy", "coral", "core", "corn", "correct", "cost", "cotton", "couch", "country", "couple", "course", "cousin", "cover", "coyote", "crack", "cradle", "craft", "cram", "crane", "crash", "crater", "crawl", "crazy", "cream", "credit", "creek", "crew", "cricket", "crime", "crisp", "critic", "crop", "cross", "crouch", "crowd", "crucial", "cruel", "cruise", "crumble", "crunch", "crush", "cry", "crystal", "cube", "culture", "cup", "cupboard", "curious", "current", "curtain", "curve", "cushion", "custom", "cute", "cycle", "dad", "damage", "damp", "dance", "danger", "daring", "dash", "daughter", "dawn", "day", "deal", "debate", "debris", "decade", "december", "decide", "decline", "decorate", "decrease", "deer", "defense", "define", "defy", "degree", "delay", "deliver", "demand", "demise", "denial", "dentist", "deny", "depart", "depend", "deposit", "depth", "deputy", "derive", "describe", "desert", "design", "desk", "despair", "destroy", "detail", "detect", "develop", "device", "devote", "diagram", "dial", "diamond", "diary", "dice", "diesel", "diet", "differ", "digital", "dignity", "dilemma", "dinner", "dinosaur", "direct", "dirt", "disagree", "discover", "disease", "dish", "dismiss", "disorder", "display", "distance", "divert", "divide", "divorce", "dizzy", "doctor", "document", "dog", "doll", "dolphin", "domain", "donate", "donkey", "donor", "door", "dose", "double", "dove", "draft", "dragon", "drama", "drastic", "draw", "dream", "dress", "drift", "drill", "drink", "drip", "drive", "drop", "drum", "dry", "duck", "dumb", "dune", "during", "dust", "dutch", "duty", "dwarf", "dynamic", "eager", "eagle", "early", "earn", "earth", "easily", "east", "easy", "echo", "ecology", "economy", "edge", "edit", "educate", "effort", "egg", "eight", "either", "elbow", "elder", "electric", "elegant", "element", "elephant", "elevator", "elite", "else", "embark", "embody", "embrace", "emerge", "emotion", "employ", "empower", "empty", "enable", "enact", "end", "endless", "endorse", "enemy", "energy", "enforce", "engage", "engine", "enhance", "enjoy", "enlist", "enough", "enrich", "enroll", "ensure", "enter", "entire", "entry", "envelope", "episode", "equal", "equip", "era", "erase", "erode", "erosion", "error", "erupt", "escape", "essay", "essence", "estate", "eternal", "ethics", "evidence", "evil", "evoke", "evolve", "exact", "example", "excess", "exchange", "excite", "exclude", "excuse", "execute", "exercise", "exhaust", "exhibit", "exile", "exist", "exit", "exotic", "expand", "expect", "expire", "explain", "expose", "express", "extend", "extra", "eye", "eyebrow", "fabric", "face", "faculty", "fade", "faint", "faith", "fall", "false", "fame", "family", "famous", "fan", "fancy", "fantasy", "farm", "fashion", "fat", "fatal", "father", "fatigue", "fault", "favorite", "feature", "february", "federal", "fee", "feed", "feel", "female", "fence", "festival", "fetch", "fever", "few", "fiber", "fiction", "field", "figure", "file", "film", "filter", "final", "find", "fine", "finger", "finish", "fire", "firm", "first", "fiscal", "fish", "fit", "fitness", "fix", "flag", "flame", "flash", "flat", "flavor", "flee", "flight", "flip", "float", "flock", "floor", "flower", "fluid", "flush", "fly", "foam", "focus", "fog", "foil", "fold", "follow", "food", "foot", "force", "forest", "forget", "fork", "fortune", "forum", "forward", "fossil", "foster", "found", "fox", "fragile", "frame", "frequent", "fresh", "friend", "fringe", "frog", "front", "frost", "frown", "frozen", "fruit", "fuel", "fun", "funny", "furnace", "fury", "future", "gadget", "gain", "galaxy", "gallery", "game", "gap", "garage", "garbage", "garden", "garlic", "garment", "gas", "gasp", "gate", "gather", "gauge", "gaze", "general", "genius", "genre", "gentle", "genuine", "gesture", "ghost", "giant", "gift", "giggle", "ginger", "giraffe", "girl", "give", "glad", "glance", "glare", "glass", "glide", "glimpse", "globe", "gloom", "glory", "glove", "glow", "glue", "goat", "goddess", "gold", "good", "goose", "gorilla", "gospel", "gossip", "govern", "gown", "grab", "grace", "grain", "grant", "grape", "grass", "gravity", "great", "green", "grid", "grief", "grit", "grocery", "group", "grow", "grunt", "guard", "guess", "guide", "guilt", "guitar", "gun", "gym", "habit", "hair", "half", "hammer", "hamster", "hand", "happy", "harbor", "hard", "harsh", "harvest", "hat", "have", "hawk", "hazard", "head", "health", "heart", "heavy", "hedgehog", "height", "hello", "helmet", "help", "hen", "hero", "hidden", "high", "hill", "hint", "hip", "hire", "history", "hobby", "hockey", "hold", "hole", "holiday", "hollow", "home", "honey", "hood", "hope", "horn", "horror", "horse", "hospital", "host", "hotel", "hour", "hover", "hub", "huge", "human", "humble", "humor", "hundred", "hungry", "hunt", "hurdle", "hurry", "hurt", "husband", "hybrid", "ice", "icon", "idea", "identify", "idle", "ignore", "ill", "illegal", "illness", "image", "imitate", "immense", "immune", "impact", "impose", "improve", "impulse", "inch", "include", "income", "increase", "index", "indicate", "indoor", "industry", "infant", "inflict", "inform", "inhale", "inherit", "initial", "inject", "injury", "inmate", "inner", "innocent", "input", "inquiry", "insane", "insect", "inside", "inspire", "install", "intact", "interest", "into", "invest", "invite", "involve", "iron", "island", "isolate", "issue", "item", "ivory", "jacket", "jaguar", "jar", "jazz", "jealous", "jeans", "jelly", "jewel", "job", "join", "joke", "journey", "joy", "judge", "juice", "jump", "jungle", "junior", "junk", "just", "kangaroo", "keen", "keep", "ketchup", "key", "kick", "kid", "kidney", "kind", "kingdom", "kiss", "kit", "kitchen", "kite", "kitten", "kiwi", "knee", "knife", "knock", "know", "lab", "label", "labor", "ladder", "lady", "lake", "lamp", "language", "laptop", "large", "later", "latin", "laugh", "laundry", "lava", "law", "lawn", "lawsuit", "layer", "lazy", "leader", "leaf", "learn", "leave", "lecture", "left", "leg", "legal", "legend", "leisure", "lemon", "lend", "length", "lens", "leopard", "lesson", "letter", "level", "liar", "liberty", "library", "license", "life", "lift", "light", "like", "limb", "limit", "link", "lion", "liquid", "list", "little", "live", "lizard", "load", "loan", "lobster", "local", "lock", "logic", "lonely", "long", "loop", "lottery", "loud", "lounge", "love", "loyal", "lucky", "luggage", "lumber", "lunar", "lunch", "luxury", "lyrics", "machine", "mad", "magic", "magnet", "maid", "mail", "main", "major", "make", "mammal", "man", "manage", "mandate", "mango", "mansion", "manual", "maple", "marble", "march", "margin", "marine", "market", "marriage", "mask", "mass", "master", "match", "material", "math", "matrix", "matter", "maximum", "maze", "meadow", "mean", "measure", "meat", "mechanic", "medal", "media", "melody", "melt", "member", "memory", "mention", "menu", "mercy", "merge", "merit", "merry", "mesh", "message", "metal", "method", "middle", "midnight", "milk", "million", "mimic", "mind", "minimum", "minor", "minute", "miracle", "mirror", "misery", "miss", "mistake", "mix", "mixed", "mixture", "mobile", "model", "modify", "mom", "moment", "monitor", "monkey", "monster", "month", "moon", "moral", "more", "morning", "mosquito", "mother", "motion", "motor", "mountain", "mouse", "move", "movie", "much", "muffin", "mule", "multiply", "muscle", "museum", "mushroom", "music", "must", "mutual", "myself", "mystery", "myth", "naive", "name", "napkin", "narrow", "nasty", "nation", "nature", "near", "neck", "need", "negative", "neglect", "neither", "nephew", "nerve", "nest", "net", "network", "neutral", "never", "news", "next", "nice", "night", "noble", "noise", "nominee", "noodle", "normal", "north", "nose", "notable", "note", "nothing", "notice", "novel", "now", "nuclear", "number", "nurse", "nut", "oak", "obey", "object", "oblige", "obscure", "observe", "obtain", "obvious", "occur", "ocean", "october", "odor", "off", "offer", "office", "often", "oil", "okay", "old", "olive", "olympic", "omit", "once", "one", "onion", "online", "only", "open", "opera", "opinion", "oppose", "option", "orange", "orbit", "orchard", "order", "ordinary", "organ", "orient", "original", "orphan", "ostrich", "other", "outdoor", "outer", "output", "outside", "oval", "oven", "over", "own", "owner", "oxygen", "oyster", "ozone", "pact", "paddle", "page", "pair", "palace", "palm", "panda", "panel", "panic", "panther", "paper", "parade", "parent", "park", "parrot", "party", "pass", "patch", "path", "patient", "patrol", "pattern", "pause", "pave", "payment", "peace", "peanut", "pear", "peasant", "pelican", "pen", "penalty", "pencil", "people", "pepper", "perfect", "permit", "person", "pet", "phone", "photo", "phrase", "physical", "piano", "picnic", "picture", "piece", "pig", "pigeon", "pill", "pilot", "pink", "pioneer", "pipe", "pistol", "pitch", "pizza", "place", "planet", "plastic", "plate", "play", "please", "pledge", "pluck", "plug", "plunge", "poem", "poet", "point", "polar", "pole", "police", "pond", "pony", "pool", "popular", "portion", "position", "possible", "post", "potato", "pottery", "poverty", "powder", "power", "practice", "praise", "predict", "prefer", "prepare", "present", "pretty", "prevent", "price", "pride", "primary", "print", "priority", "prison", "private", "prize", "problem", "process", "produce", "profit", "program", "project", "promote", "proof", "property", "prosper", "protect", "proud", "provide", "public", "pudding", "pull", "pulp", "pulse", "pumpkin", "punch", "pupil", "puppy", "purchase", "purity", "purpose", "purse", "push", "put", "puzzle", "pyramid", "quality", "quantum", "quarter", "question", "quick", "quit", "quiz", "quote", "rabbit", "raccoon", "race", "rack", "radar", "radio", "rail", "rain", "raise", "rally", "ramp", "ranch", "random", "range", "rapid", "rare", "rate", "rather", "raven", "raw", "razor", "ready", "real", "reason", "rebel", "rebuild", "recall", "receive", "recipe", "record", "recycle", "reduce", "reflect", "reform", "refuse", "region", "regret", "regular", "reject", "relax", "release", "relief", "rely", "remain", "remember", "remind", "remove", "render", "renew", "rent", "reopen", "repair", "repeat", "replace", "report", "require", "rescue", "resemble", "resist", "resource", "response", "result", "retire", "retreat", "return", "reunion", "reveal", "review", "reward", "rhythm", "rib", "ribbon", "rice", "rich", "ride", "ridge", "rifle", "right", "rigid", "ring", "riot", "ripple", "risk", "ritual", "rival", "river", "road", "roast", "robot", "robust", "rocket", "romance", "roof", "rookie", "room", "rose", "rotate", "rough", "round", "route", "royal", "rubber", "rude", "rug", "rule", "run", "runway", "rural", "sad", "saddle", "sadness", "safe", "sail", "salad", "salmon", "salon", "salt", "salute", "same", "sample", "sand", "satisfy", "satoshi", "sauce", "sausage", "save", "say", "scale", "scan", "scare", "scatter", "scene", "scheme", "school", "science", "scissors", "scorpion", "scout", "scrap", "screen", "script", "scrub", "sea", "search", "season", "seat", "second", "secret", "section", "security", "seed", "seek", "segment", "select", "sell", "seminar", "senior", "sense", "sentence", "series", "service", "session", "settle", "setup", "seven", "shadow", "shaft", "shallow", "share", "shed", "shell", "sheriff", "shield", "shift", "shine", "ship", "shiver", "shock", "shoe", "shoot", "shop", "short", "shoulder", "shove", "shrimp", "shrug", "shuffle", "shy", "sibling", "sick", "side", "siege", "sight", "sign", "silent", "silk", "silly", "silver", "similar", "simple", "since", "sing", "siren", "sister", "situate", "six", "size", "skate", "sketch", "ski", "skill", "skin", "skirt", "skull", "slab", "slam", "sleep", "slender", "slice", "slide", "slight", "slim", "slogan", "slot", "slow", "slush", "small", "smart", "smile", "smoke", "smooth", "snack", "snake", "snap", "sniff", "snow", "soap", "soccer", "social", "sock", "soda", "soft", "solar", "soldier", "solid", "solution", "solve", "someone", "song", "soon", "sorry", "sort", "soul", "sound", "soup", "source", "south", "space", "spare", "spatial", "spawn", "speak", "special", "speed", "spell", "spend", "sphere", "spice", "spider", "spike", "spin", "spirit", "split", "spoil", "sponsor", "spoon", "sport", "spot", "spray", "spread", "spring", "spy", "square", "squeeze", "squirrel", "stable", "stadium", "staff", "stage", "stairs", "stamp", "stand", "start", "state", "stay", "steak", "steel", "stem", "step", "stereo", "stick", "still", "sting", "stock", "stomach", "stone", "stool", "story", "stove", "strategy", "street", "strike", "strong", "struggle", "student", "stuff", "stumble", "style", "subject", "submit", "subway", "success", "such", "sudden", "suffer", "sugar", "suggest", "suit", "summer", "sun", "sunny", "sunset", "super", "supply", "supreme", "sure", "surface", "surge", "surprise", "surround", "survey", "suspect", "sustain", "swallow", "swamp", "swap", "swarm", "swear", "sweet", "swift", "swim", "swing", "switch", "sword", "symbol", "symptom", "syrup", "system", "table", "tackle", "tag", "tail", "talent", "talk", "tank", "tape", "target", "task", "taste", "tattoo", "taxi", "teach", "team", "tell", "ten", "tenant", "tennis", "tent", "term", "test", "text", "thank", "that", "theme", "then", "theory", "there", "they", "thing", "this", "thought", "three", "thrive", "throw", "thumb", "thunder", "ticket", "tide", "tiger", "tilt", "timber", "time", "tiny", "tip", "tired", "tissue", "title", "toast", "tobacco", "today", "toddler", "toe", "together", "toilet", "token", "tomato", "tomorrow", "tone", "tongue", "tonight", "tool", "tooth", "top", "topic", "topple", "torch", "tornado", "tortoise", "toss", "total", "tourist", "toward", "tower", "town", "toy", "track", "trade", "traffic", "tragic", "train", "transfer", "trap", "trash", "travel", "tray", "treat", "tree", "trend", "trial", "tribe", "trick", "trigger", "trim", "trip", "trophy", "trouble", "truck", "true", "truly", "trumpet", "trust", "truth", "try", "tube", "tuition", "tumble", "tuna", "tunnel", "turkey", "turn", "turtle", "twelve", "twenty", "twice", "twin", "twist", "two", "type", "typical", "ugly", "umbrella", "unable", "unaware", "uncle", "uncover", "under", "undo", "unfair", "unfold", "unhappy", "uniform", "unique", "unit", "universe", "unknown", "unlock", "until", "unusual", "unveil", "update", "upgrade", "uphold", "upon", "upper", "upset", "urban", "urge", "usage", "use", "used", "useful", "useless", "usual", "utility", "vacant", "vacuum", "vague", "valid", "valley", "valve", "van", "vanish", "vapor", "various", "vast", "vault", "vehicle", "velvet", "vendor", "venture", "venue", "verb", "verify", "version", "very", "vessel", "veteran", "viable", "vibrant", "vicious", "victory", "video", "view", "village", "vintage", "violin", "virtual", "virus", "visa", "visit", "visual", "vital", "vivid", "vocal", "voice", "void", "volcano", "volume", "vote", "voyage", "wage", "wagon", "wait", "walk", "wall", "walnut", "want", "warfare", "warm", "warrior", "wash", "wasp", "waste", "water", "wave", "way", "wealth", "weapon", "wear", "weasel", "weather", "web", "wedding", "weekend", "weird", "welcome", "west", "wet", "whale", "what", "wheat", "wheel", "when", "where", "whip", "whisper", "wide", "width", "wife", "wild", "will", "win", "window", "wine", "wing", "wink", "winner", "winter", "wire", "wisdom", "wise", "wish", "witness", "wolf", "woman", "wonder", "wood", "wool", "word", "work", "world", "worry", "worth", "wrap", "wreck", "wrestle", "wrist", "write", "wrong", "yard", "year", "yellow", "you", "young", "youth", "zebra", "zero", "zone", "zoo"] 55 | 56 | const = "m/44'/0'/0'/0/" 57 | count = 0 58 | total = 0 59 | data = [] 60 | while True: 61 | data = [] 62 | c1 = random.choice(wordlist) 63 | c2 = random.choice(wordlist) 64 | c3 = random.choice(wordlist) 65 | c4 = random.choice(wordlist) 66 | c5 = random.choice(wordlist) 67 | c6 = random.choice(wordlist) 68 | c7 = random.choice(wordlist) 69 | c8 = random.choice(wordlist) 70 | c9 = random.choice(wordlist) 71 | c10 = random.choice(wordlist) 72 | c11 = random.choice(wordlist) 73 | c12 = random.choice(wordlist) 74 | c13 = random.choice(wordlist) 75 | c14 = random.choice(wordlist) 76 | c15 = random.choice(wordlist) 77 | c16 = random.choice(wordlist) 78 | c17 = random.choice(wordlist) 79 | c18 = random.choice(wordlist) 80 | c19 = random.choice(wordlist) 81 | c20 = random.choice(wordlist) 82 | c21 = random.choice(wordlist) 83 | c22 = random.choice(wordlist) 84 | c23 = random.choice(wordlist) 85 | c24 = random.choice(wordlist) 86 | mnemo = Mnemonic("english") 87 | mnemonic_words = "".join(c1+' '+c2+' '+c3+' '+c4+' '+c5+' '+c6+' '+c7+' '+c8+' '+c9+' '+c10+' '+c11+' '+c12) 88 | #mnemonic_words = "".join(c1+' '+c2+' '+c3+' '+c4+' '+c5+' '+c6+' '+c7+' '+c8+' '+c9+' '+c10+' '+c11+' '+c12+' '+c13+' '+c14+' '+c15+' '+c16+' '+c17+' '+c18+' '+c19+' '+c20+' '+c21+' '+c22+' '+c23+' '+c24) 89 | seed = mnemo.to_seed(mnemonic_words, passphrase="") 90 | data_wallet() 91 | 92 | 93 | count += 1 94 | total += divs 95 | 96 | for target_wallet in data: 97 | address = target_wallet['address'] 98 | if address in add: 99 | print('\nMatch Found') 100 | console.print('[green]\nmnemonic_words : [/green]', mnemonic_words) 101 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path'], '[green] : Bitcoin Address : [/green]', target_wallet['address']) 102 | console.print('[green]Privatekey WIF : [/green]', target_wallet['privatekey']) 103 | with open("winner.txt", "a") as f: 104 | f.write(f"""\nMnemonic_words: {mnemonic_words} 105 | Derivation Path: {target_wallet['path']} 106 | Privatekey WIF: {target_wallet['privatekey']} 107 | Public Address Bitcoin: {target_wallet['address']} 108 | =====Made by mizogg.co.uk Donations 3P7PZLbwSt2bqUMsHF9xDsaNKhafiGuWDB =====""") 109 | else: 110 | console.print('[red] [' + str(count) + '] ------------------------[/red]') 111 | console.print('[red]🔁 Total Checked 👇[' + str(total) + '] [/red]') 112 | console.print('[red]\nmnemonic_words : [/red]', mnemonic_words) 113 | for bad_wallet in data: 114 | console.print('[purple]Derivation Path : [/purple]', bad_wallet['path'], '[red] : Bitcoin Address : [/red]', bad_wallet['address']) 115 | console.print('[red]Privatekey WIF : [/red]', bad_wallet['privatekey']) -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Mizogg 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /PySimpleGUI/MizoggFaceBW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mizogg/python-mnemonic/61a8b68576f644f7f07291ceeae6c4f2d7b6c21f/PySimpleGUI/MizoggFaceBW.png -------------------------------------------------------------------------------- /PySimpleGUI/Word_GUI.py: -------------------------------------------------------------------------------- 1 | import bip32utils, os, webbrowser, datetime, smtplib 2 | import PySimpleGUI as sg 3 | from json import (load as jsonload, dump as jsondump) 4 | from os import path 5 | from mnemonic import Mnemonic 6 | gmail_user = 'YourEmail@gmail.com' 7 | gmail_password = 'YourPassword' 8 | start_time = datetime.datetime.now() 9 | 10 | filename ='80000.txt' 11 | 12 | with open(filename) as f: 13 | line_count = 0 14 | for line in f: 15 | line != "\n" 16 | line_count += 1 17 | with open(filename) as file: 18 | add = file.read().split() 19 | add = set(add) 20 | 21 | start_time = datetime.datetime.now() 22 | 23 | 24 | SETTINGS_FILE = path.join(path.dirname(__file__), r'settings_file.cfg') 25 | DEFAULT_SETTINGS = {'theme': sg.theme()} 26 | SETTINGS_KEYS_TO_ELEMENT_KEYS = {'theme': '-THEME-'} 27 | 28 | def load_settings(settings_file, default_settings): 29 | try: 30 | with open(settings_file, 'r') as f: 31 | settings = jsonload(f) 32 | except Exception as e: 33 | sg.popup_quick_message(f'exception {e}', 'No settings file found... will create one for you', keep_on_top=True, background_color='red', text_color='white') 34 | settings = default_settings 35 | save_settings(settings_file, settings, None) 36 | return settings 37 | 38 | 39 | def save_settings(settings_file, settings, values): 40 | if values: 41 | for key in SETTINGS_KEYS_TO_ELEMENT_KEYS: 42 | try: 43 | settings[key] = values[SETTINGS_KEYS_TO_ELEMENT_KEYS[key]] 44 | except Exception as e: 45 | print(f'Problem updating settings from window values. Key = {key}') 46 | 47 | with open(settings_file, 'w') as f: 48 | jsondump(settings, f) 49 | 50 | sg.popup('Settings saved') 51 | 52 | def create_settings_window(settings): 53 | sg.theme(settings['theme']) 54 | 55 | def TextLabel(text): return sg.Text(text+':', justification='r', size=(15,1)) 56 | 57 | layout = [ [sg.Text('Settings', font='Any 15')], 58 | [TextLabel('Theme'),sg.Combo(sg.theme_list(), size=(20, 20), key='-THEME-')], 59 | [sg.Button('Save'), sg.Button('Exit')] ] 60 | 61 | window = sg.Window('Settings', layout, keep_on_top=True, finalize=True) 62 | 63 | for key in SETTINGS_KEYS_TO_ELEMENT_KEYS: 64 | try: 65 | window[SETTINGS_KEYS_TO_ELEMENT_KEYS[key]].update(value=settings[key]) 66 | except Exception as e: 67 | print(f'Problem updating PySimpleGUI window from settings. Key = {key}') 68 | 69 | return window 70 | 71 | 72 | def create_main_window(settings): 73 | sg.theme(settings['theme']) 74 | 75 | menu_def = [['&Menu', ['&Settings', 'E&xit']]] 76 | wordlenght = ['128','192','256'] 77 | divlenght = ['1','2','3','4','5','10','25','50','100','500','1000'] 78 | layout = [[sg.Menu(menu_def)], 79 | [sg.Text('🐍 🐍 Mnemonic code for generating deterministic keys, BIP39 Bitcoin Wallet Scanner Off-Line Made by Mizogg in PySimpleGUI 🐍 🐍', size=(40,3), font=('Comic sans ms', 14)), 80 | sg.Button('', key='mizogg', size=(10,1), font=('Helvetica', 10), button_color=(sg.theme_background_color(), sg.theme_background_color()), 81 | image_filename='mizogg.png', image_size=(400, 80), image_subsample=1, border_width=0)], 82 | [sg.Text('Total Bitcoin Addresses Looking for : ', size=(35,1), font=('Comic sans ms', 15)), 83 | sg.Text(line_count, font=('Comic sans ms', 15) , size=(10,1)), 84 | sg.Button('', key='face', size=(10,1), font=('Helvetica', 30), button_color=(sg.theme_background_color(), sg.theme_background_color()), 85 | image_filename='MizoggFaceBW.png', image_size=(140, 80), image_subsample=1, border_width=0)], 86 | [sg.Text('HOW MANY WORDS 12=128 18=192 24=256 -> ', size=(38,1), font=('Comic sans ms', 13)), 87 | sg.Combo(wordlenght, size=(6,1), key='wordstart', background_color='green', text_color='white', font=('Comic sans ms', 13)), sg.Text('', size=(6,1))], 88 | [sg.Text('How Many Derivation Paths ✍️ -> ', size=(38,1), font=('Comic sans ms', 13)), 89 | sg.Combo(divlenght, size=(6,1), key='divs', background_color='green', text_color='white', font=('Comic sans ms', 13)), sg.Text('', size=(6,1)), 90 | sg.Button('Start/Stop', font=('Comic sans ms', 14))], 91 | [sg.Text('')], 92 | [sg.Output(size=(90, 16), font=('Comic sans ms', 11), key='out')]] 93 | 94 | return sg.Window('MIZOGG WordChoice.py', 95 | layout=layout, 96 | default_element_size=(8,1)) 97 | 98 | 99 | def main(): 100 | window, settings = None, load_settings(SETTINGS_FILE, DEFAULT_SETTINGS ) 101 | generator = False 102 | while True: 103 | if window is None: 104 | window = create_main_window(settings) 105 | event, values = window.Read(timeout=10) 106 | if event in (None, 'Exit'): 107 | break 108 | elif event == 'Start/Stop': 109 | generator = not generator 110 | def data_wallet(): 111 | for child in range(0,divs): 112 | bip32_root_key_obj = bip32utils.BIP32Key.fromEntropy(seed) 113 | bip32_child_key_obj = bip32_root_key_obj.ChildKey( 114 | 44 + bip32utils.BIP32_HARDEN 115 | ).ChildKey( 116 | 0 + bip32utils.BIP32_HARDEN 117 | ).ChildKey( 118 | 0 + bip32utils.BIP32_HARDEN 119 | ).ChildKey(0).ChildKey(child) 120 | data.append({ 121 | 'path': f"m/44'/0'/0'/0/{child}", 122 | 'address': bip32_child_key_obj.Address(), 123 | 'privatekey': bip32_child_key_obj.WalletImportFormat(), 124 | }) 125 | count=0 126 | total=0 127 | divs = int(values['divs']) 128 | 129 | if generator: 130 | data = [] 131 | count += 1 132 | total += divs 133 | mnemo = Mnemonic("english") 134 | mnemonic_words = mnemo.generate(strength=int(values['wordstart'])) # 128 12words / 256 24words / randomwords 135 | #mnemonic_words = 'assist air special hunt slogan daughter spy reunion winter boost alpha among steak space father situate ahead floor door prison aware demand cross shine' # 17MdcGxXXFWuRPBpd4NDr2vWTCwmAtJrHK 136 | seed = mnemo.to_seed(mnemonic_words, passphrase="") 137 | data_wallet() 138 | for target_wallet in data: 139 | address = target_wallet['address'] 140 | if address in add: 141 | print('\nMatch Found') 142 | print('💸💰🤩💸💰🤩💸💰🤩💸💰🤩💸💰🤩💸💰🤩💸💰🤩💸💰🤩💸💰🤩💸💰🤩💸💰🤩💸💰🤩💸💰🤩💸💰') 143 | print('\nmnemonic_words : ', mnemonic_words) 144 | print('Derivation Path : ', target_wallet['path'], ' : Bitcoin Address : ', target_wallet['address']) 145 | print('Privatekey WIF : ', target_wallet['privatekey']) 146 | with open("winner.txt", "a") as f: 147 | f.write(f"""\nMnemonic_words: {mnemonic_words} 148 | Derivation Path: {target_wallet['path']} 149 | Privatekey WIF: {target_wallet['privatekey']} 150 | Public Address Bitcoin: {target_wallet['address']} 151 | =====Made by mizogg.co.uk Donations 3P7PZLbwSt2bqUMsHF9xDsaNKhafiGuWDB =====""") 152 | sent_from = gmail_user 153 | to = ['YourEmail@gmail.com'] 154 | subject = ['OMG Super Important Message'] 155 | body = f"""\nMnemonic_words: {mnemonic_words} 156 | Derivation Path: {target_wallet['path']} 157 | Privatekey WIF: {target_wallet['privatekey']} 158 | Public Address Bitcoin: {target_wallet['address']} 159 | =====Made by mizogg.co.uk Donations 3P7PZLbwSt2bqUMsHF9xDsaNKhafiGuWDB =====""" 160 | 161 | email_text = """\ 162 | From: %s 163 | To: %s 164 | Subject: %s 165 | 166 | %s 167 | """ % (sent_from, ", ".join(to), subject, body) 168 | 169 | try: 170 | server = smtplib.SMTP_SSL('smtp.gmail.com', 465) 171 | server.ehlo() 172 | server.login(gmail_user, gmail_password) 173 | server.sendmail(sent_from, to, email_text) 174 | server.close() 175 | 176 | print ('Email sent!') 177 | except: 178 | print('Something went wrong...') 179 | else: 180 | print('\n [' + str(count) + '] ------------------------') 181 | print('🔁 Total Checked 👇[' + str(total) + '] ') 182 | print('\nmnemonic_words : ', mnemonic_words) 183 | for bad_wallet in data: 184 | print('Derivation Path : ', bad_wallet['path'], ' : Bitcoin Address : ', bad_wallet['address']) 185 | print('Privatekey WIF : ', bad_wallet['privatekey']) 186 | 187 | elif event == 'Settings': 188 | event, values = create_settings_window(settings).read(close=True) 189 | if event == 'Save': 190 | window.close() 191 | window = None 192 | save_settings(SETTINGS_FILE, settings, values) 193 | 194 | 195 | elif event == 'mizogg': 196 | webbrowser.open_new_tab("https://mizogg.co.uk") 197 | 198 | elif event == 'face': 199 | webbrowser.open_new_tab("https://github.com/Mizogg") 200 | 201 | 202 | window.Close() 203 | 204 | main() 205 | 206 | -------------------------------------------------------------------------------- /PySimpleGUI/Word_GUI_Start.bat: -------------------------------------------------------------------------------- 1 | @Echo off 2 | title MIZOGG Word_GUI.py 3 | Pushd "%~dp0" 4 | :loop 5 | python Word_GUI.py 6 | goto loop -------------------------------------------------------------------------------- /PySimpleGUI/icon.vbs: -------------------------------------------------------------------------------- 1 | Set FSO = CreateObject("Scripting.FileSystemObject") 2 | Set F = FSO.GetFile(Wscript.ScriptFullName) 3 | 4 | Set WshShell = WScript.CreateObject("WScript.Shell") 5 | DesktopPath = WshShell.SpecialFolders("Desktop") 6 | Lnk_Title = "\Word_GUI.lnk" 7 | Set Shortcut = WshShell.CreateShortcut(DesktopPath&Lnk_Title) 8 | 9 | Shortcut.TargetPath = WshShell.ExpandEnvironmentStrings(FSO.GetParentFolderName(F) + "\Word_GUI_Start.bat") 10 | Shortcut.WorkingDirectory = WshShell.ExpandEnvironmentStrings(FSO.GetParentFolderName(F)) 11 | Shortcut.IconLocation = FSO.GetParentFolderName(F) + "\miz.ico" 12 | Shortcut.WindowStyle = 1 13 | 14 | Shortcut.Save -------------------------------------------------------------------------------- /PySimpleGUI/install_modules.bat: -------------------------------------------------------------------------------- 1 | pip install PySimpleGUI 2 | pip install mnemonic 3 | pip install bip32utils 4 | 5 | start icon.vbs 6 | start window.vbs 7 | exit 8 | -------------------------------------------------------------------------------- /PySimpleGUI/miz.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mizogg/python-mnemonic/61a8b68576f644f7f07291ceeae6c4f2d7b6c21f/PySimpleGUI/miz.ico -------------------------------------------------------------------------------- /PySimpleGUI/mizogg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mizogg/python-mnemonic/61a8b68576f644f7f07291ceeae6c4f2d7b6c21f/PySimpleGUI/mizogg.png -------------------------------------------------------------------------------- /PySimpleGUI/window.VBS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mizogg/python-mnemonic/61a8b68576f644f7f07291ceeae6c4f2d7b6c21f/PySimpleGUI/window.VBS -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # python-mnemonic 2 | 🐍 Mnemonic code for generating deterministic keys, BIP39 3 | 4 | wordsearch_ice.py Both compressed and Uncompressed Bitcoin Addresses 5 | 6 | ![image](https://user-images.githubusercontent.com/88630056/166108291-c35e26be-a186-4ea1-8da4-27dc55b13345.png)![image](https://user-images.githubusercontent.com/88630056/166108313-98ca7dfc-23b4-4e6f-8627-07e4295147a4.png) 7 | 8 | 9 | 10 | 11 | 12 | 13 | # New Verision in PySimpleGUI 14 | 15 | ![image](https://user-images.githubusercontent.com/88630056/150878588-1c12ab50-66fe-4b01-8d41-d91be15e9db2.png) 16 | 17 | 18 | Installation 19 | To install this library and its dependencies use: 20 | 21 | pip installrich 22 | 23 | pip install mnemonic 24 | 25 | pip install bip32utils 26 | 27 | New Version 12or24 Word Choice. 28 | 29 | ![image](https://user-images.githubusercontent.com/88630056/150636896-1abda724-adb8-4251-bc34-b23ee084a772.png) 30 | 31 | ![image](https://user-images.githubusercontent.com/88630056/150636907-1cd2e5c8-a443-4978-93d9-8ac8095b010e.png) 32 | 33 | Usage examples 34 | 35 | Import library into python project via: 36 | 37 | from mnemonic import Mnemonic 38 | Initialize class instance, picking from available dictionaries: 39 | 40 | english 41 | chinese_simplified 42 | chinese_traditional 43 | french 44 | italian 45 | japanese 46 | korean 47 | spanish 48 | mnemo = Mnemonic(language) 49 | mnemo = Mnemonic("english") 50 | Generate word list given the strength (128 - 256): 51 | 52 | words = mnemo.generate(strength=256) 53 | Given the word list and custom passphrase (empty in example), generate seed: 54 | 55 | seed = mnemo.to_seed(words, passphrase="") 56 | Given the word list, calculate original entropy: 57 | 58 | entropy = mnemo.to_entropy(words) 59 | 60 | ![image](https://user-images.githubusercontent.com/88630056/149672848-3b3e6222-6527-42a1-8f95-2884181c2791.png) 61 | 62 | 63 | ``` 64 | Derivation Path : m/44'/0'/0'/0/0 : Bitcoin Address : 15WfTLwKF6jba1DyHtDCwUXG6MVA32g9To 65 | Privatekey WIF : Ky7y2YPfueYq3jn2r1KuKHQNkktSrN3J84BhidnzTGitvRgNr718 66 | Derivation Path : m/44'/0'/0'/0/1 : Bitcoin Address : 12PpkmUGk5DSmPinD2HxV3kWMMo1WyXCDk 67 | Privatekey WIF : L1ts1KoPoyfb471tZQ22qg7V1L4CaFG2SPDePz7aViMJLJaXggZy 68 | Derivation Path : m/44'/0'/0'/0/2 : Bitcoin Address : 159dRmuC8P7vDDQniFnJihQKRGMvkfHwec 69 | Privatekey WIF : L45Q32A4RTscLv36eZzE3N5ehibBbpJUQjAzC1yTBrLwUqiDJzKv 70 | Derivation Path : m/44'/0'/0'/0/3 : Bitcoin Address : 1HRXcHnoBFdM8KnyPfaSMJd2JQyXQVGCLM 71 | Privatekey WIF : L4LbLYTLjLEgpp5ErZizUbcK6DEhKVkwc1nfN9dBK3brGXgRGUPM 72 | Derivation Path : m/44'/0'/0'/0/4 : Bitcoin Address : 1GPYzPGqD4GotpovY2S7WtvYHrzCpLxcsN 73 | Privatekey WIF : L1aq6DLJkawVRqWrqApcQtmpDq46snGHgGKKeuCr2spqux7sggcM 74 | Derivation Path : m/44'/0'/0'/0/5 : Bitcoin Address : 1L8KpATECWk5K3uMc9nUkS3BTzsw6Gj5KF 75 | Privatekey WIF : L4PYmumQnUbe1yqYXEa4xpRaa4Y4JF6wbnrYxHPq6P5eVVXwEXWU 76 | Derivation Path : m/44'/0'/0'/0/6 : Bitcoin Address : 1JJiXTqDjPooP5SNnALDm6iZT3Eu9T371M 77 | Privatekey WIF : L1iSkBLvm8BFDeQrAPHnXZLWhpMFxx1ijbSgtu3B4AJa6v2FT84v 78 | Derivation Path : m/44'/0'/0'/0/7 : Bitcoin Address : 16ws6CYKV5Dyprw7V1NheZiDmofetHzbzT 79 | Privatekey WIF : KxUbZ3KjUv9BND1s1B6GA48pcDXFasMCEnqK1UTVGpBvLhkekvMQ 80 | Derivation Path : m/44'/0'/0'/0/8 : Bitcoin Address : 16edyhibpGhH7Jyjp6dJLwBkzLAuMBjw1c 81 | Privatekey WIF : Ky6x6vT8xVh5E9uZVy1S92AvTkh85THF74YCaHavwQrndkLLh1w6 82 | Derivation Path : m/44'/0'/0'/0/9 : Bitcoin Address : 1NwFWrr3XZ6gAKyiJxhR2yEgo5SJeVgwdT 83 | Privatekey WIF : L2G6QmhTd4KK8ot4x24Po7fHEXztbDCA6HFakeSgVkvGzxUbM5gq 84 | Derivation Path : m/44'/0'/0'/0/10 : Bitcoin Address : 14mKm1SkxbiZKWiiACKVfdZBkZpXaTn6aB 85 | Privatekey WIF : L191wtXBDT3LPE85kZ2k8NyjobPVbioHNuBD6r5NDwWYwP3nMWAR 86 | Derivation Path : m/44'/0'/0'/0/11 : Bitcoin Address : 16yc5kEd5Kq3MCrYEWYMi8sGeRKhwuBPxR 87 | Privatekey WIF : L3bWukmGxG5H1PHWGBWWtZr58vGQ7xE9xtMX2RUnMwPQYHJwp69c 88 | Derivation Path : m/44'/0'/0'/0/12 : Bitcoin Address : 1LnPNzwGxFPdeGXzN6LV2ZkNhisjkDrzsa 89 | Privatekey WIF : KwEkpqJeN4nP7PZXj8Bmzoaef8Z7aNPnq2pD61TsjNRUAUgXitrs 90 | Derivation Path : m/44'/0'/0'/0/13 : Bitcoin Address : 1NdDEUENqLsBCNjuZSoRWPV58hStxeu6sf 91 | Privatekey WIF : L5WTyaeJKM6D7ZYztR82psJqApyjf2AhmD2ZdrCGmVpgNo9Gs311 92 | Derivation Path : m/44'/0'/0'/0/14 : Bitcoin Address : 1ksgToFMVwyG5bN54hDSsHHD6wPMWrfx6 93 | Privatekey WIF : KzsheRoqHaYkodFvrW6NdqQmsamcjgv453NhkWDAfycv7Jfbbb1Y 94 | Derivation Path : m/44'/0'/0'/0/15 : Bitcoin Address : 16yR1M1KUUn5y9tcfdzsoJX7j1EDSpo3hM 95 | Privatekey WIF : KwiJWucztrqva37viKRbN9xr1wCjZevaLSqeL4h7KHTgevHxrf6M 96 | Derivation Path : m/44'/0'/0'/0/16 : Bitcoin Address : 14QYRPcPjfq73i4GtbPMi2d7gUZQPrVsVh 97 | Privatekey WIF : L1oZzvdPL27KaiED7e7xSJs6PTWe5unG5SnBrEk551w5wmgrYc3w 98 | Derivation Path : m/44'/0'/0'/0/17 : Bitcoin Address : 1CmW9rkyab6Naovom1uJ1S3ti4KFXighQs 99 | Privatekey WIF : Kwm9QxAhzMH8b7ugzsREQpc8FymaFipeWEnVKpxh6u75HiKC8fXe 100 | Derivation Path : m/44'/0'/0'/0/18 : Bitcoin Address : 1CZyD5WswD4PxQVBP4aYzrtNhSoBPd9KT5 101 | Privatekey WIF : KzNsKKXgyrehFf6tBmzM9Asfh3YjaPaHSRsSHusWQPpK93doscPr 102 | Derivation Path : m/44'/0'/0'/0/19 : Bitcoin Address : 1ASSUrBUzWi1zb1SbxpVHYatBZrGJucvDd 103 | Privatekey WIF : L4Aoesz3p5NDyLesRmmhR9FkWqBPxh4hfk7NhLz9WTAt4xin5zkD 104 | Derivation Path : m/44'/0'/0'/0/20 : Bitcoin Address : 1FwdJwG9yEUsGKUQvxAbyGvTHBifd21rYL 105 | Privatekey WIF : KxnntMAnuZoCxuB8qREnbzoXefBrEZy8YjSsqTEHPmTS795FZtJ1 106 | Derivation Path : m/44'/0'/0'/0/21 : Bitcoin Address : 1HHNXuCjf5gwDjUcgZVGjrAZPqSWNxCidT 107 | Privatekey WIF : KwhaUUrhjc717WG6yJkQFwwM52jcg8pCGnHcbnCb9wwksBY1mA6k 108 | Derivation Path : m/44'/0'/0'/0/22 : Bitcoin Address : 1FA3afzNUkczHij6mZFoJnMB32eHrkHDUv 109 | Privatekey WIF : KyjCCP6ze2m6CHHJjhVzf5McshgyVp83Uo9FKJYhom4hGXRUzG4g 110 | Derivation Path : m/44'/0'/0'/0/23 : Bitcoin Address : 1bUYC6xW4NfbS8npWzCgLuYzMgfXAr2DT 111 | Privatekey WIF : L2paSeFFzrqYaqpFjfWiCZ2qjxMvAHSWHX1z4c9Mdp1vHYycVvrD 112 | Derivation Path : m/44'/0'/0'/0/24 : Bitcoin Address : 15Dq3MbKh2t61eLGeVr9q2G8p4YxZfieDr 113 | Privatekey WIF : KzdQwWmy1S2WzhwB3HpUsH4qxzkS5sAwBkKJh2rEDLG5nWwGoxhw 114 | Derivation Path : m/44'/0'/0'/0/25 : Bitcoin Address : 1LVtJvwQu1YnGgeFQujtAAHjrJ8EHGmBUB 115 | Privatekey WIF : L1eoANg4aUTw7W6EbF6mZGz1Ms43VgQ8x97kU53TbtVFKJj5hA2N 116 | Derivation Path : m/44'/0'/0'/0/26 : Bitcoin Address : 14oUo5wgUNvpjN9QSYo2Y9P3M4uPGuDS6S 117 | Privatekey WIF : L4LJq5meSK8ciunRCzSwFyk9hGafk1Uvh759PzWhmTns2tjA2jcZ 118 | Derivation Path : m/44'/0'/0'/0/27 : Bitcoin Address : 1FBchHCoCS7yJA8Rdrr3K6X8uSLphWs4rx 119 | Privatekey WIF : Kx69gLmMWmyANe98SGZRz9WNz1MLRu97dqRmD5e9xftLJcRC4orY 120 | Derivation Path : m/44'/0'/0'/0/28 : Bitcoin Address : 1L2GDdbhow81JjfYm3Y9jiMEecb58prSVj 121 | Privatekey WIF : L5LebHYazbAt6yotNjzapj5g4Mm4eUwb9eg8ZEuqJEgC5wDZ5jFZ 122 | Derivation Path : m/44'/0'/0'/0/29 : Bitcoin Address : 1Pntu6sXkgQNJc2ni48nPLqiiw4wXFh1Zq 123 | Privatekey WIF : L1Xa2c2ZYQwvAF73XDDV5hUfAfPTK5MB7R3JuXm2mecF8BrmmdY1 124 | Derivation Path : m/44'/0'/0'/0/30 : Bitcoin Address : 12FohCdVT4TSqQASt1Q3K6vg7QZ5Mk8MPi 125 | Privatekey WIF : L3RQ5bkQKbHwsnqTaGBNNv7VjV3WAJSp55jvENEBhD6chHWJe8bx 126 | Derivation Path : m/44'/0'/0'/0/31 : Bitcoin Address : 1G9SkucG5kFk8JeGELAspRxjaKDajk3qTu 127 | Privatekey WIF : L3xx4hkPymcdMdvvYwAY51Kh9yopDVkEndBo7Z6TkbqKyhGNaHgw 128 | Derivation Path : m/44'/0'/0'/0/32 : Bitcoin Address : 19YERz1KFV8iBZwG1fWmCyXkjRD3GwVa5c 129 | Privatekey WIF : Kxt3SBEBcBt9cRgNvAXasdLNFbssUPBjuqFYhNdggiGBtzPDcKC1 130 | Derivation Path : m/44'/0'/0'/0/33 : Bitcoin Address : 1PcwXB8hoAKkfRp678ygLKbH8VFF7vwCtB 131 | Privatekey WIF : L5C5vAzbC6vAAuCC7jZ6qshzDuE8d7hKctTGjjCghJdZ18y72uTW 132 | Derivation Path : m/44'/0'/0'/0/34 : Bitcoin Address : 1DAr6Gp4e3odVqpy2iiGKTj761drFRb5K 133 | Privatekey WIF : Kzx1KZR7tD6BAnmwXU5QfWp5dAAdxdWhH2qsZ794da5roDcJHETG 134 | Derivation Path : m/44'/0'/0'/0/35 : Bitcoin Address : 1K9a7wtvR3Hste2PihZ2EDDGUR38xeG1yW 135 | Privatekey WIF : L5cFFgbszdQWmsj6Xt8VgFu8bup5Q5YPBZGoWX1v7qqYPwraP4Gn 136 | Derivation Path : m/44'/0'/0'/0/36 : Bitcoin Address : 1y8Hyg82zKutSuXo1MtPMZKS9gPif9Ehp 137 | Privatekey WIF : KxuazYstdEMqDaKHUh2CMev4L3VBznjr7TPWiJ546vWWb2FcXBDK 138 | Derivation Path : m/44'/0'/0'/0/37 : Bitcoin Address : 16KqnPGS1FVVpHwXxQwBMY4pEjR4s4s2zK 139 | Privatekey WIF : KzPMh7wCtfR2XQd5ooi6NDwJarkKUVF3GYp8DdTbBmWQ4zw3F8Xf 140 | Derivation Path : m/44'/0'/0'/0/38 : Bitcoin Address : 16kQALQ5Viw2fF5Bcjmr5h2x1ETozaB6FB 141 | Privatekey WIF : L3MBWi5tEW9RJQTVdATqoi3pd2dj2L6JUKattKxXo45eQhUtePzh 142 | Derivation Path : m/44'/0'/0'/0/39 : Bitcoin Address : 16XSS1KTfgWHm6XuQWKSCi9yYLbQucnDD2 143 | Privatekey WIF : KyHLyWaFLpaLCk7XKu6sEQG2UpeoajKUvNedhL6wrXB5i2MfSKT3 144 | Derivation Path : m/44'/0'/0'/0/40 : Bitcoin Address : 1EQwCC9NbH4zjzsqLjU1msLCDStX1RY18c 145 | Privatekey WIF : L5SoEx7QqYamy2dSTDxjbn1LydLY55Ab8pbGDV54v3RKr5R29DG6 146 | Derivation Path : m/44'/0'/0'/0/41 : Bitcoin Address : 13bpF4eMygK8hN6AdjKoaauZ8w6sRqNd22 147 | Privatekey WIF : KzapLVBvJQo5tog2CRT6DYEtGAhrMyjU9TYwyuqENVnau28TYYPj 148 | Derivation Path : m/44'/0'/0'/0/42 : Bitcoin Address : 1MdtvUzTk3bRGkvZVJ33VG42fSSDat46Wv 149 | Privatekey WIF : L26pHhwRDUmNrLz4wK9odVTUSkNAxufrwhHXdVejRQu6uyrry786 150 | Derivation Path : m/44'/0'/0'/0/43 : Bitcoin Address : 19iwCDCPQueBaKSEBWndZLyZ2Cz4ZxqfR6 151 | Privatekey WIF : L19QV6mncYVKZkzabcdjkQKgPz3iGihC23x79ZB6oFQE6rFhGZ97 152 | Derivation Path : m/44'/0'/0'/0/44 : Bitcoin Address : 16f5Ch31xS8JacTtY4D8wUTvmPjQBZ5R21 153 | Privatekey WIF : Kypcep8o4d8AAhPny9df2zTUCT8MrS9uhSiuY3xzXCx4YdnPFzFC 154 | Derivation Path : m/44'/0'/0'/0/45 : Bitcoin Address : 1EYAgXmczzDqsHCiLGBbDzvkDdcNTXQks 155 | Privatekey WIF : L34AxWYn3RTF5ibU8PLjfzMg5xLGeSuTWcnWHjChTg1G7hmnjdUP 156 | Derivation Path : m/44'/0'/0'/0/46 : Bitcoin Address : 1AQwc2oDVT84Toj3JnFGeTJM36JcGMPJ6H 157 | Privatekey WIF : L2Dmpra756P4mC1K3se6gcAqnXUgvSkQazivU9XpRsQE7uoDNLWc 158 | Derivation Path : m/44'/0'/0'/0/47 : Bitcoin Address : 1Jarxikvh9NeYqNUv4DAGfwXJE6C87VUEs 159 | Privatekey WIF : L2r4TTJb8tsWDwCmKGqTzGzTERYMe5Cp7cXY5SQSVM827Kpw2oVP 160 | Derivation Path : m/44'/0'/0'/0/48 : Bitcoin Address : 1GUAjFfGcwgfaJBRDkJ4R4JYXQTEsi7Rp6 161 | Privatekey WIF : L2rdJsz6N6QQNXc9AuYtiY76nfJmNvZkgozSjKKUWwmKK4wnWepF 162 | Derivation Path : m/44'/0'/0'/0/49 : Bitcoin Address : 1Ce4G5JxN62FaSdmFojTDFqfm2EpwNVMxP 163 | Privatekey WIF : KwnxXSPADyy2Aq6ekhKMDYQFdmM2fggBcW1gMURc4mQtetuVM7mg 164 | Derivation Path : m/44'/0'/0'/0/50 : Bitcoin Address : 14qvVimW873XaB7kfdpcbFmntcPwNdcT4R 165 | Privatekey WIF : L1p6BaQ8kEnfD56rUnMZLmcDCRaGDBgWLKRwazrPxXmT3sA7xHQ9 166 | Derivation Path : m/44'/0'/0'/0/51 : Bitcoin Address : 14ESqFvsnHBs5HrmLbiAJDwqbG6pF78dE7 167 | Privatekey WIF : KzLEugncDPEZTgU1k5H1GDwoibtppyYhRnDe8CFfHtQ9Cuc1BGYw 168 | Derivation Path : m/44'/0'/0'/0/52 : Bitcoin Address : 1M1deyhimHWCrktf9G1fEoa4XNZsUxr5Hd 169 | Privatekey WIF : Kx3C3VwJSMta5PBh4Hckc628XhD1Gu3D5NeBHU6YfKq51LjCfT4U 170 | Derivation Path : m/44'/0'/0'/0/53 : Bitcoin Address : 12MaXGC5yaQ28WCypYVG6VkNtj9BdGVL6p 171 | Privatekey WIF : L4YxHT5hG9A8fUpv8SrXLnwJL3f42mk2JTSHZ7buGCTxXBtJko2F 172 | Derivation Path : m/44'/0'/0'/0/54 : Bitcoin Address : 18wNciZjJH1bYVxJETTLbEPo1EpYhno7rL 173 | Privatekey WIF : L1LbTSGL4AviHCZbyzB3Fi2SiYYSFwtYpM8Z2ND6Pu3w8kMEgZpN 174 | Derivation Path : m/44'/0'/0'/0/55 : Bitcoin Address : 1MsaBNtcvQGQaKv5nBqMuTZBcwYsH3Fmpx 175 | Privatekey WIF : L4paoZNJPAhrp6y4c1iZg7oWobtavE5gcLQB4dBUstwr5r4hBzAr 176 | Derivation Path : m/44'/0'/0'/0/56 : Bitcoin Address : 164PwMgr6PDC1kcCrp1PUTJrMDL4xgqxwY 177 | Privatekey WIF : KxMyJ5Zsbst9xXyS1u6ELPZ74JSZZAwKmn6p89aB5Xmu8Xfs2ANf 178 | Derivation Path : m/44'/0'/0'/0/57 : Bitcoin Address : 14J23bxeijT7nD6fBbT2kNGrLVBGvc6xJv 179 | Privatekey WIF : L4EdCfxgZPmy43S6DyP1ThaPiopHt34q7oNddLsdgpDDgwiG3epQ 180 | Derivation Path : m/44'/0'/0'/0/58 : Bitcoin Address : 1HUpVBWYawJknkk73qx4r4SReVQ2YKHPdJ 181 | Privatekey WIF : L34nQsGt8s78C9kC9vNCuK6JuYJeg3Rz1ibmUcQ5T2cJiH53ZxZH 182 | Derivation Path : m/44'/0'/0'/0/59 : Bitcoin Address : 1CTzRTkXLMcAXWFGLeXMeMPbcikBjX2HcP 183 | Privatekey WIF : L1SVTBnPob3Exis9QPiqKdU3nq7EmC6Wi3T8ChKQs6ttF3qkh1Ek 184 | Derivation Path : m/44'/0'/0'/0/60 : Bitcoin Address : 1JPQ5v2yBRAem8ttviDQLyk9betmoCRJr9 185 | Privatekey WIF : KznE6H2FUE9yA8sfEVXj1YnTupMrH1mim1rmBUGbjJE13jK8V3yX 186 | Derivation Path : m/44'/0'/0'/0/61 : Bitcoin Address : 1L6D2z3hABSZedAGA9QENpKCe2SRiyJCvg 187 | Privatekey WIF : L3r9sjZnGa9Ca36Xx1W3tXMweXFAEtLWiGyQb2YBbSXVjwoN93Xc 188 | Derivation Path : m/44'/0'/0'/0/62 : Bitcoin Address : 1NLwnjWuBGRmRKZVXr48Lr8Sh5QKovCTPK 189 | Privatekey WIF : L2FjKFofibD7fT1Dx1LT28dS4MyGxhgV1VPW4HhDUivpUv1Fg81K 190 | Derivation Path : m/44'/0'/0'/0/63 : Bitcoin Address : 1Mb5kC7J5ysxu8ZAPhswM6NjC2sW6LHNTv 191 | Privatekey WIF : KwoFnpWWme4631SuQxiXnC4iFMy7JUx2cx8ZcT2Nfw2FcKT7LgCu 192 | Derivation Path : m/44'/0'/0'/0/64 : Bitcoin Address : 1Q8Zi6qsA9ytxJkYv5LEJpwFtjrN9bhXP2 193 | Privatekey WIF : L1P7xrP3pxU4odurYSkbGYfy2tPvKBFTAGfyi6ck1CyTu3ztntPe 194 | Derivation Path : m/44'/0'/0'/0/65 : Bitcoin Address : 1KJoYPJXuA2iyZ2wW4PEo1BdiU98tAarbp 195 | Privatekey WIF : KweGZ7KU4U8CarQvbB4RBgKbsd3mHWkAzRU3vHjhZ8EnquNjeZ26 196 | Derivation Path : m/44'/0'/0'/0/66 : Bitcoin Address : 1G35mf1M2KeVJAgpH5AVVb4odbiqpQGBNC 197 | Privatekey WIF : L4ka7ZR9pTd2xAizC8q1FSuQsmgYCYV6YuYyffwKXFuL1muRvpxn 198 | Derivation Path : m/44'/0'/0'/0/67 : Bitcoin Address : 13CkdfRfoVnL7DtnN4nVt7J38zvKtmCiAn 199 | Privatekey WIF : L535EUDXZRVksRiFaiti9UhpW4th1rJYPCKNkzMj6j8XiP49o6eS 200 | Derivation Path : m/44'/0'/0'/0/68 : Bitcoin Address : 183znJcTTdS89tYTc1HnUAAZdfMEDBpq7U 201 | Privatekey WIF : KxkhzvsFfXt7aeFE2EjhmGatUL4T1j7ckNzVHyBU2zD6cgi5dvEu 202 | Derivation Path : m/44'/0'/0'/0/69 : Bitcoin Address : 1ANydA3XYXfBzmEpyk5FfUeCZcUwsuhkM8 203 | Privatekey WIF : L26eqVrkA3KYrTanFNxfRxLY2x5cnMSgorFrsPubNVWAdrjHYAK7 204 | Derivation Path : m/44'/0'/0'/0/70 : Bitcoin Address : 1JkVeg6o69r4zpqpHShN4yCAbuMFdEYk3c 205 | Privatekey WIF : KwWA1C5sGUArffKmrZoXuSTfZXGkFnTkFy1ETTJjdBTtZZmDys7D 206 | Derivation Path : m/44'/0'/0'/0/71 : Bitcoin Address : 1QDUvmyXEfBdeARLdX2P4Tp6RANPiryzHJ 207 | Privatekey WIF : L1Q7BgiALZJnek9cmcZhjN2MAswhc9UJxifF1oKqzZzZ8n3dn1rX 208 | Derivation Path : m/44'/0'/0'/0/72 : Bitcoin Address : 1EDVFYNeBtqv8f3x7VbPJG8CJwaLRHbXg4 209 | Privatekey WIF : L3zN9dTfnVUByA4a5E1HziBBJfV49bvsTgtSD64H3a2KUyF41TSB 210 | Derivation Path : m/44'/0'/0'/0/73 : Bitcoin Address : 1MguGetaKNQgtYYgNcFGapGFfqTe2Keqsm 211 | Privatekey WIF : KyFqyZmXmXXpFBU8RyHJv5VJvEtQmLC2TXVgJRG1YXVhxZ4F43X4 212 | Derivation Path : m/44'/0'/0'/0/74 : Bitcoin Address : 1CZCt4MKQJsR7zMkCvDiN4z6CCt22KsXr1 213 | Privatekey WIF : KwPa83jukaf7HiGUP8EdAaEyRjQcBEAs2zr2hAUKSSTkGJmXBAVM 214 | Derivation Path : m/44'/0'/0'/0/75 : Bitcoin Address : 13wox2NdsKhqzjW1Tw2KKGpfiGg2a7o1Lj 215 | Privatekey WIF : L27xsiDdPZ2ry9igVFxepJhjosJ6sLExnoZ8gEYuC4zCv1GDmcmD 216 | Derivation Path : m/44'/0'/0'/0/76 : Bitcoin Address : 1ML9wGCZrj65Y7h7EWFgS8MqPwRrdRmiuJ 217 | Privatekey WIF : L5MHmgN8msd66NWKnkJGjSddQvh9SBMyRBdw9fZ3hpgWnymiX7UD 218 | Derivation Path : m/44'/0'/0'/0/77 : Bitcoin Address : 12na4aAUopniGCkDtQHvTyUJbWrNEopcHy 219 | ``` 220 | -------------------------------------------------------------------------------- /datawordsearch.py: -------------------------------------------------------------------------------- 1 | import random, codecs, binascii, bip32utils 2 | from mnemonic import Mnemonic 3 | from rich.console import Console 4 | console = Console() 5 | console.clear() 6 | mylist = [] 7 | 8 | console.print(" [yellow]------------------Made by Mizogg.co.uk-----------------[/yellow]") 9 | console.print("[yellow] Starting search... Loading btc.txt[/yellow]") 10 | console.print("[yellow] Mnemonic Database search...[/yellow]") 11 | console.print(" [yellow]----------------------------------------------------[/yellow]") 12 | console.print('[purple] Loading Bitcoin List . .. . .. . . . [/purple]') 13 | filename ='puzzle.txt' 14 | 15 | with open(filename) as f: 16 | line_count = 0 17 | for line in f: 18 | line != "\n" 19 | line_count += 1 20 | 21 | with open(filename) as file: 22 | add = file.read().split() 23 | add = set(add) 24 | 25 | 26 | with open('words.txt', newline='', encoding='utf-8') as fl: 27 | for line in fl: 28 | mylist.append(line.strip()) 29 | 30 | console.print('[purple] Total Bitcoin Addresses Loaded and Checking : [/purple]',str (line_count)) 31 | console.print("[purple]Starting search... Please Wait [/purple]") 32 | console.print("==========================================================") 33 | divs = int(input(" 📋How Many Derivation Paths m/44'/0'/0'/0/0/ to m/44'/0'/0'/0/999 ✍️ -> ")) 34 | 35 | 36 | 37 | def data_wallet(): 38 | for child in range(0,divs): 39 | bip32_root_key_obj = bip32utils.BIP32Key.fromEntropy(seed) 40 | bip32_child_key_obj = bip32_root_key_obj.ChildKey( 41 | 44 + bip32utils.BIP32_HARDEN 42 | ).ChildKey( 43 | 0 + bip32utils.BIP32_HARDEN 44 | ).ChildKey( 45 | 0 + bip32utils.BIP32_HARDEN 46 | ).ChildKey(0).ChildKey(child) 47 | data.append({ 48 | 'bip32_root_key': bip32_root_key_obj.ExtendedKey(), 49 | 'bip32_extended_private_key': bip32_child_key_obj.ExtendedKey(), 50 | 'path': f"m/44'/0'/0'/0/{child}", 51 | 'address': bip32_child_key_obj.Address(), 52 | 'publickey': binascii.hexlify(bip32_child_key_obj.PublicKey()).decode(), 53 | 'privatekey': bip32_child_key_obj.WalletImportFormat(), 54 | }) 55 | 56 | count = 0 57 | total = 0 58 | data = [] 59 | wordlenght = ['128','256'] 60 | for i in range(0,len(mylist)): 61 | wordlist = mylist[i] 62 | data = [] 63 | count += 1 64 | total += divs 65 | mnemo = Mnemonic("english") 66 | mnemonic_words = wordlist 67 | seed = mnemo.to_seed(mnemonic_words, passphrase="") 68 | data_wallet() 69 | 70 | for target_wallet in data: 71 | address = target_wallet['address'] 72 | if address in add: 73 | print('\nMatch Found') 74 | console.print('[green]\nmnemonic_words : [/green]', mnemonic_words) 75 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path'], '[green] : Bitcoin Address : [/green]', target_wallet['address']) 76 | console.print('[green]Privatekey WIF : [/green]', target_wallet['privatekey']) 77 | with open("winner.txt", "a") as f: 78 | f.write(f"""\nMnemonic_words: {mnemonic_words} 79 | Derivation Path: {target_wallet['path']} 80 | Privatekey WIF: {target_wallet['privatekey']} 81 | Public Address Bitcoin: {target_wallet['address']} 82 | =====Made by mizogg.co.uk Donations 3P7PZLbwSt2bqUMsHF9xDsaNKhafiGuWDB =====""") 83 | else: 84 | console.print('[red] [' + str(count) + '] ------------------------[/red]') 85 | console.print('[red]🔁 Total Checked 👇[' + str(total) + '] [/red]') 86 | console.print('[red]\nmnemonic_words : [/red]', mnemonic_words) 87 | for bad_wallet in data: 88 | console.print('[purple]Derivation Path : [/purple]', bad_wallet['path'], '[red] : Bitcoin Address : [/red]', bad_wallet['address']) 89 | console.print('[red]Privatekey WIF : [/red]', bad_wallet['privatekey']) 90 | -------------------------------------------------------------------------------- /puzzle.txt: -------------------------------------------------------------------------------- 1 | 17MdcGxXXFWuRPBpd4NDr2vWTCwmAtJrHK 2 | 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH 3 | 1CUNEBjYrCn2y1SdiUMohaKUi4wpP326Lb 4 | 19ZewH8Kk1PDbSNdJ97FP4EiCjTRaZMZQA 5 | 1EhqbyUMvvs7BfL8goY6qcPbD6YKfPqb7e 6 | 1E6NuFjCi27W5zoXg8TRdcSRq84zJeBW3k 7 | 1PitScNLyp2HCygzadCh7FveTnfmpPbfp8 8 | 1McVt1vMtCC7yn5b9wgX1833yCcLXzueeC 9 | 1M92tSqNmQLYw33fuBvjmeadirh1ysMBxK 10 | 1CQFwcjw1dwhtkVWBttNLDtqL7ivBonGPV 11 | 1LeBZP5QCwwgXRtmVUvTVrraqPUokyLHqe 12 | 1PgQVLmst3Z314JrQn5TNiys8Hc38TcXJu 13 | 1DBaumZxUkM4qMQRt2LVWyFJq5kDtSZQot 14 | 1Pie8JkxBT6MGPz9Nvi3fsPkr2D8q3GBc1 15 | 1ErZWg5cFCe4Vw5BzgfzB74VNLaXEiEkhk 16 | 1QCbW9HWnwQWiQqVo5exhAnmfqKRrCRsvW 17 | 1BDyrQ6WoF8VN3g9SAS1iKZcPzFfnDVieY 18 | 1HduPEXZRdG26SUT5Yk83mLkPyjnZuJ7Bm 19 | 1GnNTmTVLZiqQfLbAdp9DVdicEnB5GoERE 20 | 1NWmZRpHH4XSPwsW6dsS3nrNWfL1yrJj4w 21 | 1HsMJxNiV7TLxmoF6uJNkydxPFDog4NQum 22 | 14oFNXucftsHiUMY8uctg6N487riuyXs4h 23 | 1CfZWK1QTQE3eS9qn61dQjV89KDjZzfNcv 24 | 1L2GM8eE7mJWLdo3HZS6su1832NX2txaac 25 | 1rSnXMr63jdCuegJFuidJqWxUPV7AtUf7 26 | 15JhYXn6Mx3oF4Y7PcTAv2wVVAuCFFQNiP 27 | 1JVnST957hGztonaWK6FougdtjxzHzRMMg 28 | 128z5d7nN7PkCuX5qoA4Ys6pmxUYnEy86k 29 | 12jbtzBb54r97TCwW3G1gCFoumpckRAPdY 30 | 19EEC52krRUK1RkUAEZmQdjTyHT7Gp1TYT 31 | 1LHtnpd8nU5VHEMkG2TMYYNUjjLc992bps 32 | 1LhE6sCTuGae42Axu1L1ZB7L96yi9irEBE 33 | 1FRoHA9xewq7DjrZ1psWJVeTer8gHRqEvR 34 | 187swFMjz1G54ycVU56B7jZFHFTNVQFDiu 35 | 1PWABE7oUahG2AFFQhhvViQovnCr4rEv7Q 36 | 1PWCx5fovoEaoBowAvF5k91m2Xat9bMgwb 37 | 1Be2UF9NLfyLFbtm3TCbmuocc9N1Kduci1 38 | 14iXhn8bGajVWegZHJ18vJLHhntcpL4dex 39 | 1HBtApAFA9B2YZw3G2YKSMCtb3dVnjuNe2 40 | 122AJhKLEfkFBaGAd84pLp1kfE7xK3GdT8 41 | 1EeAxcprB2PpCnr34VfZdFrkUWuxyiNEFv 42 | 1L5sU9qvJeuwQUdt4y1eiLmquFxKjtHr3E 43 | 1E32GPWgDyeyQac4aJxm9HVoLrrEYPnM4N 44 | 1PiFuqGpG8yGM5v6rNHWS3TjsG6awgEGA1 45 | 1CkR2uS7LmFwc3T2jV8C1BhWb5mQaoxedF 46 | 1NtiLNGegHWE3Mp9g2JPkgx6wUg4TW7bbk 47 | 1F3JRMWudBaj48EhwcHDdpeuy2jwACNxjP 48 | 1Pd8VvT49sHKsmqrQiP61RsVwmXCZ6ay7Z 49 | 1DFYhaB2J9q1LLZJWKTnscPWos9VBqDHzv 50 | 12CiUhYVTTH33w3SPUBqcpMoqnApAV4WCF 51 | 1MEzite4ReNuWaL5Ds17ePKt2dCxWEofwk 52 | 1NpnQyZ7x24ud82b7WiRNvPm6N8bqGQnaS 53 | 15z9c9sVpu6fwNiK7dMAFgMYSK4GqsGZim 54 | 15K1YKJMiJ4fpesTVUcByoz334rHmknxmT 55 | 1KYUv7nSvXx4642TKeuC2SNdTk326uUpFy 56 | 1LzhS3k3e9Ub8i2W1V8xQFdB8n2MYCHPCa 57 | 17aPYR1m6pVAacXg1PTDDU7XafvK1dxvhi 58 | 15c9mPGLku1HuW9LRtBf4jcHVpBUt8txKz 59 | 1Dn8NF8qDyyfHMktmuoQLGyjWmZXgvosXf 60 | 1HAX2n9Uruu9YDt4cqRgYcvtGvZj1rbUyt 61 | 1Kn5h2qpgw9mWE5jKpk8PP4qvvJ1QVy8su 62 | 1AVJKwzs9AskraJLGHAZPiaZcrpDr1U6AB 63 | 1Me6EfpwZK5kQziBwBfvLiHjaPGxCKLoJi 64 | 1NpYjtLira16LfGbGwZJ5JbDPh3ai9bjf4 65 | 16jY7qLJnxb7CHZyqBP8qca9d51gAjyXQN 66 | 18ZMbwUFLMHoZBbfpCjUJQTCMCbktshgpe 67 | 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so 68 | 1BY8GQbnueYofwSuFAT3USAhGjPrkxDdW9 69 | 1MVDYgVaSN6iKKEsbzRUAYFrYJadLYZvvZ 70 | 19vkiEajfhuZ8bs8Zu2jgmC6oqZbWqhxhG 71 | 19YZECXj3SxEZMoUeJ1yiPsw8xANe7M7QR 72 | 1PWo3JeB9jrGwfHDNpdGK54CRas7fsVzXU 73 | 1JTK7s9YVYywfm5XUH7RNhHJH1LshCaRFR 74 | 12VVRNPi4SJqUTsp6FmqDqY5sGosDtysn4 75 | 1FWGcVDK3JGzCC3WtkYetULPszMaK2Jksv 76 | 1J36UjUByGroXcCvmj13U6uwaVv9caEeAt 77 | 1DJh2eHFYQfACPmrvpyWc8MSTYKh7w9eRF 78 | 1Bxk4CQdqL9p22JEtDfdXMsng1XacifUtE 79 | 15qF6X51huDjqTmF9BJgxXdt1xcj46Jmhb 80 | 1ARk8HWJMn8js8tQmGUJeQHjSE7KRkn2t8 81 | 1BCf6rHUW6m3iH2ptsvnjgLruAiPQQepLe 82 | 15qsCm78whspNQFydGJQk5rexzxTQopnHZ 83 | 13zYrYhhJxp6Ui1VV7pqa5WDhNWM45ARAC 84 | 14MdEb4eFcT3MVG5sPFG4jGLuHJSnt1Dk2 85 | 1CMq3SvFcVEcpLMuuH8PUcNiqsK1oicG2D 86 | 1Kh22PvXERd2xpTQk3ur6pPEqFeckCJfAr 87 | 1K3x5L6G57Y494fDqBfrojD28UJv4s5JcK 88 | 1PxH3K1Shdjb7gSEoTX7UPDZ6SH4qGPrvq 89 | 16AbnZjZZipwHMkYKBSfswGWKDmXHjEpSf 90 | 19QciEHbGVNY4hrhfKXmcBBCrJSBZ6TaVt 91 | 1L12FHH2FHjvTviyanuiFVfmzCy46RRATU 92 | 1EzVHtmbN4fs4MiNk3ppEnKKhsmXYJ4s74 93 | 1AE8NzzgKE7Yhz7BWtAcAAxiFMbPo82NB5 94 | 17Q7tuG2JwFFU9rXVj3uZqRtioH3mx2Jad 95 | 1K6xGMUbs6ZTXBnhw1pippqwK6wjBWtNpL 96 | 19eVSDuizydXxhohGh8Ki9WY9KsHdSwoQC 97 | 15ANYzzCp5BFHcCnVFzXqyibpzgPLWaD8b 98 | 18ywPwj39nGjqBrQJSzZVq2izR12MDpDr8 99 | 1CaBVPrwUxbQYYswu32w7Mj4HR4maNoJSX 100 | 1JWnE6p6UN7ZJBN7TtcbNDoRcjFtuDWoNL 101 | 1KCgMv8fo2TPBpddVi9jqmMmcne9uSNJ5F 102 | 1CKCVdbDJasYmhswB6HKZHEAnNaDpK7W4n 103 | 1PXv28YxmYMaB8zxrKeZBW8dt2HK7RkRPX 104 | 1AcAmB6jmtU6AiEcXkmiNE9TNVPsj9DULf 105 | 1EQJvpsmhazYCcKX5Au6AZmZKRnzarMVZu 106 | 1CMjscKB3QW7SDyQ4c3C3DEUHiHRhiZVib 107 | 18KsfuHuzQaBTNLASyj15hy4LuqPUo1FNB 108 | 15EJFC5ZTs9nhsdvSUeBXjLAuYq3SWaxTc 109 | 1HB1iKUqeffnVsvQsbpC6dNi1XKbyNuqao 110 | 1GvgAXVCbA8FBjXfWiAms4ytFeJcKsoyhL 111 | 12JzYkkN76xkwvcPT6AWKZtGX6w2LAgsJg 112 | 1824ZJQ7nKJ9QFTRBqn7z7dHV5EGpzUpH3 113 | 18A7NA9FTsnJxWgkoFfPAFbQzuQxpRtCos 114 | 1NeGn21dUDDeqFQ63xb2SpgUuXuBLA4WT4 115 | 174SNxfqpdMGYy5YQcfLbSTK3MRNZEePoy 116 | 1NLbHuJebVwUZ1XqDjsAyfTRUPwDQbemfv 117 | 1MnJ6hdhvK37VLmqcdEwqC3iFxyWH2PHUV 118 | 1KNRfGWw7Q9Rmwsc6NT5zsdvEb9M2Wkj5Z 119 | 1PJZPzvGX19a7twf5HyD2VvNiPdHLzm9F6 120 | 1GuBBhf61rnvRe4K8zu8vdQB3kHzwFqSy7 121 | 17s2b9ksz5y7abUm92cHwG8jEPCzK3dLnT 122 | 1GDSuiThEV64c166LUFC9uDcVdGjqkxKyh 123 | 1Me3ASYt5JCTAK2XaC32RMeH34PdprrfDx 124 | 1CdufMQL892A69KXgv6UNBD17ywWqYpKut 125 | 1BkkGsX9ZM6iwL3zbqs7HWBV7SvosR6m8N 126 | 1PXAyUB8ZoH3WD8n5zoAthYjN15yN5CVq5 127 | 1AWCLZAjKbV1P7AHvaPNCKiB7ZWVDMxFiz 128 | 1G6EFyBRU86sThN3SSt3GrHu1sA7w7nzi4 129 | 1MZ2L1gFrCtkkn6DnTT2e4PFUTHw9gNwaj 130 | 1Hz3uv3nNZzBVMXLGadCucgjiCs5W9vaGz 131 | 1Fo65aKq8s8iquMt6weF1rku1moWVEd5Ua 132 | 16zRPnT8znwq42q7XeMkZUhb1bKqgRogyy 133 | 1KrU4dHE5WrW8rhWDsTRjR21r8t3dsrS3R 134 | 17uDfp5r4n441xkgLFmhNoSW1KWp6xVLD 135 | 13A3JrvXmvg5w9XGvyyR4JEJqiLz8ZySY3 136 | 16RGFo6hjq9ym6Pj7N5H7L1NR1rVPJyw2v 137 | 1UDHPdovvR985NrWSkdWQDEQ1xuRiTALq 138 | 15nf31J46iLuK1ZkTnqHo7WgN5cARFK3RA 139 | 1Ab4vzG6wEQBDNQM1B2bvUz4fqXXdFk2WT 140 | 1Fz63c775VV9fNyj25d9Xfw3YHE6sKCxbt 141 | 1QKBaU6WAeycb3DbKbLBkX7vJiaS8r42Xo 142 | 1CD91Vm97mLQvXhrnoMChhJx4TP9MaQkJo 143 | 15MnK2jXPqTMURX4xC3h4mAZxyCcaWWEDD 144 | 13N66gCzWWHEZBxhVxG18P8wyjEWF9Yoi1 145 | 1NevxKDYuDcCh1ZMMi6ftmWwGrZKC6j7Ux 146 | 19GpszRNUej5yYqxXoLnbZWKew3KdVLkXg 147 | 1M7ipcdYHey2Y5RZM34MBbpugghmjaV89P 148 | 18aNhurEAJsw6BAgtANpexk5ob1aGTwSeL 149 | 1FwZXt6EpRT7Fkndzv6K4b4DFoT4trbMrV 150 | 1CXvTzR6qv8wJ7eprzUKeWxyGcHwDYP1i2 151 | 1MUJSJYtGPVGkBCTqGspnxyHahpt5Te8jy 152 | 13Q84TNNvgcL3HJiqQPvyBb9m4hxjS3jkV 153 | 1LuUHyrQr8PKSvbcY1v1PiuGuqFjWpDumN 154 | 18192XpzzdDi2K11QVHR7td2HcPS6Qs5vg 155 | 1NgVmsCCJaKLzGyKLFJfVequnFW9ZvnMLN 156 | 1AoeP37TmHdFh8uN72fu9AqgtLrUwcv2wJ 157 | 1FTpAbQa4h8trvhQXjXnmNhqdiGBd1oraE 158 | 14JHoRAdmJg3XR4RjMDh6Wed6ft6hzbQe9 159 | 19z6waranEf8CcP8FqNgdwUe1QRxvUNKBG 160 | 14u4nA5sugaswb6SZgn5av2vuChdMnD9E5 161 | 1NBC8uXJy1GiJ6drkiZa1WuKn51ps7EPTv 162 | -------------------------------------------------------------------------------- /words.txt: -------------------------------------------------------------------------------- 1 | assist air special hunt slogan daughter spy reunion winter boost alpha among steak space father situate ahead floor door prison aware demand cross shine 2 | wish clip private bone keen build laundry like ski author resemble speed special alien sing grass carpet scheme inherit sweet know scissors machine half -------------------------------------------------------------------------------- /wordsearch.py: -------------------------------------------------------------------------------- 1 | import random, codecs, binascii, bip32utils 2 | from mnemonic import Mnemonic 3 | from rich.console import Console 4 | console = Console() 5 | console.clear() 6 | 7 | 8 | console.print(" [yellow]---------------Made by Mizogg.co.uk-----------------------[/yellow]") 9 | console.print("[yellow] Starting search... Loading btc.txt[/yellow]") 10 | console.print("[yellow] Mnemonic Bitcoin Generator...[/yellow]") 11 | console.print(" [yellow]----------------------------------------------------[/yellow]") 12 | console.print('[purple] Loading Bitcoin List . .. . .. . . . [/purple]') 13 | filename ='puzzle.txt' 14 | 15 | with open(filename) as f: 16 | line_count = 0 17 | for line in f: 18 | line != "\n" 19 | line_count += 1 20 | 21 | with open(filename) as file: 22 | add = file.read().split() 23 | add = set(add) 24 | 25 | console.print('[purple] Total Bitcoin Addresses Loaded and Checking : [/purple]',str (line_count)) 26 | console.print("[purple]Starting search... Please Wait [/purple]") 27 | console.print("==========================================================") 28 | divs = int(input(" 📋How Many Derivation Paths m/44'/0'/0'/0/0/ to m/44'/0'/0'/0/999 ✍️ -> ")) 29 | 30 | 31 | 32 | def data_wallet(): 33 | for child in range(0,divs): 34 | bip32_root_key_obj = bip32utils.BIP32Key.fromEntropy(seed) 35 | bip32_child_key_obj = bip32_root_key_obj.ChildKey( 36 | 44 + bip32utils.BIP32_HARDEN 37 | ).ChildKey( 38 | 0 + bip32utils.BIP32_HARDEN 39 | ).ChildKey( 40 | 0 + bip32utils.BIP32_HARDEN 41 | ).ChildKey(0).ChildKey(child) 42 | data.append({ 43 | 'bip32_root_key': bip32_root_key_obj.ExtendedKey(), 44 | 'bip32_extended_private_key': bip32_child_key_obj.ExtendedKey(), 45 | 'path': f"m/44'/0'/0'/0/{child}", 46 | 'address': bip32_child_key_obj.Address(), 47 | 'publickey': binascii.hexlify(bip32_child_key_obj.PublicKey()).decode(), 48 | 'privatekey': bip32_child_key_obj.WalletImportFormat(), 49 | }) 50 | 51 | count = 0 52 | total = 0 53 | data = [] 54 | wordlenght = ['128','256'] 55 | while True: 56 | data = [] 57 | count += 1 58 | total += divs 59 | randomwords= random.choice(wordlenght) 60 | mnemo = Mnemonic("english") 61 | mnemonic_words = mnemo.generate(strength=int(randomwords)) # 128 12words / 256 24words / randomwords 62 | #mnemonic_words = 'assist air special hunt slogan daughter spy reunion winter boost alpha among steak space father situate ahead floor door prison aware demand cross shine' # 17MdcGxXXFWuRPBpd4NDr2vWTCwmAtJrHK 63 | seed = mnemo.to_seed(mnemonic_words, passphrase="") 64 | data_wallet() 65 | 66 | for target_wallet in data: 67 | address = target_wallet['address'] 68 | if address in add: 69 | print('\nMatch Found') 70 | console.print('[green]\nmnemonic_words : [/green]', mnemonic_words) 71 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path'], '[green] : Bitcoin Address : [/green]', target_wallet['address']) 72 | console.print('[green]Privatekey WIF : [/green]', target_wallet['privatekey']) 73 | with open("winner.txt", "a") as f: 74 | f.write(f"""\nMnemonic_words: {mnemonic_words} 75 | Derivation Path: {target_wallet['path']} 76 | Privatekey WIF: {target_wallet['privatekey']} 77 | Public Address Bitcoin: {target_wallet['address']} 78 | =====Made by mizogg.co.uk Donations 3P7PZLbwSt2bqUMsHF9xDsaNKhafiGuWDB =====""") 79 | else: 80 | console.print('[red] [' + str(count) + '] ------------------------[/red]') 81 | console.print('[red]🔁 Total Checked 👇[' + str(total) + '] [/red]') 82 | console.print('[red]\nmnemonic_words : [/red]', mnemonic_words) 83 | for bad_wallet in data: 84 | console.print('[purple]Derivation Path : [/purple]', bad_wallet['path'], '[red] : Bitcoin Address : [/red]', bad_wallet['address']) 85 | console.print('[red]Privatekey WIF : [/red]', bad_wallet['privatekey']) 86 | -------------------------------------------------------------------------------- /wordsearch_ice/ice_secp256k1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mizogg/python-mnemonic/61a8b68576f644f7f07291ceeae6c4f2d7b6c21f/wordsearch_ice/ice_secp256k1.dll -------------------------------------------------------------------------------- /wordsearch_ice/ice_secp256k1.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mizogg/python-mnemonic/61a8b68576f644f7f07291ceeae6c4f2d7b6c21f/wordsearch_ice/ice_secp256k1.so -------------------------------------------------------------------------------- /wordsearch_ice/numbers.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | 3 4 | 4 5 | 5 6 | 6 7 | 7 8 | 8 9 | 9 10 | 10 11 | 11 12 | 12 13 | 13 14 | 14 15 | 15 16 | 16 17 | 17 18 | 18 19 | 19 20 | 20 21 | 21 22 | 22 23 | 23 24 | 24 25 | 25 26 | 26 27 | 27 28 | 28 29 | 29 30 | 30 31 | 31 32 | 32 33 | 33 34 | 34 35 | 35 36 | 36 37 | 37 38 | 38 39 | 39 40 | 40 41 | 41 42 | 42 43 | 43 44 | 44 45 | 45 46 | 46 47 | 47 48 | 48 49 | 49 50 | 50 51 | 51 52 | 52 53 | 53 54 | 54 55 | 55 56 | 56 57 | 57 58 | 58 59 | 59 60 | 60 61 | 61 62 | 62 63 | 63 64 | 64 65 | 65 66 | 66 67 | 67 68 | 68 69 | 69 70 | 70 71 | 71 72 | 72 73 | 73 74 | 74 75 | 75 76 | 76 77 | 77 78 | 78 79 | 79 80 | 80 81 | 81 82 | 82 83 | 83 84 | 84 85 | 85 86 | 86 87 | 87 88 | 88 89 | 89 90 | 90 91 | 91 92 | 92 93 | 93 94 | 94 95 | 95 96 | 96 97 | 97 98 | 98 99 | 99 100 | 100 101 | 101 102 | 102 103 | 103 104 | 104 105 | 105 106 | 106 107 | 107 108 | 108 109 | 109 110 | 110 111 | 111 112 | 112 113 | 113 114 | 114 115 | 115 116 | 116 117 | 117 118 | 118 119 | 119 120 | 120 121 | 121 122 | 122 123 | 123 124 | 124 125 | 125 126 | 126 127 | 127 128 | 128 129 | 129 130 | 130 131 | 131 132 | 132 133 | 133 134 | 134 135 | 135 136 | 136 137 | 137 138 | 138 139 | 139 140 | 140 141 | 141 142 | 142 143 | 143 144 | 144 145 | 145 146 | 146 147 | 147 148 | 148 149 | 149 150 | 150 151 | 151 152 | 152 153 | 153 154 | 154 155 | 155 156 | 156 157 | 157 158 | 158 159 | 159 160 | 160 161 | 161 162 | 162 163 | 163 164 | 164 165 | 165 166 | 166 167 | 167 168 | 168 169 | 169 170 | 170 171 | 171 172 | 172 173 | 173 174 | 174 175 | 175 176 | 176 177 | 177 178 | 178 179 | 179 180 | 180 181 | 181 182 | 182 183 | 183 184 | 184 185 | 185 186 | 186 187 | 187 188 | 188 189 | 189 190 | 190 191 | 191 192 | 192 193 | 193 194 | 194 195 | 195 196 | 196 197 | 197 198 | 198 199 | 199 200 | 200 201 | 201 202 | 202 203 | 203 204 | 204 205 | 205 206 | 206 207 | 207 208 | 208 209 | 209 210 | 210 211 | 211 212 | 212 213 | 213 214 | 214 215 | 215 216 | 216 217 | 217 218 | 218 219 | 219 220 | 220 221 | 221 222 | 222 223 | 223 224 | 224 225 | 225 226 | 226 227 | 227 228 | 228 229 | 229 230 | 230 231 | 231 232 | 232 233 | 233 234 | 234 235 | 235 236 | 236 237 | 237 238 | 238 239 | 239 240 | 240 241 | 241 242 | 242 243 | 243 244 | 244 245 | 245 246 | 246 247 | 247 248 | 248 249 | 249 250 | 250 251 | 251 252 | 252 253 | 253 254 | 254 255 | 255 256 | 256 257 | 257 258 | 258 259 | 259 260 | 260 261 | 261 262 | 262 263 | 263 264 | 264 265 | 265 266 | 266 267 | 267 268 | 268 269 | 269 270 | 270 271 | 271 272 | 272 273 | 273 274 | 274 275 | 275 276 | 276 277 | 277 278 | 278 279 | 279 280 | 280 281 | 281 282 | 282 283 | 283 284 | 284 285 | 285 286 | 286 287 | 287 288 | 288 289 | 289 290 | 290 291 | 291 292 | 292 293 | 293 294 | 294 295 | 295 296 | 296 297 | 297 298 | 298 299 | 299 300 | 300 301 | 301 302 | 302 303 | 303 304 | 304 305 | 305 306 | 306 307 | 307 308 | 308 309 | 309 310 | 310 311 | 311 312 | 312 313 | 313 314 | 314 315 | 315 316 | 316 317 | 317 318 | 318 319 | 319 320 | 320 321 | 321 322 | 322 323 | 323 324 | 324 325 | 325 326 | 326 327 | 327 328 | 328 329 | 329 330 | 330 331 | 331 332 | 332 333 | 333 334 | 334 335 | 335 336 | 336 337 | 337 338 | 338 339 | 339 340 | 340 341 | 341 342 | 342 343 | 343 344 | 344 345 | 345 346 | 346 347 | 347 348 | 348 349 | 349 350 | 350 351 | 351 352 | 352 353 | 353 354 | 354 355 | 355 356 | 356 357 | 357 358 | 358 359 | 359 360 | 360 361 | 361 362 | 362 363 | 363 364 | 364 365 | 365 366 | 366 367 | 367 368 | 368 369 | 369 370 | 370 371 | 371 372 | 372 373 | 373 374 | 374 375 | 375 376 | 376 377 | 377 378 | 378 379 | 379 380 | 380 381 | 381 382 | 382 383 | 383 384 | 384 385 | 385 386 | 386 387 | 387 388 | 388 389 | 389 390 | 390 391 | 391 392 | 392 393 | 393 394 | 394 395 | 395 396 | 396 397 | 397 398 | 398 399 | 399 400 | 400 401 | 401 402 | 402 403 | 403 404 | 404 405 | 405 406 | 406 407 | 407 408 | 408 409 | 409 410 | 410 411 | 411 412 | 412 413 | 413 414 | 414 415 | 415 416 | 416 417 | 417 418 | 418 419 | 419 420 | 420 421 | 421 422 | 422 423 | 423 424 | 424 425 | 425 426 | 426 427 | 427 428 | 428 429 | 429 430 | 430 431 | 431 432 | 432 433 | 433 434 | 434 435 | 435 436 | 436 437 | 437 438 | 438 439 | 439 440 | 440 441 | 441 442 | 442 443 | 443 444 | 444 445 | 445 446 | 446 447 | 447 448 | 448 449 | 449 450 | 450 451 | 451 452 | 452 453 | 453 454 | 454 455 | 455 456 | 456 457 | 457 458 | 458 459 | 459 460 | 460 461 | 461 462 | 462 463 | 463 464 | 464 465 | 465 466 | 466 467 | 467 468 | 468 469 | 469 470 | 470 471 | 471 472 | 472 473 | 473 474 | 474 475 | 475 476 | 476 477 | 477 478 | 478 479 | 479 480 | 480 481 | 481 482 | 482 483 | 483 484 | 484 485 | 485 486 | 486 487 | 487 488 | 488 489 | 489 490 | 490 491 | 491 492 | 492 493 | 493 494 | 494 495 | 495 496 | 496 497 | 497 498 | 498 499 | 499 500 | 500 501 | 501 502 | 502 503 | 503 504 | 504 505 | 505 506 | 506 507 | 507 508 | 508 509 | 509 510 | 510 511 | 511 512 | 512 513 | 513 514 | 514 515 | 515 516 | 516 517 | 517 518 | 518 519 | 519 520 | 520 521 | 521 522 | 522 523 | 523 524 | 524 525 | 525 526 | 526 527 | 527 528 | 528 529 | 529 530 | 530 531 | 531 532 | 532 533 | 533 534 | 534 535 | 535 536 | 536 537 | 537 538 | 538 539 | 539 540 | 540 541 | 541 542 | 542 543 | 543 544 | 544 545 | 545 546 | 546 547 | 547 548 | 548 549 | 549 550 | 550 551 | 551 552 | 552 553 | 553 554 | 554 555 | 555 556 | 556 557 | 557 558 | 558 559 | 559 560 | 560 561 | 561 562 | 562 563 | 563 564 | 564 565 | 565 566 | 566 567 | 567 568 | 568 569 | 569 570 | 570 571 | 571 572 | 572 573 | 573 574 | 574 575 | 575 576 | 576 577 | 577 578 | 578 579 | 579 580 | 580 581 | 581 582 | 582 583 | 583 584 | 584 585 | 585 586 | 586 587 | 587 588 | 588 589 | 589 590 | 590 591 | 591 592 | 592 593 | 593 594 | 594 595 | 595 596 | 596 597 | 597 598 | 598 599 | 599 600 | 600 601 | 601 602 | 602 603 | 603 604 | 604 605 | 605 606 | 606 607 | 607 608 | 608 609 | 609 610 | 610 611 | 611 612 | 612 613 | 613 614 | 614 615 | 615 616 | 616 617 | 617 618 | 618 619 | 619 620 | 620 621 | 621 622 | 622 623 | 623 624 | 624 625 | 625 626 | 626 627 | 627 628 | 628 629 | 629 630 | 630 631 | 631 632 | 632 633 | 633 634 | 634 635 | 635 636 | 636 637 | 637 638 | 638 639 | 639 640 | 640 641 | 641 642 | 642 643 | 643 644 | 644 645 | 645 646 | 646 647 | 647 648 | 648 649 | 649 650 | 650 651 | 651 652 | 652 653 | 653 654 | 654 655 | 655 656 | 656 657 | 657 658 | 658 659 | 659 660 | 660 661 | 661 662 | 662 663 | 663 664 | 664 665 | 665 666 | 666 667 | 667 668 | 668 669 | 669 670 | 670 671 | 671 672 | 672 673 | 673 674 | 674 675 | 675 676 | 676 677 | 677 678 | 678 679 | 679 680 | 680 681 | 681 682 | 682 683 | 683 684 | 684 685 | 685 686 | 686 687 | 687 688 | 688 689 | 689 690 | 690 691 | 691 692 | 692 693 | 693 694 | 694 695 | 695 696 | 696 697 | 697 698 | 698 699 | 699 700 | 700 701 | 701 702 | 702 703 | 703 704 | 704 705 | 705 706 | 706 707 | 707 708 | 708 709 | 709 710 | 710 711 | 711 712 | 712 713 | 713 714 | 714 715 | 715 716 | 716 717 | 717 718 | 718 719 | 719 720 | 720 721 | 721 722 | 722 723 | 723 724 | 724 725 | 725 726 | 726 727 | 727 728 | 728 729 | 729 730 | 730 731 | 731 732 | 732 733 | 733 734 | 734 735 | 735 736 | 736 737 | 737 738 | 738 739 | 739 740 | 740 741 | 741 742 | 742 743 | 743 744 | 744 745 | 745 746 | 746 747 | 747 748 | 748 749 | 749 750 | 750 751 | 751 752 | 752 753 | 753 754 | 754 755 | 755 756 | 756 757 | 757 758 | 758 759 | 759 760 | 760 761 | 761 762 | 762 763 | 763 764 | 764 765 | 765 766 | 766 767 | 767 768 | 768 769 | 769 770 | 770 771 | 771 772 | 772 773 | 773 774 | 774 775 | 775 776 | 776 777 | 777 778 | 778 779 | 779 780 | 780 781 | 781 782 | 782 783 | 783 784 | 784 785 | 785 786 | 786 787 | 787 788 | 788 789 | 789 790 | 790 791 | 791 792 | 792 793 | 793 794 | 794 795 | 795 796 | 796 797 | 797 798 | 798 799 | 799 800 | 800 801 | 801 802 | 802 803 | 803 804 | 804 805 | 805 806 | 806 807 | 807 808 | 808 809 | 809 810 | 810 811 | 811 812 | 812 813 | 813 814 | 814 815 | 815 816 | 816 817 | 817 818 | 818 819 | 819 820 | 820 821 | 821 822 | 822 823 | 823 824 | 824 825 | 825 826 | 826 827 | 827 828 | 828 829 | 829 830 | 830 831 | 831 832 | 832 833 | 833 834 | 834 835 | 835 836 | 836 837 | 837 838 | 838 839 | 839 840 | 840 841 | 841 842 | 842 843 | 843 844 | 844 845 | 845 846 | 846 847 | 847 848 | 848 849 | 849 850 | 850 851 | 851 852 | 852 853 | 853 854 | 854 855 | 855 856 | 856 857 | 857 858 | 858 859 | 859 860 | 860 861 | 861 862 | 862 863 | 863 864 | 864 865 | 865 866 | 866 867 | 867 868 | 868 869 | 869 870 | 870 871 | 871 872 | 872 873 | 873 874 | 874 875 | 875 876 | 876 877 | 877 878 | 878 879 | 879 880 | 880 881 | 881 882 | 882 883 | 883 884 | 884 885 | 885 886 | 886 887 | 887 888 | 888 889 | 889 890 | 890 891 | 891 892 | 892 893 | 893 894 | 894 895 | 895 896 | 896 897 | 897 898 | 898 899 | 899 900 | 900 901 | 901 902 | 902 903 | 903 904 | 904 905 | 905 906 | 906 907 | 907 908 | 908 909 | 909 910 | 910 911 | 911 912 | 912 913 | 913 914 | 914 915 | 915 916 | 916 917 | 917 918 | 918 919 | 919 920 | 920 921 | 921 922 | 922 923 | 923 924 | 924 925 | 925 926 | 926 927 | 927 928 | 928 929 | 929 930 | 930 931 | 931 932 | 932 933 | 933 934 | 934 935 | 935 936 | 936 937 | 937 938 | 938 939 | 939 940 | 940 941 | 941 942 | 942 943 | 943 944 | 944 945 | 945 946 | 946 947 | 947 948 | 948 949 | 949 950 | 950 951 | 951 952 | 952 953 | 953 954 | 954 955 | 955 956 | 956 957 | 957 958 | 958 959 | 959 960 | 960 961 | 961 962 | 962 963 | 963 964 | 964 965 | 965 966 | 966 967 | 967 968 | 968 969 | 969 970 | 970 971 | 971 972 | 972 973 | 973 974 | 974 975 | 975 976 | 976 977 | 977 978 | 978 979 | 979 980 | 980 981 | 981 982 | 982 983 | 983 984 | 984 985 | 985 986 | 986 987 | 987 988 | 988 989 | 989 990 | 990 991 | 991 992 | 992 993 | 993 994 | 994 995 | 995 996 | 996 997 | 997 998 | 998 999 | 999 1000 | 1000 -------------------------------------------------------------------------------- /wordsearch_ice/secp256k1.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | 4 | @author: iceland 5 | """ 6 | 7 | import platform 8 | import os 9 | import sys 10 | import ctypes 11 | 12 | 13 | ############################################################################### 14 | N = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141 15 | Zero=b'\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 16 | #============================================================================== 17 | if platform.system().lower().startswith('win'): 18 | dllfile = 'ice_secp256k1.dll' 19 | if os.path.isfile(dllfile) == True: 20 | pathdll = os.path.realpath(dllfile) 21 | ice = ctypes.CDLL(pathdll) 22 | else: 23 | print('File {} not found'.format(dllfile)) 24 | 25 | elif platform.system().lower().startswith('lin'): 26 | dllfile = 'ice_secp256k1.so' 27 | if os.path.isfile(dllfile) == True: 28 | pathdll = os.path.realpath(dllfile) 29 | ice = ctypes.CDLL(pathdll) 30 | else: 31 | print('File {} not found'.format(dllfile)) 32 | 33 | else: 34 | print('[-] Unsupported Platform currently for ctypes dll method. Only [Windows and Linux] is working') 35 | sys.exit() 36 | ############################################################################### 37 | #============================================================================== 38 | # Coin type 39 | COIN_BTC = 0 40 | COIN_BSV = 1 41 | COIN_BTCD = 2 42 | COIN_ARG = 3 43 | COIN_AXE = 4 44 | COIN_BC = 5 45 | COIN_BCH = 6 46 | COIN_BSD = 7 47 | COIN_BTDX = 8 48 | COIN_BTG = 9 49 | COIN_BTX = 10 50 | COIN_CHA = 11 51 | COIN_DASH = 12 52 | COIN_DCR = 13 53 | COIN_DFC = 14 54 | COIN_DGB = 15 55 | COIN_DOGE = 16 56 | COIN_FAI = 17 57 | COIN_FTC = 18 58 | COIN_GRS = 19 59 | COIN_JBS = 20 60 | COIN_LTC = 21 61 | COIN_MEC = 22 62 | COIN_MONA = 23 63 | COIN_MZC = 24 64 | COIN_PIVX = 25 65 | COIN_POLIS= 26 66 | COIN_RIC = 27 67 | COIN_STRAT= 28 68 | COIN_SMART= 29 69 | COIN_VIA = 30 70 | COIN_XMY = 31 71 | COIN_ZEC = 32 72 | COIN_ZCL = 33 73 | COIN_ZERO = 34 74 | COIN_ZEN = 35 75 | COIN_TENT = 36 76 | COIN_ZEIT = 37 77 | COIN_VTC = 38 78 | COIN_UNO = 39 79 | COIN_SKC = 40 80 | COIN_RVN = 41 81 | COIN_PPC = 42 82 | COIN_OMC = 43 83 | COIN_OK = 44 84 | COIN_NMC = 45 85 | COIN_NLG = 46 86 | COIN_LBRY = 47 87 | COIN_DNR = 48 88 | COIN_BWK = 49 89 | 90 | #============================================================================== 91 | ice.scalar_multiplication.argtypes = [ctypes.c_char_p, ctypes.c_char_p] # pvk,ret 92 | #============================================================================== 93 | # ice.scalar_multiplications.argtypes = [ctypes.c_char_p, ctypes.c_int, ctypes.c_char_p] # pvk,len,ret 94 | #============================================================================== 95 | ice.get_x_to_y.argtypes = [ctypes.c_char_p, ctypes.c_bool, ctypes.c_char_p] # x,even,ret 96 | #============================================================================== 97 | ice.point_increment.argtypes = [ctypes.c_char_p, ctypes.c_char_p] # upub,ret 98 | #============================================================================== 99 | ice.point_negation.argtypes = [ctypes.c_char_p, ctypes.c_char_p] # upub,ret 100 | #============================================================================== 101 | ice.point_doubling.argtypes = [ctypes.c_char_p, ctypes.c_char_p] # upub,ret 102 | #============================================================================== 103 | ice.privatekey_to_coinaddress.argtypes = [ctypes.c_int, ctypes.c_int, ctypes.c_bool, ctypes.c_char_p] # intcoin,012,comp,pvk 104 | ice.privatekey_to_coinaddress.restype = ctypes.c_void_p 105 | #============================================================================== 106 | ice.privatekey_to_address.argtypes = [ctypes.c_int, ctypes.c_bool, ctypes.c_char_p] # 012,comp,pvk 107 | ice.privatekey_to_address.restype = ctypes.c_void_p 108 | #============================================================================== 109 | ice.hash_to_address.argtypes = [ctypes.c_int, ctypes.c_bool, ctypes.c_char_p] # 012,comp,hash 110 | ice.hash_to_address.restype = ctypes.c_void_p 111 | #============================================================================== 112 | ice.pubkey_to_address.argtypes = [ctypes.c_int, ctypes.c_bool, ctypes.c_char_p] # 012,comp,upub 113 | ice.pubkey_to_address.restype = ctypes.c_void_p 114 | #============================================================================== 115 | ice.privatekey_to_h160.argtypes = [ctypes.c_int, ctypes.c_bool, ctypes.c_char_p, ctypes.c_char_p] # 012,comp,pvk,ret 116 | #============================================================================== 117 | ice.privatekey_loop_h160.argtypes = [ctypes.c_ulonglong, ctypes.c_int, ctypes.c_bool, ctypes.c_char_p, ctypes.c_char_p] # num,012,comp,pvk,ret 118 | #============================================================================== 119 | ice.privatekey_loop_h160_sse.argtypes = [ctypes.c_ulonglong, ctypes.c_int, ctypes.c_bool, ctypes.c_char_p, ctypes.c_char_p] # num,012,comp,pvk,ret 120 | #============================================================================== 121 | ice.pubkey_to_h160.argtypes = [ctypes.c_int, ctypes.c_bool, ctypes.c_char_p, ctypes.c_char_p] # 012,comp,upub,ret 122 | #============================================================================== 123 | ice.pbkdf2_hmac_sha512_dll.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int] # ret, words, len 124 | #============================================================================== 125 | ice.pbkdf2_hmac_sha512_list.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_ulonglong, ctypes.c_int, ctypes.c_ulonglong] # ret,words,len,mnem_size,total 126 | #============================================================================== 127 | ice.pub_endo1.argtypes = [ctypes.c_char_p, ctypes.c_char_p] # upub,ret 128 | #============================================================================== 129 | ice.pub_endo2.argtypes = [ctypes.c_char_p, ctypes.c_char_p] # upub,ret 130 | #============================================================================== 131 | ice.b58_encode.argtypes = [ctypes.c_char_p] # _h 132 | ice.b58_encode.restype = ctypes.c_void_p 133 | #============================================================================== 134 | ice.b58_decode.argtypes = [ctypes.c_char_p] # addr 135 | ice.b58_decode.restype = ctypes.c_void_p 136 | #============================================================================== 137 | ice.bech32_address_decode.argtypes = [ctypes.c_int, ctypes.c_char_p, ctypes.c_char_p] # coin,b32_addr,h160 138 | #============================================================================== 139 | ice.get_sha256.argtypes = [ctypes.c_void_p, ctypes.c_int, ctypes.c_void_p] # input, len, ret 140 | #============================================================================== 141 | ice.create_baby_table.argtypes = [ctypes.c_ulonglong, ctypes.c_ulonglong, ctypes.c_char_p] # start,end,ret 142 | #============================================================================== 143 | ice.point_addition.argtypes = [ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p] # upub1,upub2,ret 144 | #============================================================================== 145 | ice.point_subtraction.argtypes = [ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p] # upub1,upub2,ret 146 | #============================================================================== 147 | ice.point_loop_subtraction.argtypes = [ctypes.c_ulonglong, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p] # k,upub1,upub2,ret 148 | #============================================================================== 149 | ice.point_loop_addition.argtypes = [ctypes.c_ulonglong, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p] # k,upub1,upub2,ret 150 | #============================================================================== 151 | ice.point_vector_addition.argtypes = [ctypes.c_ulonglong, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p] # num,upubs1,upubs2,ret 152 | #============================================================================== 153 | ice.point_sequential_increment_P2.argtypes = [ctypes.c_ulonglong, ctypes.c_char_p, ctypes.c_char_p] # num,upub1,ret 154 | #============================================================================== 155 | ice.point_sequential_increment_P2_mcpu.argtypes = [ctypes.c_ulonglong, ctypes.c_char_p, ctypes.c_int, ctypes.c_char_p] # num,upub1,mcpu,ret 156 | #============================================================================== 157 | ice.point_sequential_increment.argtypes = [ctypes.c_ulonglong, ctypes.c_char_p, ctypes.c_char_p] # num,upub1,ret 158 | #============================================================================== 159 | ice.point_sequential_decrement.argtypes = [ctypes.c_ulonglong, ctypes.c_char_p, ctypes.c_char_p] # num,upub1,ret 160 | #============================================================================== 161 | ice.pubkeyxy_to_ETH_address.argtypes = [ctypes.c_char_p] # upub_xy 162 | ice.pubkeyxy_to_ETH_address.restype = ctypes.c_void_p 163 | #============================================================================== 164 | ice.pubkeyxy_to_ETH_address_bytes.argtypes = [ctypes.c_char_p, ctypes.c_char_p] # upub_xy, ret 165 | #============================================================================== 166 | ice.privatekey_to_ETH_address.argtypes = [ctypes.c_char_p] # pvk 167 | ice.privatekey_to_ETH_address.restype = ctypes.c_void_p 168 | #============================================================================== 169 | ice.privatekey_to_ETH_address_bytes.argtypes = [ctypes.c_char_p, ctypes.c_char_p] # pvk, ret 170 | #============================================================================== 171 | ice.privatekey_group_to_ETH_address.argtypes = [ctypes.c_char_p, ctypes.c_int] # pvk, m 172 | ice.privatekey_group_to_ETH_address.restype = ctypes.c_void_p 173 | #============================================================================== 174 | ice.privatekey_group_to_ETH_address_bytes.argtypes = [ctypes.c_char_p, ctypes.c_int, ctypes.c_char_p] # pvk,m,ret 175 | #============================================================================== 176 | ice.init_P2_Group.argtypes = [ctypes.c_char_p] # upub 177 | #============================================================================== 178 | ice.free_memory.argtypes = [ctypes.c_void_p] # pointer 179 | #============================================================================== 180 | ice.bloom_check_add.argtypes = [ctypes.c_void_p, ctypes.c_int, ctypes.c_int, ctypes.c_ulonglong, ctypes.c_ubyte, ctypes.c_char_p] #buff, len, 0_1, _bits, _hashes, _bf 181 | ice.bloom_check_add.restype = ctypes.c_int 182 | #============================================================================== 183 | ice.bloom_batch_add.argtypes = [ctypes.c_int, ctypes.c_void_p, ctypes.c_int, ctypes.c_int, ctypes.c_ulonglong, ctypes.c_ubyte, ctypes.c_char_p] #chunk, buff, len, 0_1, _bits, _hashes, _bf 184 | #============================================================================== 185 | ice.test_bit_set_bit.argtypes = [ctypes.c_char_p, ctypes.c_ulonglong, ctypes.c_int] #_bf, _bits, 0_1 186 | 187 | ice.init_secp256_lib() 188 | #============================================================================== 189 | ############################################################################### 190 | 191 | 192 | def version(): 193 | ice.version() 194 | #============================================================================== 195 | def _scalar_multiplication(pvk_int): 196 | ''' Integer value passed to function. 65 bytes uncompressed pubkey output ''' 197 | res = (b'\x00') * 65 198 | pass_int_value = fl(pvk_int).encode('utf8') 199 | ice.scalar_multiplication(pass_int_value, res) 200 | return res 201 | def scalar_multiplication(pvk_int): 202 | if pvk_int < 0: pvk_int = N+pvk_int 203 | res = _scalar_multiplication(pvk_int) 204 | return bytes(bytearray(res)) 205 | #============================================================================== 206 | # ============================================================================= 207 | # def _scalar_multiplications(pvk_int_list): 208 | # ''' Integer list passed to function. 65*len bytes uncompressed pubkey output. No Zero Point handling ''' 209 | # sz = len(pvk_int_list) 210 | # res = (b'\x00') * (65 * sz) 211 | # pvks = ''.join(pvk_int_list).encode('utf8') 212 | # ice.scalar_multiplications(pvks, sz, res) 213 | # return res 214 | # def scalar_multiplications(pvk_int_list): 215 | # pvk_int_list = [fl(N+i) if i < 0 else fl(i) for i in pvk_int_list] 216 | # res = _scalar_multiplications(pvk_int_list) 217 | # return bytes(bytearray(res)) 218 | # ============================================================================= 219 | #============================================================================== 220 | def point_multiplication(k, P): 221 | ''' k=scalar. P = Input Point. Output is 65 bytes uncompressed pubkey ''' 222 | if type(P) == int: k,P = P,k 223 | def bits(k): 224 | while k: 225 | yield k & 1 226 | k >>= 1 227 | result = Zero 228 | addend = P 229 | for bit in bits(k): 230 | if bit == 1: result=point_addition(result,addend) 231 | addend=point_doubling(addend) 232 | return result 233 | #============================================================================== 234 | def _get_x_to_y(x_hex, is_even): 235 | ''' Input x_hex encoded as bytes and bool is_even. 32 bytes y of point output ''' 236 | res = (b'\x00') * 32 237 | ice.get_x_to_y(x_hex.encode('utf8'), is_even, res) 238 | return res 239 | def get_x_to_y(x_hex, is_even): 240 | res = _get_x_to_y(x_hex, is_even) 241 | return bytes(bytearray(res)) 242 | #============================================================================== 243 | def _point_increment(pubkey_bytes): 244 | res = (b'\x00') * 65 245 | ice.point_increment(pubkey_bytes, res) 246 | return res 247 | def point_increment(pubkey_bytes): 248 | res = _point_increment(pubkey_bytes) 249 | return bytes(bytearray(res)) 250 | #============================================================================== 251 | def _point_negation(pubkey_bytes): 252 | res = (b'\x00') * 65 253 | ice.point_negation(pubkey_bytes, res) 254 | return res 255 | def point_negation(pubkey_bytes): 256 | res = _point_negation(pubkey_bytes) 257 | return bytes(bytearray(res)) 258 | #============================================================================== 259 | def _point_doubling(pubkey_bytes): 260 | res = (b'\x00') * 65 261 | ice.point_doubling(pubkey_bytes, res) 262 | return res 263 | def point_doubling(pubkey_bytes): 264 | res = _point_doubling(pubkey_bytes) 265 | return bytes(bytearray(res)) 266 | #============================================================================== 267 | def init_P2_Group(pubkey_bytes): 268 | ice.init_P2_Group(pubkey_bytes) 269 | #============================================================================== 270 | def privatekey_to_coinaddress(coin_type, addr_type, iscompressed, pvk_int): 271 | # type = 0 [p2pkh], 1 [p2sh], 2 [bech32] 272 | if pvk_int < 0: pvk_int = N+pvk_int 273 | pass_int_value = fl(pvk_int).encode('utf8') 274 | res = ice.privatekey_to_coinaddress(coin_type, addr_type, iscompressed, pass_int_value) 275 | addr = (ctypes.cast(res, ctypes.c_char_p).value).decode('utf8') 276 | ice.free_memory(res) 277 | return addr 278 | #============================================================================== 279 | def privatekey_to_address(addr_type, iscompressed, pvk_int): 280 | # type = 0 [p2pkh], 1 [p2sh], 2 [bech32] 281 | if pvk_int < 0: pvk_int = N+pvk_int 282 | pass_int_value = fl(pvk_int).encode('utf8') 283 | res = ice.privatekey_to_address(addr_type, iscompressed, pass_int_value) 284 | addr = (ctypes.cast(res, ctypes.c_char_p).value).decode('utf8') 285 | ice.free_memory(res) 286 | return addr 287 | #============================================================================== 288 | def hash_to_address(addr_type, iscompressed, hash160_bytes): 289 | # type = 0 [p2pkh], 1 [p2sh], 2 [bech32] 290 | res = ice.hash_to_address(addr_type, iscompressed, hash160_bytes) 291 | addr = (ctypes.cast(res, ctypes.c_char_p).value).decode('utf8') 292 | ice.free_memory(res) 293 | return addr 294 | #============================================================================== 295 | def pubkey_to_address(addr_type, iscompressed, pubkey_bytes): 296 | # type = 0 [p2pkh], 1 [p2sh], 2 [bech32] 297 | res = ice.pubkey_to_address(addr_type, iscompressed, pubkey_bytes) 298 | addr = (ctypes.cast(res, ctypes.c_char_p).value).decode('utf8') 299 | ice.free_memory(res) 300 | return addr 301 | #============================================================================== 302 | def _privatekey_to_h160(addr_type, iscompressed, pvk_int): 303 | # type = 0 [p2pkh], 1 [p2sh], 2 [bech32] 304 | if pvk_int < 0: pvk_int = N+pvk_int 305 | pass_int_value = fl(pvk_int).encode('utf8') 306 | res = (b'\x00') * 20 307 | ice.privatekey_to_h160(addr_type, iscompressed, pass_int_value, res) 308 | return res 309 | def privatekey_to_h160(addr_type, iscompressed, pvk_int): 310 | res = _privatekey_to_h160(addr_type, iscompressed, pvk_int) 311 | return bytes(bytearray(res)) 312 | #============================================================================== 313 | def _privatekey_loop_h160(num, addr_type, iscompressed, pvk_int): 314 | # type = 0 [p2pkh], 1 [p2sh], 2 [bech32] 315 | if pvk_int < 0: pvk_int = N+pvk_int 316 | pass_int_value = fl(pvk_int).encode('utf8') 317 | res = (b'\x00') * (20 * num) 318 | ice.privatekey_loop_h160(num, addr_type, iscompressed, pass_int_value, res) 319 | return res 320 | def privatekey_loop_h160(num, addr_type, iscompressed, pvk_int): 321 | if num <= 0: num = 1 322 | res = _privatekey_loop_h160(num, addr_type, iscompressed, pvk_int) 323 | return bytes(bytearray(res)) 324 | #============================================================================== 325 | def _privatekey_loop_h160_sse(num, addr_type, iscompressed, pvk_int): 326 | # type = 0 [p2pkh], 1 [p2sh], 2 [bech32] 327 | if pvk_int < 0: pvk_int = N+pvk_int 328 | pass_int_value = fl(pvk_int).encode('utf8') 329 | res = (b'\x00') * (20 * num) 330 | ice.privatekey_loop_h160_sse(num, addr_type, iscompressed, pass_int_value, res) 331 | return res 332 | def privatekey_loop_h160_sse(num, addr_type, iscompressed, pvk_int): 333 | if num <= 0: num = 1 334 | res = _privatekey_loop_h160_sse(num, addr_type, iscompressed, pvk_int) 335 | return bytes(bytearray(res)) 336 | #============================================================================== 337 | def _pubkey_to_h160(addr_type, iscompressed, pubkey_bytes): 338 | # type = 0 [p2pkh], 1 [p2sh], 2 [bech32] 339 | res = (b'\x00') * 20 340 | ice.pubkey_to_h160(addr_type, iscompressed, pubkey_bytes, res) 341 | return res 342 | def pubkey_to_h160(addr_type, iscompressed, pubkey_bytes): 343 | res = _pubkey_to_h160(addr_type, iscompressed, pubkey_bytes) 344 | return bytes(bytearray(res)) 345 | #============================================================================== 346 | def _pub_endo1(pubkey_bytes): 347 | res = (b'\x00') * 65 348 | ice.pub_endo1(pubkey_bytes, res) 349 | return res 350 | def pub_endo1(pubkey_bytes): 351 | res = _pub_endo1(pubkey_bytes) 352 | return bytes(bytearray(res)) 353 | #============================================================================== 354 | def _pub_endo2(pubkey_bytes): 355 | res = (b'\x00') * 65 356 | ice.pub_endo2(pubkey_bytes, res) 357 | return res 358 | def pub_endo2(pubkey_bytes): 359 | res = _pub_endo2(pubkey_bytes) 360 | return bytes(bytearray(res)) 361 | #============================================================================== 362 | def b58py(data): 363 | B58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" 364 | 365 | if data[0] == 0: 366 | return "1" + b58py(data[1:]) 367 | 368 | x = sum([v * (256 ** i) for i, v in enumerate(data[::-1])]) 369 | ret = "" 370 | while x > 0: 371 | ret = B58[x % 58] + ret 372 | x = x // 58 373 | 374 | return ret 375 | #============================================================================== 376 | def b58_encode(inp_bytes): 377 | res = ice.b58_encode(inp_bytes, len(inp_bytes)) 378 | addr = (ctypes.cast(res, ctypes.c_char_p).value).decode('utf8') 379 | ice.free_memory(res) 380 | return addr 381 | #============================================================================== 382 | def b58_decode(inp): 383 | res = ice.b58_decode(inp.encode("utf-8")) 384 | addr = (ctypes.cast(res, ctypes.c_char_p).value).decode('utf8') 385 | ice.free_memory(res) 386 | return addr 387 | #============================================================================== 388 | def bech32_address_decode(addr, coin_type=0): 389 | ''' Input address in String format. Output h160 in hex string format 390 | [Note] p2wsh = bech32(sha256(21 + pubkey + ac)). So Decoding it not Needed ''' 391 | if len(addr) > 50: print('[Error] Bech32 p2wsh Not Supported. Result Truncated') 392 | h160 = (b'\x00') * 20 393 | ice.bech32_address_decode(coin_type, addr.encode("utf-8"), h160) 394 | return bytes(bytearray(h160)).hex() 395 | #============================================================================== 396 | def address_to_h160(p2pkh): 397 | ''' Input address in String format. Output h160 in hex string format''' 398 | h1 = b58_decode(p2pkh) 399 | return h1[2:-8] 400 | #============================================================================== 401 | def btc_wif_to_pvk_hex(wif): 402 | pvk = '' 403 | if wif[0] == '5': 404 | pvk = b58_decode(wif)[2:-8] 405 | elif wif[0] in ['L', 'K']: 406 | pvk = b58_decode(wif)[2:-10] 407 | else: print('[Error] Incorrect WIF Key') 408 | return pvk 409 | #============================================================================== 410 | def btc_wif_to_pvk_int(wif): 411 | pvk = '' 412 | pvk_hex = btc_wif_to_pvk_hex(wif) 413 | if pvk_hex != '': pvk = int(pvk_hex, 16) 414 | return pvk 415 | #============================================================================== 416 | def btc_pvk_to_wif(pvk, is_compressed=True): 417 | ''' Input Privatekey can in any 1 of these [Integer] [Hex] [Bytes] form''' 418 | inp = '' 419 | suff = '01' if is_compressed == True else '' 420 | if type(pvk) in [int, str]: inp = bytes.fromhex('80' + fl(pvk) + suff) 421 | elif type(pvk) == bytes: inp = b'\x80' + fl(pvk) + bytes.fromhex(suff) 422 | else: print("[Error] Input Privatekey format [Integer] [Hex] [Bytes] allowed only") 423 | if inp != '': 424 | res = get_sha256(inp) 425 | res2 = get_sha256(res) 426 | return b58_encode(inp + res2[:4]) 427 | else: return inp 428 | #============================================================================== 429 | def fl(sstr, length=64): 430 | ''' Fill input to exact 32 bytes. If input is int or str the return is str. if input is bytes return is bytes''' 431 | if type(sstr) == int: fixed = hex(sstr)[2:].zfill(length) 432 | elif type(sstr) == str: fixed = sstr[2:].zfill(length) if sstr[:2].lower() == '0x' else sstr.zfill(length) 433 | elif type(sstr) == bytes: fixed = (b'\x00') * (32 - len(sstr)) + sstr 434 | else: print("[Error] Input format [Integer] [Hex] [Bytes] allowed only") 435 | return fixed 436 | #============================================================================== 437 | def pbkdf2_hmac_sha512_dll(words): 438 | seed_bytes = (b'\x00') * 64 439 | # words = 'good push broken people salad bar mad squirrel joy dismiss merge jeans token wear boring manual doll near sniff turtle sunset lend invest foil' 440 | ice.pbkdf2_hmac_sha512_dll(seed_bytes, words.encode("utf-8"), len(words)) 441 | return seed_bytes 442 | #============================================================================== 443 | def pbkdf2_hmac_sha512_list(words_list): 444 | ''' strength is [12, 18, 24]. words_list is a list of strings with each line having valid mnemonics''' 445 | wl = len(words_list) 446 | strength = len(words_list[0].split()) 447 | words = ' '.join(words_list) 448 | seed_bytes = (b'\x00') * (64 * wl) 449 | # words = 'good push broken people salad bar mad squirrel joy dismiss merge jeans token wear boring manual doll near sniff turtle sunset lend invest foil' 450 | ice.pbkdf2_hmac_sha512_list(seed_bytes, words.encode("utf-8"), len(words), strength, wl) 451 | return seed_bytes 452 | #============================================================================== 453 | def get_sha256(input_bytes): 454 | digest_bytes = (b'\x00') * 32 455 | if type(input_bytes) == str: input_bytes = input_bytes.encode("utf-8") 456 | # MiniKey example 457 | ice.get_sha256(input_bytes, len(input_bytes), digest_bytes) 458 | return digest_bytes 459 | #============================================================================== 460 | def create_baby_table(start_value, end_value): 461 | res = (b'\x00') * ((1+end_value-start_value) * 32) 462 | ice.create_baby_table(start_value, end_value, res) 463 | return bytes(bytearray(res)) 464 | #============================================================================== 465 | def _point_addition(pubkey1_bytes, pubkey2_bytes): 466 | res = (b'\x00') * 65 467 | ice.point_addition(pubkey1_bytes, pubkey2_bytes, res) 468 | return res 469 | def point_addition(pubkey1_bytes, pubkey2_bytes): 470 | res = _point_addition(pubkey1_bytes, pubkey2_bytes) 471 | return bytes(bytearray(res)) 472 | #============================================================================== 473 | def _point_subtraction(pubkey1_bytes, pubkey2_bytes): 474 | res = (b'\x00') * 65 475 | ice.point_subtraction(pubkey1_bytes, pubkey2_bytes, res) 476 | return res 477 | def point_subtraction(pubkey1_bytes, pubkey2_bytes): 478 | res = _point_subtraction(pubkey1_bytes, pubkey2_bytes) 479 | return bytes(bytearray(res)) 480 | #============================================================================== 481 | def _point_loop_subtraction(num, pubkey1_bytes, pubkey2_bytes): 482 | res = (b'\x00') * (65 * num) 483 | ice.point_loop_subtraction(num, pubkey1_bytes, pubkey2_bytes, res) 484 | return res 485 | def point_loop_subtraction(num, pubkey1_bytes, pubkey2_bytes): 486 | ''' Continuously subtracting point2 into point1 in a loop of num times. 487 | Output is array of pubkeys P1-P2, P1-2P2, P1-3P2, P1-4P2....''' 488 | if num <= 0: num = 1 489 | res = _point_loop_subtraction(num, pubkey1_bytes, pubkey2_bytes) 490 | return bytes(bytearray(res)) 491 | #============================================================================== 492 | def _point_loop_addition(num, pubkey1_bytes, pubkey2_bytes): 493 | res = (b'\x00') * (65 * num) 494 | ice.point_loop_addition(num, pubkey1_bytes, pubkey2_bytes, res) 495 | return res 496 | def point_loop_addition(num, pubkey1_bytes, pubkey2_bytes): 497 | ''' Continuously adding point2 into point1 in a loop of num times. 498 | Output is array of pubkeys P1+P2, P1+2P2, P1+3P2, P1+4P2....''' 499 | if num <= 0: num = 1 500 | res = _point_loop_addition(num, pubkey1_bytes, pubkey2_bytes) 501 | return bytes(bytearray(res)) 502 | #============================================================================== 503 | def _point_vector_addition(num, pubkeys1_bytes, pubkeys2_bytes): 504 | res = (b'\x00') * (65 * num) 505 | ice.point_vector_addition(num, pubkeys1_bytes, pubkeys2_bytes, res) 506 | return res 507 | def point_vector_addition(num, pubkeys1_bytes, pubkeys2_bytes): 508 | ''' Adding two array of points of equal length. ''' 509 | if num <= 0: num = 1 510 | res = _point_vector_addition(num, pubkeys1_bytes, pubkeys2_bytes) 511 | return bytes(bytearray(res)) 512 | #============================================================================== 513 | def _point_sequential_increment_P2(num, pubkey1_bytes): 514 | res = (b'\x00') * (65 * num) 515 | ice.point_sequential_increment_P2(num, pubkey1_bytes, res) 516 | return res 517 | def point_sequential_increment_P2(num, pubkey1_bytes): 518 | ''' This is the fastest implementation to add point P2 in the given Point sequentially.''' 519 | if num <= 0: num = 1 520 | res = _point_sequential_increment_P2(num, pubkey1_bytes) 521 | return bytes(bytearray(res)) 522 | #============================================================================== 523 | def _point_sequential_increment_P2_mcpu(num, pubkey1_bytes, mcpu): 524 | res = (b'\x00') * (65 * num) 525 | ice.point_sequential_increment_P2_mcpu(num, pubkey1_bytes, mcpu, res) 526 | return res 527 | def point_sequential_increment_P2_mcpu(num, pubkey1_bytes, mcpu=os.cpu_count()): 528 | ''' This is the fastest multi CPU implementation to add point P2 in the given Point sequentially. Threads are Not optimised yet''' 529 | if num <= 0: num = 1 530 | res = _point_sequential_increment_P2_mcpu(num, pubkey1_bytes, mcpu) 531 | return bytes(bytearray(res)) 532 | #============================================================================== 533 | def _point_sequential_increment(num, pubkey1_bytes): 534 | res = (b'\x00') * (65 * num) 535 | ice.point_sequential_increment(num, pubkey1_bytes, res) 536 | return res 537 | def point_sequential_increment(num, pubkey1_bytes): 538 | ''' This is the fastest implementation using G''' 539 | if num <= 0: num = 1 540 | res = _point_sequential_increment(num, pubkey1_bytes) 541 | return bytes(bytearray(res)) 542 | #============================================================================== 543 | def _point_sequential_decrement(num, pubkey1_bytes): 544 | res = (b'\x00') * (65 * num) 545 | ice.point_sequential_decrement(num, pubkey1_bytes, res) 546 | return res 547 | def point_sequential_decrement(num, pubkey1_bytes): 548 | ''' This is the fastest implementation using -G.''' 549 | if num <= 0: num = 1 550 | res = _point_sequential_decrement(num, pubkey1_bytes) 551 | return bytes(bytearray(res)) 552 | #============================================================================== 553 | def pubkey_to_ETH_address(pubkey_bytes): 554 | ''' 65 Upub bytes input. Output is 20 bytes ETH address lowercase with 0x as hex string''' 555 | xy = pubkey_bytes[1:] 556 | res = ice.pubkeyxy_to_ETH_address(xy) 557 | addr = (ctypes.cast(res, ctypes.c_char_p).value).decode('utf8') 558 | ice.free_memory(res) 559 | return '0x'+addr 560 | #============================================================================== 561 | def _pubkey_to_ETH_address_bytes(xy): 562 | res = (b'\x00') * 20 563 | ice.pubkeyxy_to_ETH_address_bytes(xy, res) 564 | return res 565 | def pubkey_to_ETH_address_bytes(pubkey_bytes): 566 | ''' 65 Upub bytes input. Output is 20 bytes ETH address lowercase without 0x''' 567 | xy = pubkey_bytes[1:] 568 | res = _pubkey_to_ETH_address_bytes(xy) 569 | return bytes(bytearray(res)) 570 | #============================================================================== 571 | def privatekey_to_ETH_address(pvk_int): 572 | ''' Privatekey Integer value passed to function. Output is 20 bytes ETH address lowercase with 0x as hex string''' 573 | if pvk_int < 0: pvk_int = N+pvk_int 574 | pass_int_value = fl(pvk_int).encode('utf8') 575 | res = ice.privatekey_to_ETH_address(pass_int_value) 576 | addr = (ctypes.cast(res, ctypes.c_char_p).value).decode('utf8') 577 | ice.free_memory(res) 578 | return '0x'+addr 579 | #============================================================================== 580 | def _privatekey_to_ETH_address_bytes(pass_int_value): 581 | res = (b'\x00') * 20 582 | ice.privatekey_to_ETH_address_bytes(pass_int_value, res) 583 | return res 584 | def privatekey_to_ETH_address_bytes(pvk_int): 585 | ''' Privatekey Integer value passed to function. Output is 20 bytes ETH address lowercase without 0x''' 586 | if pvk_int < 0: pvk_int = N+pvk_int 587 | pass_int_value = fl(pvk_int).encode('utf8') 588 | res = _privatekey_to_ETH_address_bytes(pass_int_value) 589 | return bytes(bytearray(res)) 590 | #============================================================================== 591 | def privatekey_group_to_ETH_address(pvk_int, m): 592 | ''' Starting Privatekey Integer value passed to function as pvk_int. 593 | Integer m is, how many times sequential increment is done from the starting key. 594 | Output is bytes 20*m of ETH address lowercase without 0x as hex string''' 595 | if m<=0: m = 1 596 | if pvk_int < 0: pvk_int = N+pvk_int 597 | start_pvk = fl(pvk_int).encode('utf8') 598 | res = ice.privatekey_group_to_ETH_address(start_pvk, m) 599 | addrlist = (ctypes.cast(res, ctypes.c_char_p).value).decode('utf8') 600 | ice.free_memory(res) 601 | return addrlist 602 | #============================================================================== 603 | def _privatekey_group_to_ETH_address_bytes(start_pvk, m): 604 | res = (b'\x00') * (20 * m) 605 | ice.privatekey_group_to_ETH_address_bytes(start_pvk, m, res) 606 | return res 607 | def privatekey_group_to_ETH_address_bytes(pvk_int, m): 608 | ''' Starting Privatekey Integer value passed to function as pvk_int. 609 | Integer m is, how many times sequential increment is done from the starting key. 610 | Output is bytes 20*m of ETH address lowercase without 0x''' 611 | if m<=0: m = 1 612 | if pvk_int < 0: pvk_int = N+pvk_int 613 | start_pvk = fl(pvk_int).encode('utf8') 614 | res = _privatekey_group_to_ETH_address_bytes(start_pvk, m) 615 | return bytes(bytearray(res)) 616 | #============================================================================== -------------------------------------------------------------------------------- /wordsearch_ice/wordsearch_ice.py: -------------------------------------------------------------------------------- 1 | import random, codecs, binascii, bip32utils 2 | import hashlib 3 | import base58 4 | from mnemonic import Mnemonic 5 | from rich.console import Console 6 | from lxml import html 7 | import secp256k1 as ice 8 | import requests 9 | console = Console() 10 | console.clear() 11 | 12 | 13 | def xBal(address): 14 | urlblock = "https://bitcoin.atomicwallet.io/address/" + address 15 | respone_block = requests.get(urlblock) 16 | byte_string = respone_block.content 17 | source_code = html.fromstring(byte_string) 18 | xpatch_txid = '/html/body/main/div/div[2]/div[1]/table/tbody/tr[3]/td[2]' 19 | treetxid = source_code.xpath(xpatch_txid) 20 | xVol = str(treetxid[0].text_content()) 21 | return xVol 22 | 23 | def xBal1(uaddr): 24 | urlblock = "https://bitcoin.atomicwallet.io/address/" + uaddr 25 | respone_block = requests.get(urlblock) 26 | byte_string = respone_block.content 27 | source_code = html.fromstring(byte_string) 28 | xpatch_txid = '/html/body/main/div/div[2]/div[1]/table/tbody/tr[3]/td[2]' 29 | treetxid = source_code.xpath(xpatch_txid) 30 | xVol1 = str(treetxid[0].text_content()) 31 | return xVol1 32 | 33 | mylist = [] 34 | 35 | with open('words.txt', newline='', encoding='utf-8') as f: 36 | for line in f: 37 | mylist.append(line.strip()) 38 | 39 | mynumbers = [] 40 | 41 | with open('numbers.txt', newline='', encoding='utf-8') as f2: 42 | for line in f2: 43 | mynumbers.append(line.strip()) 44 | 45 | wordlist = ["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake", "call", "calm", "camera", "camp", "can", "canal", "cancel", "candy", "cannon", "canoe", "canvas", "canyon", "capable", "capital", "captain", "car", "carbon", "card", "cargo", "carpet", "carry", "cart", "case", "cash", "casino", "castle", "casual", "cat", "catalog", "catch", "category", "cattle", "caught", "cause", "caution", "cave", "ceiling", "celery", "cement", "census", "century", "cereal", "certain", "chair", "chalk", "champion", "change", "chaos", "chapter", "charge", "chase", "chat", "cheap", "check", "cheese", "chef", "cherry", "chest", "chicken", "chief", "child", "chimney", "choice", "choose", "chronic", "chuckle", "chunk", "churn", "cigar", "cinnamon", "circle", "citizen", "city", "civil", "claim", "clap", "clarify", "claw", "clay", "clean", "clerk", "clever", "click", "client", "cliff", "climb", "clinic", "clip", "clock", "clog", "close", "cloth", "cloud", "clown", "club", "clump", "cluster", "clutch", "coach", "coast", "coconut", "code", "coffee", "coil", "coin", "collect", "color", "column", "combine", "come", "comfort", "comic", "common", "company", "concert", "conduct", "confirm", "congress", "connect", "consider", "control", "convince", "cook", "cool", "copper", "copy", "coral", "core", "corn", "correct", "cost", "cotton", "couch", "country", "couple", "course", "cousin", "cover", "coyote", "crack", "cradle", "craft", "cram", "crane", "crash", "crater", "crawl", "crazy", "cream", "credit", "creek", "crew", "cricket", "crime", "crisp", "critic", "crop", "cross", "crouch", "crowd", "crucial", "cruel", "cruise", "crumble", "crunch", "crush", "cry", "crystal", "cube", "culture", "cup", "cupboard", "curious", "current", "curtain", "curve", "cushion", "custom", "cute", "cycle", "dad", "damage", "damp", "dance", "danger", "daring", "dash", "daughter", "dawn", "day", "deal", "debate", "debris", "decade", "december", "decide", "decline", "decorate", "decrease", "deer", "defense", "define", "defy", "degree", "delay", "deliver", "demand", "demise", "denial", "dentist", "deny", "depart", "depend", "deposit", "depth", "deputy", "derive", "describe", "desert", "design", "desk", "despair", "destroy", "detail", "detect", "develop", "device", "devote", "diagram", "dial", "diamond", "diary", "dice", "diesel", "diet", "differ", "digital", "dignity", "dilemma", "dinner", "dinosaur", "direct", "dirt", "disagree", "discover", "disease", "dish", "dismiss", "disorder", "display", "distance", "divert", "divide", "divorce", "dizzy", "doctor", "document", "dog", "doll", "dolphin", "domain", "donate", "donkey", "donor", "door", "dose", "double", "dove", "draft", "dragon", "drama", "drastic", "draw", "dream", "dress", "drift", "drill", "drink", "drip", "drive", "drop", "drum", "dry", "duck", "dumb", "dune", "during", "dust", "dutch", "duty", "dwarf", "dynamic", "eager", "eagle", "early", "earn", "earth", "easily", "east", "easy", "echo", "ecology", "economy", "edge", "edit", "educate", "effort", "egg", "eight", "either", "elbow", "elder", "electric", "elegant", "element", "elephant", "elevator", "elite", "else", "embark", "embody", "embrace", "emerge", "emotion", "employ", "empower", "empty", "enable", "enact", "end", "endless", "endorse", "enemy", "energy", "enforce", "engage", "engine", "enhance", "enjoy", "enlist", "enough", "enrich", "enroll", "ensure", "enter", "entire", "entry", "envelope", "episode", "equal", "equip", "era", "erase", "erode", "erosion", "error", "erupt", "escape", "essay", "essence", "estate", "eternal", "ethics", "evidence", "evil", "evoke", "evolve", "exact", "example", "excess", "exchange", "excite", "exclude", "excuse", "execute", "exercise", "exhaust", "exhibit", "exile", "exist", "exit", "exotic", "expand", "expect", "expire", "explain", "expose", "express", "extend", "extra", "eye", "eyebrow", "fabric", "face", "faculty", "fade", "faint", "faith", "fall", "false", "fame", "family", "famous", "fan", "fancy", "fantasy", "farm", "fashion", "fat", "fatal", "father", "fatigue", "fault", "favorite", "feature", "february", "federal", "fee", "feed", "feel", "female", "fence", "festival", "fetch", "fever", "few", "fiber", "fiction", "field", "figure", "file", "film", "filter", "final", "find", "fine", "finger", "finish", "fire", "firm", "first", "fiscal", "fish", "fit", "fitness", "fix", "flag", "flame", "flash", "flat", "flavor", "flee", "flight", "flip", "float", "flock", "floor", "flower", "fluid", "flush", "fly", "foam", "focus", "fog", "foil", "fold", "follow", "food", "foot", "force", "forest", "forget", "fork", "fortune", "forum", "forward", "fossil", "foster", "found", "fox", "fragile", "frame", "frequent", "fresh", "friend", "fringe", "frog", "front", "frost", "frown", "frozen", "fruit", "fuel", "fun", "funny", "furnace", "fury", "future", "gadget", "gain", "galaxy", "gallery", "game", "gap", "garage", "garbage", "garden", "garlic", "garment", "gas", "gasp", "gate", "gather", "gauge", "gaze", "general", "genius", "genre", "gentle", "genuine", "gesture", "ghost", "giant", "gift", "giggle", "ginger", "giraffe", "girl", "give", "glad", "glance", "glare", "glass", "glide", "glimpse", "globe", "gloom", "glory", "glove", "glow", "glue", "goat", "goddess", "gold", "good", "goose", "gorilla", "gospel", "gossip", "govern", "gown", "grab", "grace", "grain", "grant", "grape", "grass", "gravity", "great", "green", "grid", "grief", "grit", "grocery", "group", "grow", "grunt", "guard", "guess", "guide", "guilt", "guitar", "gun", "gym", "habit", "hair", "half", "hammer", "hamster", "hand", "happy", "harbor", "hard", "harsh", "harvest", "hat", "have", "hawk", "hazard", "head", "health", "heart", "heavy", "hedgehog", "height", "hello", "helmet", "help", "hen", "hero", "hidden", "high", "hill", "hint", "hip", "hire", "history", "hobby", "hockey", "hold", "hole", "holiday", "hollow", "home", "honey", "hood", "hope", "horn", "horror", "horse", "hospital", "host", "hotel", "hour", "hover", "hub", "huge", "human", "humble", "humor", "hundred", "hungry", "hunt", "hurdle", "hurry", "hurt", "husband", "hybrid", "ice", "icon", "idea", "identify", "idle", "ignore", "ill", "illegal", "illness", "image", "imitate", "immense", "immune", "impact", "impose", "improve", "impulse", "inch", "include", "income", "increase", "index", "indicate", "indoor", "industry", "infant", "inflict", "inform", "inhale", "inherit", "initial", "inject", "injury", "inmate", "inner", "innocent", "input", "inquiry", "insane", "insect", "inside", "inspire", "install", "intact", "interest", "into", "invest", "invite", "involve", "iron", "island", "isolate", "issue", "item", "ivory", "jacket", "jaguar", "jar", "jazz", "jealous", "jeans", "jelly", "jewel", "job", "join", "joke", "journey", "joy", "judge", "juice", "jump", "jungle", "junior", "junk", "just", "kangaroo", "keen", "keep", "ketchup", "key", "kick", "kid", "kidney", "kind", "kingdom", "kiss", "kit", "kitchen", "kite", "kitten", "kiwi", "knee", "knife", "knock", "know", "lab", "label", "labor", "ladder", "lady", "lake", "lamp", "language", "laptop", "large", "later", "latin", "laugh", "laundry", "lava", "law", "lawn", "lawsuit", "layer", "lazy", "leader", "leaf", "learn", "leave", "lecture", "left", "leg", "legal", "legend", "leisure", "lemon", "lend", "length", "lens", "leopard", "lesson", "letter", "level", "liar", "liberty", "library", "license", "life", "lift", "light", "like", "limb", "limit", "link", "lion", "liquid", "list", "little", "live", "lizard", "load", "loan", "lobster", "local", "lock", "logic", "lonely", "long", "loop", "lottery", "loud", "lounge", "love", "loyal", "lucky", "luggage", "lumber", "lunar", "lunch", "luxury", "lyrics", "machine", "mad", "magic", "magnet", "maid", "mail", "main", "major", "make", "mammal", "man", "manage", "mandate", "mango", "mansion", "manual", "maple", "marble", "march", "margin", "marine", "market", "marriage", "mask", "mass", "master", "match", "material", "math", "matrix", "matter", "maximum", "maze", "meadow", "mean", "measure", "meat", "mechanic", "medal", "media", "melody", "melt", "member", "memory", "mention", "menu", "mercy", "merge", "merit", "merry", "mesh", "message", "metal", "method", "middle", "midnight", "milk", "million", "mimic", "mind", "minimum", "minor", "minute", "miracle", "mirror", "misery", "miss", "mistake", "mix", "mixed", "mixture", "mobile", "model", "modify", "mom", "moment", "monitor", "monkey", "monster", "month", "moon", "moral", "more", "morning", "mosquito", "mother", "motion", "motor", "mountain", "mouse", "move", "movie", "much", "muffin", "mule", "multiply", "muscle", "museum", "mushroom", "music", "must", "mutual", "myself", "mystery", "myth", "naive", "name", "napkin", "narrow", "nasty", "nation", "nature", "near", "neck", "need", "negative", "neglect", "neither", "nephew", "nerve", "nest", "net", "network", "neutral", "never", "news", "next", "nice", "night", "noble", "noise", "nominee", "noodle", "normal", "north", "nose", "notable", "note", "nothing", "notice", "novel", "now", "nuclear", "number", "nurse", "nut", "oak", "obey", "object", "oblige", "obscure", "observe", "obtain", "obvious", "occur", "ocean", "october", "odor", "off", "offer", "office", "often", "oil", "okay", "old", "olive", "olympic", "omit", "once", "one", "onion", "online", "only", "open", "opera", "opinion", "oppose", "option", "orange", "orbit", "orchard", "order", "ordinary", "organ", "orient", "original", "orphan", "ostrich", "other", "outdoor", "outer", "output", "outside", "oval", "oven", "over", "own", "owner", "oxygen", "oyster", "ozone", "pact", "paddle", "page", "pair", "palace", "palm", "panda", "panel", "panic", "panther", "paper", "parade", "parent", "park", "parrot", "party", "pass", "patch", "path", "patient", "patrol", "pattern", "pause", "pave", "payment", "peace", "peanut", "pear", "peasant", "pelican", "pen", "penalty", "pencil", "people", "pepper", "perfect", "permit", "person", "pet", "phone", "photo", "phrase", "physical", "piano", "picnic", "picture", "piece", "pig", "pigeon", "pill", "pilot", "pink", "pioneer", "pipe", "pistol", "pitch", "pizza", "place", "planet", "plastic", "plate", "play", "please", "pledge", "pluck", "plug", "plunge", "poem", "poet", "point", "polar", "pole", "police", "pond", "pony", "pool", "popular", "portion", "position", "possible", "post", "potato", "pottery", "poverty", "powder", "power", "practice", "praise", "predict", "prefer", "prepare", "present", "pretty", "prevent", "price", "pride", "primary", "print", "priority", "prison", "private", "prize", "problem", "process", "produce", "profit", "program", "project", "promote", "proof", "property", "prosper", "protect", "proud", "provide", "public", "pudding", "pull", "pulp", "pulse", "pumpkin", "punch", "pupil", "puppy", "purchase", "purity", "purpose", "purse", "push", "put", "puzzle", "pyramid", "quality", "quantum", "quarter", "question", "quick", "quit", "quiz", "quote", "rabbit", "raccoon", "race", "rack", "radar", "radio", "rail", "rain", "raise", "rally", "ramp", "ranch", "random", "range", "rapid", "rare", "rate", "rather", "raven", "raw", "razor", "ready", "real", "reason", "rebel", "rebuild", "recall", "receive", "recipe", "record", "recycle", "reduce", "reflect", "reform", "refuse", "region", "regret", "regular", "reject", "relax", "release", "relief", "rely", "remain", "remember", "remind", "remove", "render", "renew", "rent", "reopen", "repair", "repeat", "replace", "report", "require", "rescue", "resemble", "resist", "resource", "response", "result", "retire", "retreat", "return", "reunion", "reveal", "review", "reward", "rhythm", "rib", "ribbon", "rice", "rich", "ride", "ridge", "rifle", "right", "rigid", "ring", "riot", "ripple", "risk", "ritual", "rival", "river", "road", "roast", "robot", "robust", "rocket", "romance", "roof", "rookie", "room", "rose", "rotate", "rough", "round", "route", "royal", "rubber", "rude", "rug", "rule", "run", "runway", "rural", "sad", "saddle", "sadness", "safe", "sail", "salad", "salmon", "salon", "salt", "salute", "same", "sample", "sand", "satisfy", "satoshi", "sauce", "sausage", "save", "say", "scale", "scan", "scare", "scatter", "scene", "scheme", "school", "science", "scissors", "scorpion", "scout", "scrap", "screen", "script", "scrub", "sea", "search", "season", "seat", "second", "secret", "section", "security", "seed", "seek", "segment", "select", "sell", "seminar", "senior", "sense", "sentence", "series", "service", "session", "settle", "setup", "seven", "shadow", "shaft", "shallow", "share", "shed", "shell", "sheriff", "shield", "shift", "shine", "ship", "shiver", "shock", "shoe", "shoot", "shop", "short", "shoulder", "shove", "shrimp", "shrug", "shuffle", "shy", "sibling", "sick", "side", "siege", "sight", "sign", "silent", "silk", "silly", "silver", "similar", "simple", "since", "sing", "siren", "sister", "situate", "six", "size", "skate", "sketch", "ski", "skill", "skin", "skirt", "skull", "slab", "slam", "sleep", "slender", "slice", "slide", "slight", "slim", "slogan", "slot", "slow", "slush", "small", "smart", "smile", "smoke", "smooth", "snack", "snake", "snap", "sniff", "snow", "soap", "soccer", "social", "sock", "soda", "soft", "solar", "soldier", "solid", "solution", "solve", "someone", "song", "soon", "sorry", "sort", "soul", "sound", "soup", "source", "south", "space", "spare", "spatial", "spawn", "speak", "special", "speed", "spell", "spend", "sphere", "spice", "spider", "spike", "spin", "spirit", "split", "spoil", "sponsor", "spoon", "sport", "spot", "spray", "spread", "spring", "spy", "square", "squeeze", "squirrel", "stable", "stadium", "staff", "stage", "stairs", "stamp", "stand", "start", "state", "stay", "steak", "steel", "stem", "step", "stereo", "stick", "still", "sting", "stock", "stomach", "stone", "stool", "story", "stove", "strategy", "street", "strike", "strong", "struggle", "student", "stuff", "stumble", "style", "subject", "submit", "subway", "success", "such", "sudden", "suffer", "sugar", "suggest", "suit", "summer", "sun", "sunny", "sunset", "super", "supply", "supreme", "sure", "surface", "surge", "surprise", "surround", "survey", "suspect", "sustain", "swallow", "swamp", "swap", "swarm", "swear", "sweet", "swift", "swim", "swing", "switch", "sword", "symbol", "symptom", "syrup", "system", "table", "tackle", "tag", "tail", "talent", "talk", "tank", "tape", "target", "task", "taste", "tattoo", "taxi", "teach", "team", "tell", "ten", "tenant", "tennis", "tent", "term", "test", "text", "thank", "that", "theme", "then", "theory", "there", "they", "thing", "this", "thought", "three", "thrive", "throw", "thumb", "thunder", "ticket", "tide", "tiger", "tilt", "timber", "time", "tiny", "tip", "tired", "tissue", "title", "toast", "tobacco", "today", "toddler", "toe", "together", "toilet", "token", "tomato", "tomorrow", "tone", "tongue", "tonight", "tool", "tooth", "top", "topic", "topple", "torch", "tornado", "tortoise", "toss", "total", "tourist", "toward", "tower", "town", "toy", "track", "trade", "traffic", "tragic", "train", "transfer", "trap", "trash", "travel", "tray", "treat", "tree", "trend", "trial", "tribe", "trick", "trigger", "trim", "trip", "trophy", "trouble", "truck", "true", "truly", "trumpet", "trust", "truth", "try", "tube", "tuition", "tumble", "tuna", "tunnel", "turkey", "turn", "turtle", "twelve", "twenty", "twice", "twin", "twist", "two", "type", "typical", "ugly", "umbrella", "unable", "unaware", "uncle", "uncover", "under", "undo", "unfair", "unfold", "unhappy", "uniform", "unique", "unit", "universe", "unknown", "unlock", "until", "unusual", "unveil", "update", "upgrade", "uphold", "upon", "upper", "upset", "urban", "urge", "usage", "use", "used", "useful", "useless", "usual", "utility", "vacant", "vacuum", "vague", "valid", "valley", "valve", "van", "vanish", "vapor", "various", "vast", "vault", "vehicle", "velvet", "vendor", "venture", "venue", "verb", "verify", "version", "very", "vessel", "veteran", "viable", "vibrant", "vicious", "victory", "video", "view", "village", "vintage", "violin", "virtual", "virus", "visa", "visit", "visual", "vital", "vivid", "vocal", "voice", "void", "volcano", "volume", "vote", "voyage", "wage", "wagon", "wait", "walk", "wall", "walnut", "want", "warfare", "warm", "warrior", "wash", "wasp", "waste", "water", "wave", "way", "wealth", "weapon", "wear", "weasel", "weather", "web", "wedding", "weekend", "weird", "welcome", "west", "wet", "whale", "what", "wheat", "wheel", "when", "where", "whip", "whisper", "wide", "width", "wife", "wild", "will", "win", "window", "wine", "wing", "wink", "winner", "winter", "wire", "wisdom", "wise", "wish", "witness", "wolf", "woman", "wonder", "wood", "wool", "word", "work", "world", "worry", "worth", "wrap", "wreck", "wrestle", "wrist", "write", "wrong", "yard", "year", "yellow", "you", "young", "youth", "zebra", "zero", "zone", "zoo"] 46 | 47 | 48 | console.print("[purple]Starting search... Please Wait [/purple]") 49 | console.print("==========================================================") 50 | divs = int(input(" 📋How Many Derivation Paths m/44'/0'/0'/0/0/ to m/44'/0'/0'/0/999/ ✍️ -> ")) 51 | 52 | def data_wallet(): 53 | for child in range(0,divs): 54 | bip32_root_key_obj = bip32utils.BIP32Key.fromEntropy(seed) 55 | bip32_child_key_obj = bip32_root_key_obj.ChildKey(44 + bip32utils.BIP32_HARDEN).ChildKey(0 + bip32utils.BIP32_HARDEN).ChildKey(0 + bip32utils.BIP32_HARDEN ).ChildKey(0).ChildKey(child) 56 | first_encode = base58.b58decode(bip32_child_key_obj.WalletImportFormat()) 57 | private_key_full = binascii.hexlify(first_encode) 58 | private_keyhex = private_key_full[2:-10] 59 | wifu = ice.btc_pvk_to_wif(private_keyhex.decode(), False) 60 | dec = int(private_keyhex.decode(), 16) 61 | uaddr = ice.privatekey_to_address(0, False, int(dec)) #Uncompressed 62 | data.append({ 63 | 'bip32_root_key': bip32_root_key_obj.ExtendedKey(), 64 | 'bip32_extended_private_key': bip32_child_key_obj.ExtendedKey(), 65 | 'path': f"m/44'/0'/0'/0/{child}", 66 | 'address': bip32_child_key_obj.Address(), 67 | 'publickey': binascii.hexlify(bip32_child_key_obj.PublicKey()).decode(), 68 | 'privatekey': bip32_child_key_obj.WalletImportFormat(), 69 | 'privatekeyhex': private_keyhex.decode(), 70 | 'seed': dec, 71 | 'wifu': wifu, 72 | 'uaddr': uaddr, 73 | 74 | }) 75 | 76 | prompt= console.print('''[yellow] 77 | *************** WORD Menu Version ***************[/yellow] 78 | * * 79 | * Option 1. Words From File List = 1 * 80 | * Option 2. Words 1-12Random From File = 2 * 81 | * Option 3. Numbers From File = 3 * 82 | * Option 4. 12 Random Words Generated = 4 * 83 | * Option 5. 24 Random Words Generated = 5 * 84 | * * 85 | [yellow]*************** WORD Menu Version ***************[/yellow] 86 | 87 | Enter Your Choice 1/2/3/4/5 ''') 88 | count=0 89 | start=int(input('Type HERE : ')) 90 | while True: 91 | count+=1 92 | if start == 1: 93 | mylistwords = [] 94 | 95 | with open('wordlist.txt', newline='', encoding='utf-8') as f1: 96 | for line in f1: 97 | mylistwords.append(line.strip()) 98 | for i in range(0,len(mylistwords)): 99 | data = [] 100 | mnemonic_words = mylistwords[i] 101 | mnemo = Mnemonic("english") 102 | seed = mnemo.to_seed(mnemonic_words, passphrase="") 103 | ammount = '0 BTC' 104 | data_wallet() 105 | for target_wallet in data: 106 | bal = xBal(target_wallet['address']) 107 | bal1 = xBal1(target_wallet['uaddr']) 108 | if bal != str(ammount) or bal1 != str(ammount): 109 | console.print('[green]\nmnemonic_words : [/green]', mnemonic_words) 110 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path'], '[green] : Bitcoin AddressCompressed : [/green]', target_wallet['address'], '[green] : Balance : [/green]', bal) 111 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path'], '[green] : Bitcoin AddressUnCompressed : [/green]', target_wallet['uaddr'], '[green] : Balance : [/green]', bal1) 112 | console.print('[green]Privatekey WIF Compressed : [/green]', target_wallet['privatekey']) 113 | console.print('[green]Privatekey WIF UnCompressed : [/green]', target_wallet['wifu']) 114 | console.print('[green]Privatekey HEX : [/green]', target_wallet['privatekeyhex']) 115 | console.print('[green]Privatekey DEC : [/green]', target_wallet['seed']) 116 | with open("winner.txt", "a") as f: 117 | f.write(f"""\nMnemonic_words: {mnemonic_words} 118 | Derivation Path: {target_wallet['path']} Public Address BitcoinCompressed : {target_wallet['address']} : Balance : {bal} 119 | Derivation Path: {target_wallet['path']} Public Address BitcoinUnCompressed : {target_wallet['uaddr']} : Balance : {bal1} 120 | Privatekey WIF Compressed : {target_wallet['privatekey']} 121 | Privatekey WIF UnCompressed: {target_wallet['wifu']} 122 | Privatekey HEX: {target_wallet['privatekeyhex']} 123 | Privatekey DEC: {target_wallet['seed']}""") 124 | else: 125 | console.print('[red]\nmnemonic_words : [/red]', mnemonic_words) 126 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path'], '[red] : Bitcoin AddressCompressed : [/red]', target_wallet['address'], '[red] : Balance : [/red]', bal) 127 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path'], '[red] : Bitcoin AddressUnCompressed : [/red]', target_wallet['uaddr'], '[red] : Balance : [/red]', bal1) 128 | console.print('[red]Privatekey WIF Compressed : [/red]', target_wallet['privatekey']) 129 | console.print('[red]Privatekey WIF UnCompressed : [/red]', target_wallet['wifu']) 130 | console.print('[red]Privatekey HEX : [/red]', target_wallet['privatekeyhex']) 131 | console.print('[red]Privatekey DEC : [/red]', target_wallet['seed']) 132 | 133 | if start == 2: 134 | CWords = ' '.join(random.sample(mylist, random.randint(1,12))) 135 | #CWords = ''.join(random.sample(mylist, random.randint(1,12))) # no space 136 | 137 | if start == 3: 138 | CWords = ' '.join(random.sample(mynumbers, random.randint(1,12))) 139 | #CWords = ''.join(random.sample(mynumbers, random.randint(1,12))) # no space 140 | if start == 4: 141 | c1 = random.choice(wordlist) 142 | c2 = random.choice(wordlist) 143 | c3 = random.choice(wordlist) 144 | c4 = random.choice(wordlist) 145 | c5 = random.choice(wordlist) 146 | c6 = random.choice(wordlist) 147 | c7 = random.choice(wordlist) 148 | c8 = random.choice(wordlist) 149 | c9 = random.choice(wordlist) 150 | c10 = random.choice(wordlist) 151 | c11 = random.choice(wordlist) 152 | c12 = random.choice(wordlist) 153 | CWords = "".join(c1+' '+c2+' '+c3+' '+c4+' '+c5+' '+c6+' '+c7+' '+c8+' '+c9+' '+c10+' '+c11+' '+c12) 154 | if start == 5: 155 | c1 = random.choice(wordlist) 156 | c2 = random.choice(wordlist) 157 | c3 = random.choice(wordlist) 158 | c4 = random.choice(wordlist) 159 | c5 = random.choice(wordlist) 160 | c6 = random.choice(wordlist) 161 | c7 = random.choice(wordlist) 162 | c8 = random.choice(wordlist) 163 | c9 = random.choice(wordlist) 164 | c10 = random.choice(wordlist) 165 | c11 = random.choice(wordlist) 166 | c12 = random.choice(wordlist) 167 | c13 = random.choice(wordlist) 168 | c14 = random.choice(wordlist) 169 | c15 = random.choice(wordlist) 170 | c16 = random.choice(wordlist) 171 | c17 = random.choice(wordlist) 172 | c18 = random.choice(wordlist) 173 | c19 = random.choice(wordlist) 174 | c20 = random.choice(wordlist) 175 | c21 = random.choice(wordlist) 176 | c22 = random.choice(wordlist) 177 | c23 = random.choice(wordlist) 178 | c24 = random.choice(wordlist) 179 | CWords = "".join(c1+' '+c2+' '+c3+' '+c4+' '+c5+' '+c6+' '+c7+' '+c8+' '+c9+' '+c10+' '+c11+' '+c12+' '+c13+' '+c14+' '+c15+' '+c16+' '+c17+' '+c18+' '+c19+' '+c20+' '+c21+' '+c22+' '+c23+' '+c24) 180 | data = [] 181 | mnemonic_words = CWords 182 | mnemo = Mnemonic("english") 183 | seed = mnemo.to_seed(mnemonic_words, passphrase="") 184 | ammount = '0 BTC' 185 | data_wallet() 186 | for target_wallet in data: 187 | bal = xBal(target_wallet['address']) 188 | bal1 = xBal1(target_wallet['uaddr']) 189 | if bal != str(ammount) or bal1 != str(ammount): 190 | console.print('[green]\nmnemonic_words : [/green]', mnemonic_words) 191 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path'], '[green] : Bitcoin AddressCompressed : [/green]', target_wallet['address'], '[green] : Balance : [/green]', bal) 192 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path'], '[green] : Bitcoin AddressUnCompressed : [/green]', target_wallet['uaddr'], '[green] : Balance : [/green]', bal1) 193 | console.print('[green]Privatekey WIF Compressed : [/green]', target_wallet['privatekey']) 194 | console.print('[green]Privatekey WIF UnCompressed : [/green]', target_wallet['wifu']) 195 | console.print('[green]Privatekey HEX : [/green]', target_wallet['privatekeyhex']) 196 | console.print('[green]Privatekey DEC : [/green]', target_wallet['seed']) 197 | with open("winner.txt", "a") as f: 198 | f.write(f"""\nMnemonic_words: {mnemonic_words} 199 | Derivation Path: {target_wallet['path']} Public Address BitcoinCompressed : {target_wallet['address']} : Balance : {bal} 200 | Derivation Path: {target_wallet['path']} Public Address BitcoinUnCompressed : {target_wallet['uaddr']} : Balance : {bal1} 201 | Privatekey WIF Compressed : {target_wallet['privatekey']} 202 | Privatekey WIF UnCompressed: {target_wallet['wifu']} 203 | Privatekey HEX: {target_wallet['privatekeyhex']} 204 | Privatekey DEC: {target_wallet['seed']}""") 205 | else: 206 | console.print('[red]\nmnemonic_words : [/red]', mnemonic_words) 207 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path'], '[red] : Bitcoin AddressCompressed : [/red]', target_wallet['address'], '[red] : Balance : [/red]', bal) 208 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path'], '[red] : Bitcoin AddressUnCompressed : [/red]', target_wallet['uaddr'], '[red] : Balance : [/red]', bal1) 209 | console.print('[red]Privatekey WIF Compressed : [/red]', target_wallet['privatekey']) 210 | console.print('[red]Privatekey WIF UnCompressed : [/red]', target_wallet['wifu']) 211 | console.print('[red]Privatekey HEX : [/red]', target_wallet['privatekeyhex']) 212 | console.print('[red]Privatekey DEC : [/red]', target_wallet['seed']) 213 | -------------------------------------------------------------------------------- /wordsearch_ice/wordsearch_ice_eth.py: -------------------------------------------------------------------------------- 1 | import random, codecs, binascii, bip32utils 2 | import hashlib 3 | import base58 4 | from mnemonic import Mnemonic 5 | from rich.console import Console 6 | from lxml import html 7 | import secp256k1 as ice 8 | import requests 9 | console = Console() 10 | console.clear() 11 | 12 | 13 | def xBal(address): 14 | urlblock = "https://bitcoin.atomicwallet.io/address/" + address 15 | respone_block = requests.get(urlblock) 16 | byte_string = respone_block.content 17 | source_code = html.fromstring(byte_string) 18 | xpatch_txid = '/html/body/main/div/div[2]/div[1]/table/tbody/tr[3]/td[2]' 19 | treetxid = source_code.xpath(xpatch_txid) 20 | xVol = str(treetxid[0].text_content()) 21 | return xVol 22 | 23 | def xBal1(uaddr): 24 | urlblock = "https://bitcoin.atomicwallet.io/address/" + uaddr 25 | respone_block = requests.get(urlblock) 26 | byte_string = respone_block.content 27 | source_code = html.fromstring(byte_string) 28 | xpatch_txid = '/html/body/main/div/div[2]/div[1]/table/tbody/tr[3]/td[2]' 29 | treetxid = source_code.xpath(xpatch_txid) 30 | xVol1 = str(treetxid[0].text_content()) 31 | return xVol1 32 | 33 | def xBal2(ethadd): 34 | urlblock = "https://ethereum.atomicwallet.io/address/" + ethadd 35 | respone_block = requests.get(urlblock) 36 | byte_string = respone_block.content 37 | source_code = html.fromstring(byte_string) 38 | xpatch_txid = '/html/body/main/div/div[2]/div[1]/table/tbody/tr[1]/td[2]' 39 | treetxid = source_code.xpath(xpatch_txid) 40 | xVol = str(treetxid[0].text_content()) 41 | return xVol 42 | 43 | mylist = [] 44 | 45 | with open('words.txt', newline='', encoding='utf-8') as f: 46 | for line in f: 47 | mylist.append(line.strip()) 48 | 49 | mynumbers = [] 50 | 51 | with open('numbers.txt', newline='', encoding='utf-8') as f: 52 | for line in f: 53 | mynumbers.append(line.strip()) 54 | 55 | wordlist = ["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake", "call", "calm", "camera", "camp", "can", "canal", "cancel", "candy", "cannon", "canoe", "canvas", "canyon", "capable", "capital", "captain", "car", "carbon", "card", "cargo", "carpet", "carry", "cart", "case", "cash", "casino", "castle", "casual", "cat", "catalog", "catch", "category", "cattle", "caught", "cause", "caution", "cave", "ceiling", "celery", "cement", "census", "century", "cereal", "certain", "chair", "chalk", "champion", "change", "chaos", "chapter", "charge", "chase", "chat", "cheap", "check", "cheese", "chef", "cherry", "chest", "chicken", "chief", "child", "chimney", "choice", "choose", "chronic", "chuckle", "chunk", "churn", "cigar", "cinnamon", "circle", "citizen", "city", "civil", "claim", "clap", "clarify", "claw", "clay", "clean", "clerk", "clever", "click", "client", "cliff", "climb", "clinic", "clip", "clock", "clog", "close", "cloth", "cloud", "clown", "club", "clump", "cluster", "clutch", "coach", "coast", "coconut", "code", "coffee", "coil", "coin", "collect", "color", "column", "combine", "come", "comfort", "comic", "common", "company", "concert", "conduct", "confirm", "congress", "connect", "consider", "control", "convince", "cook", "cool", "copper", "copy", "coral", "core", "corn", "correct", "cost", "cotton", "couch", "country", "couple", "course", "cousin", "cover", "coyote", "crack", "cradle", "craft", "cram", "crane", "crash", "crater", "crawl", "crazy", "cream", "credit", "creek", "crew", "cricket", "crime", "crisp", "critic", "crop", "cross", "crouch", "crowd", "crucial", "cruel", "cruise", "crumble", "crunch", "crush", "cry", "crystal", "cube", "culture", "cup", "cupboard", "curious", "current", "curtain", "curve", "cushion", "custom", "cute", "cycle", "dad", "damage", "damp", "dance", "danger", "daring", "dash", "daughter", "dawn", "day", "deal", "debate", "debris", "decade", "december", "decide", "decline", "decorate", "decrease", "deer", "defense", "define", "defy", "degree", "delay", "deliver", "demand", "demise", "denial", "dentist", "deny", "depart", "depend", "deposit", "depth", "deputy", "derive", "describe", "desert", "design", "desk", "despair", "destroy", "detail", "detect", "develop", "device", "devote", "diagram", "dial", "diamond", "diary", "dice", "diesel", "diet", "differ", "digital", "dignity", "dilemma", "dinner", "dinosaur", "direct", "dirt", "disagree", "discover", "disease", "dish", "dismiss", "disorder", "display", "distance", "divert", "divide", "divorce", "dizzy", "doctor", "document", "dog", "doll", "dolphin", "domain", "donate", "donkey", "donor", "door", "dose", "double", "dove", "draft", "dragon", "drama", "drastic", "draw", "dream", "dress", "drift", "drill", "drink", "drip", "drive", "drop", "drum", "dry", "duck", "dumb", "dune", "during", "dust", "dutch", "duty", "dwarf", "dynamic", "eager", "eagle", "early", "earn", "earth", "easily", "east", "easy", "echo", "ecology", "economy", "edge", "edit", "educate", "effort", "egg", "eight", "either", "elbow", "elder", "electric", "elegant", "element", "elephant", "elevator", "elite", "else", "embark", "embody", "embrace", "emerge", "emotion", "employ", "empower", "empty", "enable", "enact", "end", "endless", "endorse", "enemy", "energy", "enforce", "engage", "engine", "enhance", "enjoy", "enlist", "enough", "enrich", "enroll", "ensure", "enter", "entire", "entry", "envelope", "episode", "equal", "equip", "era", "erase", "erode", "erosion", "error", "erupt", "escape", "essay", "essence", "estate", "eternal", "ethics", "evidence", "evil", "evoke", "evolve", "exact", "example", "excess", "exchange", "excite", "exclude", "excuse", "execute", "exercise", "exhaust", "exhibit", "exile", "exist", "exit", "exotic", "expand", "expect", "expire", "explain", "expose", "express", "extend", "extra", "eye", "eyebrow", "fabric", "face", "faculty", "fade", "faint", "faith", "fall", "false", "fame", "family", "famous", "fan", "fancy", "fantasy", "farm", "fashion", "fat", "fatal", "father", "fatigue", "fault", "favorite", "feature", "february", "federal", "fee", "feed", "feel", "female", "fence", "festival", "fetch", "fever", "few", "fiber", "fiction", "field", "figure", "file", "film", "filter", "final", "find", "fine", "finger", "finish", "fire", "firm", "first", "fiscal", "fish", "fit", "fitness", "fix", "flag", "flame", "flash", "flat", "flavor", "flee", "flight", "flip", "float", "flock", "floor", "flower", "fluid", "flush", "fly", "foam", "focus", "fog", "foil", "fold", "follow", "food", "foot", "force", "forest", "forget", "fork", "fortune", "forum", "forward", "fossil", "foster", "found", "fox", "fragile", "frame", "frequent", "fresh", "friend", "fringe", "frog", "front", "frost", "frown", "frozen", "fruit", "fuel", "fun", "funny", "furnace", "fury", "future", "gadget", "gain", "galaxy", "gallery", "game", "gap", "garage", "garbage", "garden", "garlic", "garment", "gas", "gasp", "gate", "gather", "gauge", "gaze", "general", "genius", "genre", "gentle", "genuine", "gesture", "ghost", "giant", "gift", "giggle", "ginger", "giraffe", "girl", "give", "glad", "glance", "glare", "glass", "glide", "glimpse", "globe", "gloom", "glory", "glove", "glow", "glue", "goat", "goddess", "gold", "good", "goose", "gorilla", "gospel", "gossip", "govern", "gown", "grab", "grace", "grain", "grant", "grape", "grass", "gravity", "great", "green", "grid", "grief", "grit", "grocery", "group", "grow", "grunt", "guard", "guess", "guide", "guilt", "guitar", "gun", "gym", "habit", "hair", "half", "hammer", "hamster", "hand", "happy", "harbor", "hard", "harsh", "harvest", "hat", "have", "hawk", "hazard", "head", "health", "heart", "heavy", "hedgehog", "height", "hello", "helmet", "help", "hen", "hero", "hidden", "high", "hill", "hint", "hip", "hire", "history", "hobby", "hockey", "hold", "hole", "holiday", "hollow", "home", "honey", "hood", "hope", "horn", "horror", "horse", "hospital", "host", "hotel", "hour", "hover", "hub", "huge", "human", "humble", "humor", "hundred", "hungry", "hunt", "hurdle", "hurry", "hurt", "husband", "hybrid", "ice", "icon", "idea", "identify", "idle", "ignore", "ill", "illegal", "illness", "image", "imitate", "immense", "immune", "impact", "impose", "improve", "impulse", "inch", "include", "income", "increase", "index", "indicate", "indoor", "industry", "infant", "inflict", "inform", "inhale", "inherit", "initial", "inject", "injury", "inmate", "inner", "innocent", "input", "inquiry", "insane", "insect", "inside", "inspire", "install", "intact", "interest", "into", "invest", "invite", "involve", "iron", "island", "isolate", "issue", "item", "ivory", "jacket", "jaguar", "jar", "jazz", "jealous", "jeans", "jelly", "jewel", "job", "join", "joke", "journey", "joy", "judge", "juice", "jump", "jungle", "junior", "junk", "just", "kangaroo", "keen", "keep", "ketchup", "key", "kick", "kid", "kidney", "kind", "kingdom", "kiss", "kit", "kitchen", "kite", "kitten", "kiwi", "knee", "knife", "knock", "know", "lab", "label", "labor", "ladder", "lady", "lake", "lamp", "language", "laptop", "large", "later", "latin", "laugh", "laundry", "lava", "law", "lawn", "lawsuit", "layer", "lazy", "leader", "leaf", "learn", "leave", "lecture", "left", "leg", "legal", "legend", "leisure", "lemon", "lend", "length", "lens", "leopard", "lesson", "letter", "level", "liar", "liberty", "library", "license", "life", "lift", "light", "like", "limb", "limit", "link", "lion", "liquid", "list", "little", "live", "lizard", "load", "loan", "lobster", "local", "lock", "logic", "lonely", "long", "loop", "lottery", "loud", "lounge", "love", "loyal", "lucky", "luggage", "lumber", "lunar", "lunch", "luxury", "lyrics", "machine", "mad", "magic", "magnet", "maid", "mail", "main", "major", "make", "mammal", "man", "manage", "mandate", "mango", "mansion", "manual", "maple", "marble", "march", "margin", "marine", "market", "marriage", "mask", "mass", "master", "match", "material", "math", "matrix", "matter", "maximum", "maze", "meadow", "mean", "measure", "meat", "mechanic", "medal", "media", "melody", "melt", "member", "memory", "mention", "menu", "mercy", "merge", "merit", "merry", "mesh", "message", "metal", "method", "middle", "midnight", "milk", "million", "mimic", "mind", "minimum", "minor", "minute", "miracle", "mirror", "misery", "miss", "mistake", "mix", "mixed", "mixture", "mobile", "model", "modify", "mom", "moment", "monitor", "monkey", "monster", "month", "moon", "moral", "more", "morning", "mosquito", "mother", "motion", "motor", "mountain", "mouse", "move", "movie", "much", "muffin", "mule", "multiply", "muscle", "museum", "mushroom", "music", "must", "mutual", "myself", "mystery", "myth", "naive", "name", "napkin", "narrow", "nasty", "nation", "nature", "near", "neck", "need", "negative", "neglect", "neither", "nephew", "nerve", "nest", "net", "network", "neutral", "never", "news", "next", "nice", "night", "noble", "noise", "nominee", "noodle", "normal", "north", "nose", "notable", "note", "nothing", "notice", "novel", "now", "nuclear", "number", "nurse", "nut", "oak", "obey", "object", "oblige", "obscure", "observe", "obtain", "obvious", "occur", "ocean", "october", "odor", "off", "offer", "office", "often", "oil", "okay", "old", "olive", "olympic", "omit", "once", "one", "onion", "online", "only", "open", "opera", "opinion", "oppose", "option", "orange", "orbit", "orchard", "order", "ordinary", "organ", "orient", "original", "orphan", "ostrich", "other", "outdoor", "outer", "output", "outside", "oval", "oven", "over", "own", "owner", "oxygen", "oyster", "ozone", "pact", "paddle", "page", "pair", "palace", "palm", "panda", "panel", "panic", "panther", "paper", "parade", "parent", "park", "parrot", "party", "pass", "patch", "path", "patient", "patrol", "pattern", "pause", "pave", "payment", "peace", "peanut", "pear", "peasant", "pelican", "pen", "penalty", "pencil", "people", "pepper", "perfect", "permit", "person", "pet", "phone", "photo", "phrase", "physical", "piano", "picnic", "picture", "piece", "pig", "pigeon", "pill", "pilot", "pink", "pioneer", "pipe", "pistol", "pitch", "pizza", "place", "planet", "plastic", "plate", "play", "please", "pledge", "pluck", "plug", "plunge", "poem", "poet", "point", "polar", "pole", "police", "pond", "pony", "pool", "popular", "portion", "position", "possible", "post", "potato", "pottery", "poverty", "powder", "power", "practice", "praise", "predict", "prefer", "prepare", "present", "pretty", "prevent", "price", "pride", "primary", "print", "priority", "prison", "private", "prize", "problem", "process", "produce", "profit", "program", "project", "promote", "proof", "property", "prosper", "protect", "proud", "provide", "public", "pudding", "pull", "pulp", "pulse", "pumpkin", "punch", "pupil", "puppy", "purchase", "purity", "purpose", "purse", "push", "put", "puzzle", "pyramid", "quality", "quantum", "quarter", "question", "quick", "quit", "quiz", "quote", "rabbit", "raccoon", "race", "rack", "radar", "radio", "rail", "rain", "raise", "rally", "ramp", "ranch", "random", "range", "rapid", "rare", "rate", "rather", "raven", "raw", "razor", "ready", "real", "reason", "rebel", "rebuild", "recall", "receive", "recipe", "record", "recycle", "reduce", "reflect", "reform", "refuse", "region", "regret", "regular", "reject", "relax", "release", "relief", "rely", "remain", "remember", "remind", "remove", "render", "renew", "rent", "reopen", "repair", "repeat", "replace", "report", "require", "rescue", "resemble", "resist", "resource", "response", "result", "retire", "retreat", "return", "reunion", "reveal", "review", "reward", "rhythm", "rib", "ribbon", "rice", "rich", "ride", "ridge", "rifle", "right", "rigid", "ring", "riot", "ripple", "risk", "ritual", "rival", "river", "road", "roast", "robot", "robust", "rocket", "romance", "roof", "rookie", "room", "rose", "rotate", "rough", "round", "route", "royal", "rubber", "rude", "rug", "rule", "run", "runway", "rural", "sad", "saddle", "sadness", "safe", "sail", "salad", "salmon", "salon", "salt", "salute", "same", "sample", "sand", "satisfy", "satoshi", "sauce", "sausage", "save", "say", "scale", "scan", "scare", "scatter", "scene", "scheme", "school", "science", "scissors", "scorpion", "scout", "scrap", "screen", "script", "scrub", "sea", "search", "season", "seat", "second", "secret", "section", "security", "seed", "seek", "segment", "select", "sell", "seminar", "senior", "sense", "sentence", "series", "service", "session", "settle", "setup", "seven", "shadow", "shaft", "shallow", "share", "shed", "shell", "sheriff", "shield", "shift", "shine", "ship", "shiver", "shock", "shoe", "shoot", "shop", "short", "shoulder", "shove", "shrimp", "shrug", "shuffle", "shy", "sibling", "sick", "side", "siege", "sight", "sign", "silent", "silk", "silly", "silver", "similar", "simple", "since", "sing", "siren", "sister", "situate", "six", "size", "skate", "sketch", "ski", "skill", "skin", "skirt", "skull", "slab", "slam", "sleep", "slender", "slice", "slide", "slight", "slim", "slogan", "slot", "slow", "slush", "small", "smart", "smile", "smoke", "smooth", "snack", "snake", "snap", "sniff", "snow", "soap", "soccer", "social", "sock", "soda", "soft", "solar", "soldier", "solid", "solution", "solve", "someone", "song", "soon", "sorry", "sort", "soul", "sound", "soup", "source", "south", "space", "spare", "spatial", "spawn", "speak", "special", "speed", "spell", "spend", "sphere", "spice", "spider", "spike", "spin", "spirit", "split", "spoil", "sponsor", "spoon", "sport", "spot", "spray", "spread", "spring", "spy", "square", "squeeze", "squirrel", "stable", "stadium", "staff", "stage", "stairs", "stamp", "stand", "start", "state", "stay", "steak", "steel", "stem", "step", "stereo", "stick", "still", "sting", "stock", "stomach", "stone", "stool", "story", "stove", "strategy", "street", "strike", "strong", "struggle", "student", "stuff", "stumble", "style", "subject", "submit", "subway", "success", "such", "sudden", "suffer", "sugar", "suggest", "suit", "summer", "sun", "sunny", "sunset", "super", "supply", "supreme", "sure", "surface", "surge", "surprise", "surround", "survey", "suspect", "sustain", "swallow", "swamp", "swap", "swarm", "swear", "sweet", "swift", "swim", "swing", "switch", "sword", "symbol", "symptom", "syrup", "system", "table", "tackle", "tag", "tail", "talent", "talk", "tank", "tape", "target", "task", "taste", "tattoo", "taxi", "teach", "team", "tell", "ten", "tenant", "tennis", "tent", "term", "test", "text", "thank", "that", "theme", "then", "theory", "there", "they", "thing", "this", "thought", "three", "thrive", "throw", "thumb", "thunder", "ticket", "tide", "tiger", "tilt", "timber", "time", "tiny", "tip", "tired", "tissue", "title", "toast", "tobacco", "today", "toddler", "toe", "together", "toilet", "token", "tomato", "tomorrow", "tone", "tongue", "tonight", "tool", "tooth", "top", "topic", "topple", "torch", "tornado", "tortoise", "toss", "total", "tourist", "toward", "tower", "town", "toy", "track", "trade", "traffic", "tragic", "train", "transfer", "trap", "trash", "travel", "tray", "treat", "tree", "trend", "trial", "tribe", "trick", "trigger", "trim", "trip", "trophy", "trouble", "truck", "true", "truly", "trumpet", "trust", "truth", "try", "tube", "tuition", "tumble", "tuna", "tunnel", "turkey", "turn", "turtle", "twelve", "twenty", "twice", "twin", "twist", "two", "type", "typical", "ugly", "umbrella", "unable", "unaware", "uncle", "uncover", "under", "undo", "unfair", "unfold", "unhappy", "uniform", "unique", "unit", "universe", "unknown", "unlock", "until", "unusual", "unveil", "update", "upgrade", "uphold", "upon", "upper", "upset", "urban", "urge", "usage", "use", "used", "useful", "useless", "usual", "utility", "vacant", "vacuum", "vague", "valid", "valley", "valve", "van", "vanish", "vapor", "various", "vast", "vault", "vehicle", "velvet", "vendor", "venture", "venue", "verb", "verify", "version", "very", "vessel", "veteran", "viable", "vibrant", "vicious", "victory", "video", "view", "village", "vintage", "violin", "virtual", "virus", "visa", "visit", "visual", "vital", "vivid", "vocal", "voice", "void", "volcano", "volume", "vote", "voyage", "wage", "wagon", "wait", "walk", "wall", "walnut", "want", "warfare", "warm", "warrior", "wash", "wasp", "waste", "water", "wave", "way", "wealth", "weapon", "wear", "weasel", "weather", "web", "wedding", "weekend", "weird", "welcome", "west", "wet", "whale", "what", "wheat", "wheel", "when", "where", "whip", "whisper", "wide", "width", "wife", "wild", "will", "win", "window", "wine", "wing", "wink", "winner", "winter", "wire", "wisdom", "wise", "wish", "witness", "wolf", "woman", "wonder", "wood", "wool", "word", "work", "world", "worry", "worth", "wrap", "wreck", "wrestle", "wrist", "write", "wrong", "yard", "year", "yellow", "you", "young", "youth", "zebra", "zero", "zone", "zoo"] 56 | 57 | 58 | console.print("[purple]Starting search... Please Wait [/purple]") 59 | console.print("==========================================================") 60 | 61 | def data_wallet(): 62 | for child in range(0,divs): 63 | bip32_root_key_obj = bip32utils.BIP32Key.fromEntropy(seed) 64 | bip32_child_key_obj = bip32_root_key_obj.ChildKey(44 + bip32utils.BIP32_HARDEN).ChildKey(0 + bip32utils.BIP32_HARDEN).ChildKey(0 + bip32utils.BIP32_HARDEN ).ChildKey(0).ChildKey(child) 65 | first_encode = base58.b58decode(bip32_child_key_obj.WalletImportFormat()) 66 | private_key_full = binascii.hexlify(first_encode) 67 | private_keyhex = private_key_full[2:-10] 68 | wifu = ice.btc_pvk_to_wif(private_keyhex.decode(), False) 69 | dec = int(private_keyhex.decode(), 16) 70 | uaddr = ice.privatekey_to_address(0, False, dec) #Uncompressed 71 | ethadd = ice.privatekey_to_ETH_address(dec) 72 | data.append({ 73 | 'bip32_root_key': bip32_root_key_obj.ExtendedKey(), 74 | 'bip32_extended_private_key': bip32_child_key_obj.ExtendedKey(), 75 | 'path': f"m/44'/0'/0'/0/{child}", 76 | 'path2': f"m/44'/60'/0'/0/{child}", 77 | 'address': bip32_child_key_obj.Address(), 78 | 'publickey': binascii.hexlify(bip32_child_key_obj.PublicKey()).decode(), 79 | 'privatekey': bip32_child_key_obj.WalletImportFormat(), 80 | 'privatekeyhex': private_keyhex.decode(), 81 | 'seed': dec, 82 | 'wifu': wifu, 83 | 'uaddr': uaddr, 84 | 'ethadd': ethadd, 85 | }) 86 | 87 | prompt= console.print('''[yellow] 88 | *************** BTCÐ Menu Version ***************[/yellow] 89 | * * 90 | * Option 1. Words From File = 1 * 91 | * Option 2. Numbers From File = 2 * 92 | * Option 3. 12 Random Words Generated = 3 * 93 | * Option 4. 24 Random Words Generated = 4 * 94 | * Option 5. WORD LIST FILE MADE 12/24 = 5 * 95 | * * 96 | [yellow]*************** BTCÐ Menu Version ***************[/yellow] 97 | 98 | Enter Your Choice 1/2/3/4/5 ''') 99 | count=0 100 | start=int(input('Type HERE : ')) 101 | prompt1 = console.print('''[yellow] 📋How Many Derivation Paths? [/yellow] 102 | [purple] Example BITCOIN Derivation Path[/purple] (m/44'/0'/0'/0/0/ to m/44'/0'/0'/0/999/) 103 | [purple] Example ETH Derivation Path[/purple] (m/44'/60'/0'/0/0/ to m/44'/60'/0'/0/999/) 104 | [yellow]Enter Your Choice 1-????[/yellow] ✍️ -> ''') 105 | divs=int(input('Type HERE : ')) 106 | while True: 107 | count+=1 108 | if start == 5: 109 | for i in range(0,len(mylist)): 110 | data = [] 111 | mnemonic_words = mylist[i] 112 | #mnemonic_words = 'assist air special hunt slogan daughter spy reunion winter boost alpha among steak space father situate ahead floor door prison aware demand cross shine' # 17MdcGxXXFWuRPBpd4NDr2vWTCwmAtJrHK 113 | mnemo = Mnemonic("english") 114 | seed = mnemo.to_seed(mnemonic_words, passphrase="") 115 | ammount = '0 BTC' 116 | ammountETH = '0 ETH' 117 | data_wallet() 118 | for target_wallet in data: 119 | bal = xBal(target_wallet['address']) 120 | bal1 = xBal1(target_wallet['uaddr']) 121 | bal2 = xBal2(target_wallet['ethadd']) 122 | if bal != str(ammount) or bal1 != str(ammount) or bal2 != str(ammountETH): 123 | console.print('[green]\nmnemonic_words : [/green]', mnemonic_words) 124 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path'], '[green] : Bitcoin AddressCompressed : [/green]', target_wallet['address'], '[green] : Balance : [/green]', bal) 125 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path'], '[green] : Bitcoin AddressUnCompressed : [/green]', target_wallet['uaddr'], '[green] : Balance : [/green]', bal1) 126 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path2'], '[green] : ETH Address : [/green]', target_wallet['ethadd'], '[green] : Balance : [/green]', bal2) 127 | console.print('[green]Privatekey WIF Compressed : [/green]', target_wallet['privatekey']) 128 | console.print('[green]Privatekey WIF UnCompressed : [/green]', target_wallet['wifu']) 129 | console.print('[green]Privatekey HEX : [/green]', target_wallet['privatekeyhex']) 130 | console.print('[green]Privatekey DEC : [/green]', target_wallet['seed']) 131 | with open("winner.txt", "a") as f: 132 | f.write(f"""\nMnemonic_words: {mnemonic_words} 133 | Derivation Path: {target_wallet['path']} Public Address BitcoinCompressed : {target_wallet['address']} : Balance : {bal} 134 | Derivation Path: {target_wallet['path']} Public Address BitcoinUnCompressed : {target_wallet['uaddr']} : Balance : {bal1} 135 | Derivation Path: {target_wallet['path2']} Public Address ETH : {target_wallet['ethadd']} : Balance : {bal2} 136 | Privatekey WIF Compressed : {target_wallet['privatekey']} 137 | Privatekey WIF UnCompressed: {target_wallet['wifu']} 138 | Privatekey HEX: {target_wallet['privatekeyhex']} 139 | Privatekey DEC: {target_wallet['seed']}""") 140 | else: 141 | console.print('[red]\nmnemonic_words : [/red]', mnemonic_words) 142 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path'], '[red] : Bitcoin AddressCompressed : [/red]', target_wallet['address'], '[red] : Balance : [/red]', bal) 143 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path'], '[red] : Bitcoin AddressUnCompressed : [/red]', target_wallet['uaddr'], '[red] : Balance : [/red]', bal1) 144 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path2'], '[red] : ETH Address : [/red]', target_wallet['ethadd'], '[red] : Balance : [/red]', bal2) 145 | console.print('[red]Privatekey WIF Compressed : [/red]', target_wallet['privatekey']) 146 | console.print('[red]Privatekey WIF UnCompressed : [/red]', target_wallet['wifu']) 147 | console.print('[red]Privatekey HEX : [/red]', target_wallet['privatekeyhex']) 148 | console.print('[red]Privatekey DEC : [/red]', target_wallet['seed']) 149 | if start == 1: 150 | choice = ' '.join(random.sample(mylist, random.randint(1,12))) 151 | #choice = ''.join(random.sample(mylist, random.randint(1,12))) # no space 152 | 153 | if start == 2: 154 | choice = ' '.join(random.sample(mynumbers, random.randint(1,12))) 155 | #choice = ''.join(random.sample(mynumbers, random.randint(1,12))) # no space 156 | if start == 3: 157 | c1 = random.choice(wordlist) 158 | c2 = random.choice(wordlist) 159 | c3 = random.choice(wordlist) 160 | c4 = random.choice(wordlist) 161 | c5 = random.choice(wordlist) 162 | c6 = random.choice(wordlist) 163 | c7 = random.choice(wordlist) 164 | c8 = random.choice(wordlist) 165 | c9 = random.choice(wordlist) 166 | c10 = random.choice(wordlist) 167 | c11 = random.choice(wordlist) 168 | c12 = random.choice(wordlist) 169 | choice = "".join(c1+' '+c2+' '+c3+' '+c4+' '+c5+' '+c6+' '+c7+' '+c8+' '+c9+' '+c10+' '+c11+' '+c12) 170 | if start == 4: 171 | c1 = random.choice(wordlist) 172 | c2 = random.choice(wordlist) 173 | c3 = random.choice(wordlist) 174 | c4 = random.choice(wordlist) 175 | c5 = random.choice(wordlist) 176 | c6 = random.choice(wordlist) 177 | c7 = random.choice(wordlist) 178 | c8 = random.choice(wordlist) 179 | c9 = random.choice(wordlist) 180 | c10 = random.choice(wordlist) 181 | c11 = random.choice(wordlist) 182 | c12 = random.choice(wordlist) 183 | c13 = random.choice(wordlist) 184 | c14 = random.choice(wordlist) 185 | c15 = random.choice(wordlist) 186 | c16 = random.choice(wordlist) 187 | c17 = random.choice(wordlist) 188 | c18 = random.choice(wordlist) 189 | c19 = random.choice(wordlist) 190 | c20 = random.choice(wordlist) 191 | c21 = random.choice(wordlist) 192 | c22 = random.choice(wordlist) 193 | c23 = random.choice(wordlist) 194 | c24 = random.choice(wordlist) 195 | choice = "".join(c1+' '+c2+' '+c3+' '+c4+' '+c5+' '+c6+' '+c7+' '+c8+' '+c9+' '+c10+' '+c11+' '+c12+' '+c13+' '+c14+' '+c15+' '+c16+' '+c17+' '+c18+' '+c19+' '+c20+' '+c21+' '+c22+' '+c23+' '+c24) 196 | data = [] 197 | mnemonic_words = choice 198 | #mnemonic_words = 'assist air special hunt slogan daughter spy reunion winter boost alpha among steak space father situate ahead floor door prison aware demand cross shine' # 17MdcGxXXFWuRPBpd4NDr2vWTCwmAtJrHK 199 | mnemo = Mnemonic("english") 200 | seed = mnemo.to_seed(mnemonic_words, passphrase="") 201 | ammount = '0 BTC' 202 | ammountETH = '0 ETH' 203 | data_wallet() 204 | for target_wallet in data: 205 | bal = xBal(target_wallet['address']) 206 | bal1 = xBal1(target_wallet['uaddr']) 207 | bal2 = xBal2(target_wallet['ethadd']) 208 | if bal != str(ammount) or bal1 != str(ammount) or bal2 != str(ammountETH): 209 | console.print('[green]\nmnemonic_words : [/green]', mnemonic_words) 210 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path'], '[green] : Bitcoin AddressCompressed : [/green]', target_wallet['address'], '[green] : Balance : [/green]', bal) 211 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path'], '[green] : Bitcoin AddressUnCompressed : [/green]', target_wallet['uaddr'], '[green] : Balance : [/green]', bal1) 212 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path2'], '[green] : ETH Address : [/green]', target_wallet['ethadd'], '[green] : Balance : [/green]', bal2) 213 | console.print('[green]Privatekey WIF Compressed : [/green]', target_wallet['privatekey']) 214 | console.print('[green]Privatekey WIF UnCompressed : [/green]', target_wallet['wifu']) 215 | console.print('[green]Privatekey HEX : [/green]', target_wallet['privatekeyhex']) 216 | console.print('[green]Privatekey DEC : [/green]', target_wallet['seed']) 217 | with open("winner.txt", "a") as f: 218 | f.write(f"""\nMnemonic_words: {mnemonic_words} 219 | Derivation Path: {target_wallet['path']} Public Address BitcoinCompressed : {target_wallet['address']} : Balance : {bal} 220 | Derivation Path: {target_wallet['path']} Public Address BitcoinUnCompressed : {target_wallet['uaddr']} : Balance : {bal1} 221 | Derivation Path: {target_wallet['path2']} Public Address ETH : {target_wallet['ethadd']} : Balance : {bal2} 222 | Privatekey WIF Compressed : {target_wallet['privatekey']} 223 | Privatekey WIF UnCompressed: {target_wallet['wifu']} 224 | Privatekey HEX: {target_wallet['privatekeyhex']} 225 | Privatekey DEC: {target_wallet['seed']}""") 226 | else: 227 | console.print('[red]\nmnemonic_words : [/red]', mnemonic_words) 228 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path'], '[red] : Bitcoin AddressCompressed : [/red]', target_wallet['address'], '[red] : Balance : [/red]', bal) 229 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path'], '[red] : Bitcoin AddressUnCompressed : [/red]', target_wallet['uaddr'], '[red] : Balance : [/red]', bal1) 230 | console.print('[purple]Derivation Path : [/purple]', target_wallet['path2'], '[red] : ETH Address : [/red]', target_wallet['ethadd'], '[red] : Balance : [/red]', bal2) 231 | console.print('[red]Privatekey WIF Compressed : [/red]', target_wallet['privatekey']) 232 | console.print('[red]Privatekey WIF UnCompressed : [/red]', target_wallet['wifu']) 233 | console.print('[red]Privatekey HEX : [/red]', target_wallet['privatekeyhex']) 234 | console.print('[red]Privatekey DEC : [/red]', target_wallet['seed']) 235 | --------------------------------------------------------------------------------