Formulário de contato

Nome

E-mail *

Mensagem *

Imagem

Como Consultar Saldos Bitcoin e Gerar Endereços com Python

Como Consultar Saldos Bitcoin e Gerar Endereços com Python

Publicado por em


@CanalQb no YouTube


@CanalQb

Como Consultar Saldos Bitcoin e Gerar Endereços com Python


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



Como Consultar Saldos Bitcoin e Gerar Endereços com Python

Se você está desenvolvendo aplicações em Python e deseja interagir com a blockchain do Bitcoin para consultar saldos ou gerar endereços, este tutorial apresenta um exemplo prático completo usando bibliotecas como bit, aiohttp e hashlib. O objetivo é gerar chaves privadas e converter para o formato WIF, além de consultar automaticamente o saldo de endereços.

📦 Requisitos e Instalação

Antes de começar, é necessário instalar os seguintes pacotes:

pip install aiohttp bit base58

🔐 Gerar Endereços a partir de Chaves Privadas

Existem dois métodos para gerar uma chave WIF (Wallet Import Format) válida:

  • Usando prefixo 0x80 para redes Bitcoin mainnet;
  • Calculando a soma de verificação dupla com SHA-256;
  • Codificando com Base58 para compatibilidade com carteiras Bitcoin.

🧪 Exemplo de Conversão Hexadecimal para WIF

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')

🔄 Conversão Alternativa para WIF com Compressão

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 = ''
    while i > 0:
        i, remainder = divmod(i, 58)
        base58 = characters[remainder] + base58
    return base58

🔎 Consultando Saldo de Endereços BTC

A função consulta_btc_endereco permite consultar saldos em satoshis de endereços Bitcoin usando a API pública da Blockchain.info:

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

🚀 Consultas Assíncronas em Lote

Com a função consulta_multipla_btc, é possível realizar múltiplas verificações simultâneas de endereços:

async def consulta_multipla_btc(enderecos):
    async with aiohttp.ClientSession() as session:
        tarefas = [consulta_btc_endereco(session, e) for e 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")

🔁 Loop de Geração de Endereços com Mini Keys

Este trecho percorre uma faixa hexadecimal e tenta encontrar um endereço específico gerado a partir de uma mini chave privada:

for i in range(0x40000000000000000, 0x7ffffffffffffffff):
    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()
    wif = hex_to_wif(sha256_hash_hex)
    generated_wif = private_key_to_wif(sha256_hash_hex)
    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)
        loop = asyncio.get_event_loop()
        loop.run_until_complete(consulta_multipla_btc([endereco_gerado]))

📌 Observações Finais

  • O script demonstra conhecimento técnico avançado em geração de chaves e consumo de APIs blockchain.
  • Certifique-se de não usar este tipo de abordagem em ambientes de produção sem considerar aspectos de segurança.
  • Os endereços e chaves aqui apresentados são gerados para fins educacionais e não devem ser utilizados com valores reais.

🔗 Links Oficiais e Referências

⚠️ Aviso Importante

Este conteúdo é meramente educacional e não deve ser interpretado como recomendação de investimento ou tentativa de mineração de chaves privadas conhecidas. Reflita criticamente sobre os riscos associados ao uso inadequado de criptografia e nunca armazene valores reais em chaves que foram geradas ou testadas publicamente.

Marcadores: Airdrop Blogger Cripto IA Jogos Mineração Python Script Sistemas Tutorial

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

Comentários