Tipo y monto de transacción en la API de Blockchain

Estoy creando un programa de alerta con el que quiero enviarme una alerta por correo electrónico si hay transacciones en curso en todas (5) de mis direcciones.

Elegí la API Blockchain porque no pude encontrar nada mejor para esto.

¿Cómo puedo saber si esta transacción es una transacción entrante o saliente? Este JSON a continuación es una transacción de algunas que recibo de vuelta con la solicitud: https://blockchain.info/de/address/1MLnfxu3AicGcpBS4MbevCCQP8WSftkXj8?format=json

Además, ¿dónde puedo averiguar cuántos BTC se transfieren en esta transacción?

Para su información, escribo un script en Python. Podría analizar todos los valores de 'valor' y sumarlos. También podría verificar si mi dirección provista, si está en 'entradas' o en 'salida'.

¿Pero no hay una mejor manera? ¿O existen mejores API para esto?

{
   "ver":1,
   "inputs":[
      {
         "sequence":4294967295,
         "prev_out":{
            "spent":true,
            "tx_index":182562706,
            "type":0,
            "addr":"3NSHD5zB9wCMfoVXsuS9v8d6PcnKxDFKeg",
            "value":40000,
            "n":1,
            "script":"a914e3912957c315153f65bfef4322af64188ba7cdc487"
         },
         "script":"00473044022039d16bf80101ce331e93f8dd8d24e8770e3d7a8e367f2e54a86d2f4153ea5d99022048bff03a37f39180ac3b18d8619f6d450a4b3ec9ebf4bf24f598b16348187e550147304402203df2d77fefe694a5b58a1c77af3d73c75eab5bbe36fec3c1c7364fc7b9f4b367022048a80b164ada45a4b734586e6e6f2f3f624415287a346ef84bc3c6b63e67808f0147522102265981c8d731915bee94597c8f7fce92819ab37245b9c6b1f2f011015161adf02103c511b8fe3a5e60ad16bb14b0865f8a3f192ddb386c4f8d23f72edd24764e0e2352ae"
      },
      {
         "sequence":4294967295,
         "prev_out":{
            "spent":true,
            "tx_index":183105717,
            "type":0,
            "addr":"3NSHD5zB9wCMfoVXsuS9v8d6PcnKxDFKeg",
            "value":14980000,
            "n":0,
            "script":"a914e3912957c315153f65bfef4322af64188ba7cdc487"
         },
         "script":"0047304402202ec3a4c1bf1aa386f8db24e2ec0434f5224890ea9c510b067f03a39c1d69325a0220154ffb2d6f54875faa0ee2de10a78ace2fff30595a88732937e2827bddeab1ea01483045022100e8ee555d0cdf09a7803fbffdca4da3498393748f1ff52f10abfbfe6920bc118702202f7ffc9ff6289cfc17e26004298d6ce4379451fd3cb29399d7adf30e704dc10e0147522102265981c8d731915bee94597c8f7fce92819ab37245b9c6b1f2f011015161adf02103c511b8fe3a5e60ad16bb14b0865f8a3f192ddb386c4f8d23f72edd24764e0e2352ae"
      }
   ],
   "block_height":436110,
   "relayed_by":"176.126.247.116",
   "out":[
      {
         "spent":true,
         "tx_index":185011579,
         "type":0,
         "addr":"1PHdd9DpdHtxNeVeqkEbBu1pBoDcTws6kx",
         "value":5066000,
         "n":0,
         "script":"76a914f477fe7c4a0fce5dbc7c174ba2ab5d9ab27fe91d88ac"
      },
      {
         "spent":false,
         "tx_index":185011579,
         "type":0,
         "addr":"1MLnfxu3AicGcpBS4MbevCCQP8WSftkXj8",
         "value":9834000,
         "n":1,
         "script":"76a914df208b39050b2a3f1166216efda0855cc4df8aae88ac"
      },
      {
         "spent":false,
         "tx_index":185011579,
         "type":0,
         "addr":"3NSHD5zB9wCMfoVXsuS9v8d6PcnKxDFKeg",
         "value":60000,
         "n":2,
         "script":"a914e3912957c315153f65bfef4322af64188ba7cdc487"
      }
   ],
   "lock_time":0,
   "result":99980000,
   "size":627,
   "time":1477558874,
   "tx_index":185011579,
   "vin_sz":2,
   "hash":"1806396e0a7fa220d5626dae7ee4a5caa3b35d333f1885d25a440d256701bba4",
   "vout_sz":3
}

Respuestas (2)

Hay una API mejor, y es la API central de Bitcoin. Obtiene todos los datos que necesita allí. Blockchain.info probablemente también debe estar usando las API principales (o deben haber creado un analizador para analizar los datos binarios de la cadena de bloques en la máquina que ejecuta el nodo completo). Usando las API centrales y los enlaces correspondientes presentes para varios lenguajes de programación, puede acceder a todos los datos de la cadena de bloques que necesita.

Parece que no hay un campo txid arriba, pero hay un tx_index que se refiere a ese hexadecimal. Puede obtener la cantidad de BTC en esa transacción (entrada y salida) utilizando la API central getrawtransaction(para acceder a transacciones que no son de billetera, debe reconstruir su cadena de bloques después de agregar la línea txindex=1 en el archivo conf y reiniciar el servidor con -opción de reindexación)

Blockonomics api tiene una llamada de API de historial que devuelve el historial de transacciones de múltiples direcciones de bitcoin considerándolas parte de la misma billetera. En la entrada, puede proporcionar las cinco direcciones y analizar el valor de la salida JSON. En caso de transacción saliente; el valor será negativo, de lo contrario el valor será positivo.