Cómo comprobar el estado de una transacción Bitcoin con Python

Crypto

Te enseño como crear un script en Python para consultar el estado de una transacción en la blockchain de Bitcoin. Puedes integrar este código en scripts más grandes que te permitan, por ejemplo, comprobar el estado de la transacción y enviarte una notificación cuando se complete.

  • Tiempo de implementación: 5 min
  • Nivel de dificultad: Fácil

Copia este script en Python

Copia este script en Python y guárdalo en un archivo con extensión .py, por ejemplo: estado_transaccion.py

import requests

def get_transaction_details(tx_hash):
url = f"https://api.blockchain.com/v3/explorer/tx/{tx_hash}"
response = requests.get(url)
if response.status_code == 200:
data = response.json()
return data
else:
return None

def main():
try:
transaction_hash = input("Introduce el hash de la transacción de Bitcoin: ")
transaction_data = get_transaction_details(transaction_hash)
if transaction_data:
print("\nDetalles de la transacción:")
print(f"Hash de la transacción: {transaction_data['hash']}")
print(f"Fecha y hora: {transaction_data['time']}")
print(f"Cantidad de Bitcoin transferida: {transaction_data['total']} BTC")
print(f"Número de confirmaciones: {transaction_data['confirmations']}")
print(f"Entradas (inputs):")
for input_data in transaction_data['inputs']:
print(f" - Dirección: {input_data['prev_out']['addr']}")
print(f" Monto: {input_data['prev_out']['value']} BTC")
print(f"Salidas (outputs):")
for output_data in transaction_data['out']:
print(f" - Dirección: {output_data['addr']}")
print(f" Monto: {output_data['value']} BTC")
else:
print("Error al consultar la transacción. Verifica el hash ingresado.")
except Exception as e:
print(f"Error: {str(e)}")

if __name__ == "__main__":
main()

Instala las siguientes librerías

Para que el script funcione correctamente, necesitas instalar «Requests«, una biblioteca que te permite realizar solicitudes HTTP para acceder a la API de Blockchain.com y obtener información sobre transacciones de Bitcoin. Puedes instalarla con el siguiente comando:

pip install requests

Ejecuta el script

Ejecútalo desde la línea de comandos, te pedirá el ID de la transacción. Una vez introducido y hechas las comprobaciones, te mostrará toda la información relativa al estado de la transacción.

Ejecución:

python estado_transaccion.py

El script te pedirá que introduzcas el hash de la transacción de Bitcoin. Por ejemplo:

Introduce el hash de la transacción de Bitcoin: 5b8a7c9e4e8b7d9f3a7e1b2c6d5f8a9b

El script mostrará los detalles de la transacción, incluyendo el hash, la fecha y hora, la cantidad de Bitcoin transferida, el número de confirmaciones, las entradas y las salidas:

Detalles de la transacción:
Hash de la transacción: 5b8a7c9e4e8b7d9f3a7e1b2c6d5f8a9b
Fecha y hora: 2023-04-05 14:30:00
Cantidad de Bitcoin transferida: 0.012 BTC
Número de confirmaciones: 6
Entradas (inputs):
- Dirección: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
Monto: 0.015 BTC
Salidas (outputs):
- Dirección: 3KzJr6Xm6kYVjmdFhWfGvG7ayb2uVvJrnf
Monto: 0.012 BTC

Explicación del código

Si te gusta la programación y tienes curiosidad por entender el código de arriba, o incluso modificarlo a tu gusto para añadir o modificar funcionalidades, aquí te lo explico:

  1. Importación de la biblioteca requests: Se importa la biblioteca requests, que es una popular biblioteca de Python para realizar solicitudes HTTP. Se usa para interactuar con APIs web.
  2. Definición de get_transaction_details(tx_hash):
    • Esta función toma un parámetro tx_hash, que es el hash (identificador único) de una transacción de Bitcoin.
    • Construye una URL para acceder a la API de Blockchain.com usando el hash de la transacción. La API proporciona información detallada sobre transacciones específicas de Bitcoin.
    • Hace una solicitud GET a la API utilizando requests.get().
    • Si la respuesta de la API es exitosa (código de estado HTTP 200), la función convierte la respuesta JSON en un diccionario de Python utilizando response.json() y devuelve este diccionario.
    • Si la solicitud no es exitosa, devuelve None.
  3. Definición de main():
    • La función main es el punto de entrada del script.
    • Solicita al usuario que ingrese el hash de una transacción de Bitcoin a través de la consola.
    • Llama a la función get_transaction_details() con el hash de la transacción proporcionado por el usuario y guarda el resultado en transaction_data.
    • Si transaction_data no es None (lo que significa que la solicitud a la API fue exitosa), imprime los detalles de la transacción, como:
      • El hash de la transacción.
      • La fecha y hora de la transacción.
      • La cantidad total de Bitcoin transferida en la transacción.
      • El número de confirmaciones de la transacción.
      • Detalles sobre las entradas (inputs) de la transacción, incluyendo la dirección de Bitcoin desde la que se enviaron los fondos y la cantidad enviada desde cada dirección.
      • Detalles sobre las salidas (outputs) de la transacción, incluyendo la dirección de Bitcoin a la que se enviaron los fondos y la cantidad enviada a cada dirección.
    • Si transaction_data es None o si ocurre un error durante la ejecución del script (por ejemplo, un error de conexión), se muestra un mensaje de error al usuario.
  4. Ejecución condicional if __name__ == "__main__":
    • Este bloque asegura que main() solo se ejecute cuando el script se ejecute directamente (es decir, no cuando se importa como un módulo en otro script). Esto es una práctica estándar en Python para scripts que son tanto ejecutables como importables.
Daniel Pajuelo
Daniel Pajuelo es ingeniero informático y SEO Senior, actualmente trabajando en Guruwalk e impartiendo clases en BIG School (antes BIGSEO Academy). Ver más

Continua leyendo

¿Vale la pena el Nerdminer?

Nerdminer, ¿vale la pena?

El Nerdminer es un dispositivo de minería de Bitcoin, pequeño, barato y de bajo consumo. El único problema, es que su potencia es tan limitada que minar un bloque en solitario es tan difícil como que te toque la lotería.
Minar PEPE memecoin

Cómo minar criptomoneda en unMineable

Ventajas y desventajas de esta plataforma de minado en pool de criptomonedas, y guía para comenzar.

Cómo minar MONERO (XMR) en 2024 – Guía paso a paso

Procedimiento paso a paso para minar MONERO (XMR) en tu ordenador, ya sea Windows, MAC o Linux, Desktop o Laptop. Fácil y rápido