O que é uma transação Bitcoin bruta?
Uma transação Bitcoin bruta é a serialização em hex de versão, entradas (txid anterior e índice da saída, scriptSig, sequence), saídas (valor em satoshis e scriptPubKey), dados witness SegWit opcionais e locktime. O txid é o SHA-256 duplo da serialização sem os dados witness, e um PSBT (BIP-174) envolve uma transação não assinada com os metadados de que os signatários precisam.
Lendo o resultado
- Entradas listam o outpoint anterior (txid:índice), o tipo de gasto e o endereço derivado. O sequence mostra se o RBF está sinalizado.
- Saídas listam valor, tipo de script e endereço. Saídas OP_RETURN mostram seu payload como texto quando é imprimível, caso contrário como hex.
- Locktime é interpretado como altura de bloco abaixo de 500.000.000 e como timestamp Unix acima disso.
- Assinada / não assinada é determinado por toda entrada carregar ou não um scriptSig ou witness.
Tipos de script de saída
| Tipo | Padrão do scriptPubKey | Endereço | Dados de gasto |
|---|---|---|---|
| P2PKH | OP_DUP OP_HASH160 <20 bytes> OP_EQUALVERIFY OP_CHECKSIG | 1… | scriptSig: assinatura + chave pública |
| P2SH | OP_HASH160 <20 bytes> OP_EQUAL | 3… | scriptSig termina com o redeem script |
| P2WPKH | OP_0 <20 bytes> | bc1q… (42 caracteres) | witness: assinatura, chave pública |
| P2WSH | OP_0 <32 bytes> | bc1q… (62 caracteres) | witness termina com o witness script |
| P2TR | OP_1 <32 bytes> | bc1p… | witness: assinatura de 64 bytes (key path) |
| OP_RETURN | OP_RETURN <data> | nenhum, não gastável | n/a |
Exemplo prático: weight e vsize
Uma transação com uma entrada P2WPKH e duas saídas P2WPKH tem 113 bytes de dados não witness (versão, entrada, duas saídas, locktime) e cerca de 110 bytes de dados witness (marker, flag, uma assinatura de 72 bytes e uma chave pública de 33 bytes). Weight = 113 × 4 + 110 = 562 unidades de peso, então vsize = ⌈562 ÷ 4⌉ = 141 vbytes. A 10 sat/vB a taxa é 1.410 sats. O mesmo pagamento a partir de uma entrada legada P2PKH tem aproximadamente 226 bytes, todos contados com peso integral, para 226 vbytes.
De onde vem o hex bruto
Bitcoin Core: getrawtransaction <txid> ou createrawtransaction. Electrum e Sparrow: exportar transação como hex. Exploradores: mempool.space e blockstream.info expõem /api/tx/<txid>/hex. Carteiras de hardware mostram o PSBT que são solicitadas a assinar.
Valide um endereço isoladamente com o validador de endereços Bitcoin, ou inspecione strings bech32 com o decodificador bech32.