Formulário de contato

Nome

E-mail *

Mensagem *

Imagem

Como Gerar Endereços Bitcoin com Frases Mnemônicas BIP39 em Python

Como Gerar Endereços Bitcoin com Frases Mnemônicas BIP39 em Python

Publicado por em


@CanalQb no YouTube


@CanalQb

Como Usar a Testnet Chainphon e se Preparar para o Lançamento Oficial


Sempre crie uma frase de segurança única para jogos, testnets ou airdrops e evite usar sua carteira principal.



Como Gerar Endereços Bitcoin com Frases Mnemônicas BIP39 em Python

Este guia apresenta um script em Python que demonstra como gerar endereços Bitcoin válidos a partir de frases mnemônicas no padrão BIP39. A ferramenta combina o uso da biblioteca mnemonic (do padrão BIP39) com a biblioteca bit para derivar chaves privadas e endereços. O conteúdo é técnico e voltado para desenvolvedores, pesquisadores de segurança e entusiastas de criptografia.

O que são Frases Mnemônicas e o Padrão BIP39?

O BIP39 é um padrão amplamente utilizado em carteiras de criptomoedas que converte frases simples (como “abandon abandon abandon...”) em chaves criptográficas. Essas frases, conhecidas como mnemonics, são compostas por 12, 18 ou 24 palavras selecionadas de uma lista de 2048 palavras definidas no protocolo.

Pré-requisitos

Para executar o código abaixo, você precisa instalar as seguintes bibliotecas em seu ambiente Python:

pip install mnemonic bit

Visão Geral do Script

O script apresentado executa as seguintes funções:

  • Carrega a lista BIP39 de 2048 palavras;
  • Gera combinações de 24 palavras a partir de um índice único;
  • Valida a frase mnemônica gerada e converte para entropia em hexadecimal;
  • Converte a entropia em chave privada WIF e endereço Bitcoin;
  • Exibe os resultados no terminal e salva o progresso periodicamente.

Script Python Completo

import gc
import time
from mnemonic import Mnemonic
from itertools import product
from bit import Key
import sys

def gerar_entropia_hex(mnemonic_phrase):
    mnemo = Mnemonic("english")
    mnemonic_phrase = mnemonic_phrase.replace(';', '').strip()
    if not mnemo.check(mnemonic_phrase):
        return None
    entropy = mnemo.to_entropy(mnemonic_phrase)
    hex_entropy = entropy.hex()
    return hex_entropy

mnemo = Mnemonic("english")
elementos = mnemo.wordlist

def salvar_estado(ultimo_item):
    with open('estado_lista1.txt', 'w') as f:
        f.write(str(ultimo_item) + '\n')

def carregar_estado():
    try:
        with open('estado_lista1.txt', 'r') as f:
            return int(f.readline().strip())
    except (FileNotFoundError, ValueError):
        return 0

def processar_par(indices):
    return " ".join([elementos[i] for i in indices])

def index_to_combination(index, num_words=24):
    base = len(elementos)
    indices = []
    for _ in range(num_words):
        indices.append(index % base)
        index //= base
    return indices[::-1]

def hex_to_wif(entropia_hex):
    private_key = bytes.fromhex(entropia_hex)
    return Key.from_bytes(private_key).to_wif()

ultimo_item = carregar_estado()

print("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon length abandon abandon abandon abandon abandon bacon")

for index in range(ultimo_item, 2048 ** 24):
    indices = index_to_combination(index)
    par_atual = processar_par(indices)

    try:
        entropia_hex = gerar_entropia_hex(par_atual)
        if entropia_hex is None:
            continue
        wif = hex_to_wif(entropia_hex)
        key = Key(wif)
        bitcoin_address = key.address
        print(f'{par_atual[123:]} \t\t{entropia_hex}\t{bitcoin_address}')

        if bitcoin_address == "19vkiEajfhuZ8bs8Zu2jgmC6oqZbWqhxhG ":
            sys.exit(1)
    except Exception as e:
        print(f"Erro ao gerar entropia para o par {par_atual}: {e}")
        continue

    if index % 10000 == 0:
        salvar_estado(index)
        gc.collect()

print("Execução finalizada. O estado foi salvo.")

Responsabilidade no Uso

Aviso: Este conteúdo tem caráter educacional e técnico. Não utilize scripts como esse para gerar carteiras reais sem entendimento profundo do funcionamento de chaves privadas, BIP39 e segurança digital. Você é responsável por qualquer uso indevido. Nunca compartilhe sua chave privada com terceiros.

Referências e Recursos Oficiais

Marcadores: Airdrop Blogger Cripto IA Jogos Python Script Sistemas Tutorial

© junho 30, 2025 CanalQb — Python, Scripts, Automação, Airdrops e Criptomoedas | Web3 e Tech na Prática

Comentários