Cómo transmitir transacciones BTC desde la línea de comandos:


Introducción

Transmitir transacciones de Bitcoin (BTC) desde la línea de comandos es una forma avanzada y eficiente de interactuar directamente con la red sin depender de interfaces gráficas. En este artículo se explican paso a paso los comandos, formatos y buenas prácticas para crear, firmar y enviar transacciones BTC usando únicamente herramientas CLI.

Requisitos Previos

– Nodo Bitcoin Core sincronizado (mainnet o testnet)

– Acceso al archivo bitcoin.conf con credenciales RPC

– bitcoin-cli instalado y accesible en el PATH

– Conocimientos básicos de UTXO, direcciones y llaves privadas

Paso 1: Configuración del Nodo

1. Editar bitcoin.conf

En el directorio de datos de Bitcoin Core (~/.bitcoin/ en Linux), abra o cree bitcoin.conf y añada:

– rpcuser=usuarioRPC

– rpcpassword=contraseñaRPC

– server=1

– txindex=1

2. Reiniciar el nodo

Tras guardar la configuración, reinicie Bitcoin Core para activar el servicio RPC.

Paso 2: Crear la Transacción Cruda

1. Obtener UTXOs disponibles

Ejecute:

bitcoin-cli listunspent 0 9999999 []

Esto devuelve un arreglo JSON con UTXOs: txid, vout, monto, etc.

2. Construir inputs y outputs

Prepare dos objetos JSON:

inputs: lista de{ }
{{} txid: …, vout: X {}}

outputs: par dirección-monto, por ejemplo
{{}1ABC…:0.001,changeAddress:0.0009{}}

3. Generar transacción sin firmar

Use:

bitcoin-cli createrawtransaction ltinputsgt ltoutputsgt

La respuesta es un hex string (rawtxhex).

Paso 3: Firmar la Transacción

Para firmar la transacción con sus llaves privadas almacenadas localmente:

bitcoin-cli signrawtransactionwithwallet ltrawtxhexgt

Recibirá un objeto JSON con hex (transacción firmada) y complete:true si todo salió bien.

Paso 4: Transmitir la Transacción

4.1 Usando bitcoin-cli

El comando final para enviar el hex firmado es:

bitcoin-cli sendrawtransaction ltsignedtxhexgt

Esto devuelve el txid publicado en la red.

4.2 Usando cURL y API Pública

Si no tiene nodo propio, puede retransmitir vía un servicio público:

curl -X POST –data {hex:ltsignedtxhexgt} https://api.blockcypher.com/v1/btc/main/txs/push

Resumen de Comandos

Comando Descripción
bitcoin-cli listunspent Lista UTXOs disponibles
bitcoin-cli createrawtransaction Crea transacción sin firmar
bitcoin-cli signrawtransactionwithwallet Firma la transacción con el wallet local
bitcoin-cli sendrawtransaction Envía la transacción firmada a la red

Consideraciones de Seguridad

– Nunca exponga sus llaves privadas ni RPC credentials.

– Use entornos offline (cold storage) para firmar transacciones de alto valor.

– Valide los fees y la dirección de destino antes de transmitir.

Enlaces de Interés

– Documentación oficial Bitcoin Core: https://bitcoincore.org/en/doc/

– API BlockCypher: https://www.blockcypher.com/dev/bitcoin/

Conclusión

Transmitir transacciones BTC desde la línea de comandos ofrece control total sobre cada paso del proceso. Aunque requiere algo de experiencia y atención a la seguridad, permite optimizar fees, personalizar inputs/outputs y automatizar flujos de trabajo. Con los comandos descritos aquí, puede integrar de forma confiable la emisión de transacciones BTC en scripts o aplicaciones back-end.

Leave a Reply

Your email address will not be published. Required fields are marked *