Formulário de contato

Nome

E-mail *

Mensagem *

Imagem

Gerador de Chaves Privadas Bitcoin e Consulta de Saldo com Python

Gerador de Chaves Privadas Bitcoin e Consulta de Saldo com Python

Publicado por em


@CanalQb no YouTube


@CanalQb

Gerador de Chaves Privadas Bitcoin e Consulta de Saldo com Python


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



Gerador de Chaves Privadas Bitcoin e Consulta de Saldo com Python

Neste artigo, você encontrará um exemplo completo de como gerar chaves privadas Bitcoin no formato WIF, criar endereços Bitcoin correspondentes e consultar seus saldos usando Python. O script utiliza bibliotecas especializadas e realiza consultas assíncronas para otimizar a performance.

Visão geral do processo

O código apresentado gera chaves privadas aleatórias dentro de um intervalo hexadecimal, converte essas chaves para o formato WIF (Wallet Import Format), obtém o endereço Bitcoin e, em seguida, consulta o saldo dos endereços gerados utilizando uma API pública.

Dependências necessárias

  • bit — para manipulação de chaves e endereços Bitcoin (repositório oficial).
  • aiohttp e asyncio — para consultas HTTP assíncronas e eficiente gerenciamento de múltiplas requisições.
  • hashlib e base58 — para funções criptográficas e codificação base58.

Explicação detalhada do código

1. Consulta de saldo assíncrona

Funções consulta_btc_endereco e consulta_multipla_btc utilizam aiohttp para buscar o saldo de um endereço Bitcoin na API Blockchain.info. As consultas são feitas simultaneamente para maior eficiência.

2. Conversão de chaves privadas para WIF

As funções hex_to_wif e private_key_to_wif transformam a chave privada hexadecimal em formato WIF, adicionando prefixos, compressão e checksum necessários para garantir a integridade da chave.

3. Geração de chaves privadas aleatórias

O script gera valores aleatórios dentro de um intervalo hexadecimal, formata uma mini private key e calcula seu hash SHA-256. Essa hash é então convertida para WIF e um endereço Bitcoin é derivado usando a biblioteca bit.

Exemplo de código Python completo e otimizado

import hashlib
import base58
import random
from bit import Key
import aiohttp  # pip install aiohttp
import asyncio

async def consulta_btc_endereco(session, endereco):
    url = f'https://blockchain.info/q/addressbalance/{endereco}?confirmations=6'
    try:
        async with session.get(url) as response:
            if response.status == 200:
                saldo = await response.text()
                return saldo
            else:
                return None
    except Exception as e:
        print(f"Erro de conexão com {endereco}: {e}")
        return None

async def consulta_multipla_btc(enderecos):
    async with aiohttp.ClientSession() as session:
        tarefas = [consulta_btc_endereco(session, endereco) for endereco in enderecos]
        resultados = await asyncio.gather(*tarefas)
        for i, saldo in enumerate(resultados):
            if saldo is not None:
                print(f"Endereço {enderecos[i]}: {saldo} satoshis")

def hex_to_wif(hex_private_key):
    prefix = b'\x80'
    private_key_bytes = bytes.fromhex(hex_private_key)
    extended_key = prefix + private_key_bytes
    checksum = hashlib.sha256(hashlib.sha256(extended_key).digest()).digest()[:4]
    extended_key_with_checksum = extended_key + checksum
    wif = base58.b58encode(extended_key_with_checksum)
    return wif.decode('utf-8')

def private_key_to_wif(private_key_hex, compression='01'):
    if private_key_hex.startswith('0x'):
        private_key_hex = private_key_hex[2:]
    private_key = private_key_hex.zfill(64)
    data = "80" + private_key + compression
    hash1 = hashlib.sha256(bytes.fromhex(data)).digest()
    hash2 = hashlib.sha256(hash1).hexdigest()
    checksum = hash2[0:8]
    data = data + checksum
    characters = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
    i = int(data, 16)
    base58_str = ''
    while i > 0:
        i, remainder = divmod(i, 58)
        base58_str = characters[remainder] + base58_str
    return base58_str

start = 0x40000000000000000
end = 0x7ffffffffffffffff
quantidade = 1000000  # Quantidade de chaves a gerar

for _ in range(quantidade):
    i = random.randint(start, end)
    mini_private_key = f"S{'0' * (29 - len(hex(i)[2:]))}{hex(i)[2:]}" 
    sha256_hash = hashlib.sha256(mini_private_key.encode()).digest() 
    sha256_hash_hex = sha256_hash.hex() 
    
    hex_private_key = sha256_hash_hex
    wif = hex_to_wif(hex_private_key)
    generated_wif = private_key_to_wif(hex_private_key)
    endereco_gerado = Key(generated_wif).address
     
    if endereco_gerado == '1BY8GQbnueYofwSuFAT3USAhGjPrkxDdW9':
        print(f"Mini Private Key: {mini_private_key}")  
        print(f"Hash SHA-256 (hex): {sha256_hash_hex}")
        print("Chave WIF:", wif) 
        print(generated_wif)
        print(endereco_gerado)
        print('\n')
        
        loop = asyncio.get_event_loop()
        loop.run_until_complete(consulta_multipla_btc([endereco_gerado]))

Cuidados e recomendações

Este script é um exemplo técnico e não deve ser usado para gerar chaves privadas para carteiras reais sem conhecimento avançado. Manter a segurança das chaves privadas é fundamental para proteger seus ativos digitais.

Para projetos reais, utilize sempre bibliotecas confiáveis e seguras e nunca compartilhe suas chaves privadas ou frases mnemônicas.

Este conteúdo é apenas para fins educacionais. Avalie cuidadosamente os riscos antes de manipular ou investir em criptomoedas.

Links oficiais úteis

Marcadores: Airdrop Blogger Cripto Jogos Python Script Sistemas Tutorial

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

Comentários