API WebSocket de Blockchain.com

Recibe notificaciones de transacciones de Bitcoin en tiempo real, eventos de nuevos bloques y actividad de direcciones a través del gateway WebSocket público de Blockchain.com.

TsgcWebSocketClient

El endpoint WebSocket de Blockchain.com es un canal público de comandos JSON — usa el TsgcWebSocketClient genérico para enviar mensajes op y recibir eventos utx/block.

Clase del componente

TsgcWebSocketClient

Plataformas

Windows, macOS, Linux, iOS, Android

Edición

Standard / Professional / Enterprise

Conecta, suscríbete, parsea

Abre un TsgcWebSocketClient contra wss://ws.blockchain.info/inv, envía los comandos JSON de suscripción y parsea los eventos utx y block entrantes.

uses
  sgcWebSocket, sgcJSON;

var
  WSClient: TsgcWebSocketClient;
begin
  WSClient := TsgcWebSocketClient.Create(nil);
  WSClient.URL := 'wss://ws.blockchain.info/inv';

  WSClient.OnMessage := procedure(Connection: TsgcWSConnection; const Text: string)
  begin
    Memo1.Lines.Add(Text);
  end;

  WSClient.OnConnect := procedure(Connection: TsgcWSConnection)
  begin
    // Subscribe to all new bitcoin transactions
    Connection.WriteData('{"op":"unconfirmed_sub"}');

    // Receive new blocks
    Connection.WriteData('{"op":"blocks_sub"}');

    // Subscribe to a specific address
    Connection.WriteData('{"op":"addr_sub","addr":"1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"}');
  end;

  WSClient.Active := True;
end;
// uses: sgcWebSocket
TsgcWebSocketClient *WSClient = new TsgcWebSocketClient(this);
WSClient->URL = "wss://ws.blockchain.info/inv";

// Hook OnMessage and OnConnect, then subscribe:
//   WSClient->WriteData("{\"op\":\"unconfirmed_sub\"}");
//   WSClient->WriteData("{\"op\":\"blocks_sub\"}");
WSClient->Active = true;

Qué incluye

Blockchain.com expone un sencillo canal op JSON sobre WebSocket — usa TsgcWebSocketClient directamente.

Transacciones sin confirmar

Envía {"op":"unconfirmed_sub"} tras conectar para recibir cada nueva transacción del mempool como un envoltorio {"op":"utx", "x":{...}}.

Nuevos bloques

{"op":"blocks_sub"} se suscribe a las notificaciones de nuevos bloques — llega un {"op":"block", "x":{...}} por cada bloque minado (ten en cuenta que el protocolo puede publicar más de un evento cuando se produce un chain split).

Monitorización de direcciones

{"op":"addr_sub","addr":"<bitcoin-address>"} se suscribe a las transacciones entrantes/salientes de una sola dirección. Usa "addr_unsub" para detenerlo.

Framing WebSocket genérico

Como Blockchain.com usa un canal JSON de comandos plano, el componente TsgcWebSocketClient es suficiente — no se necesita una clase Delphi específica del exchange.

Resiliencia

Configura WatchDog en el cliente para que se reconecte automáticamente ante caídas de red, y HeartBeat con un ping a nivel TCP para mantener viva la conexión a través de los timeouts de NAT.

Parsing de JSON

Recibe cada frame en OnMessage, y luego parséalo con sgcJSON o la librería JSON que prefieras. El cuerpo de la transacción está bajo el campo x del envoltorio.

Especificaciones y referencias

Fuentes oficiales de las APIs a las que se conecta este componente.

Documentación y Demos

Enlace directo a la referencia del componente, descarga el proyecto demo listo para ejecutar y consigue la prueba gratuita.

Ayuda en línea — API_Blockchain Notas para conectarse al gateway WebSocket de Blockchain.com desde Delphi.
Prueba gratuita — sgcWebSockets Descarga el paquete de prueba para usar TsgcWebSocketClient contra cualquier endpoint WebSocket público.
Documento técnico (PDF) Características, inicio rápido, ejemplos de código para Delphi y C++ Builder y referencias a fuentes primarias Features, quick start, code samples for Delphi & C++ Builder and primary-source references — this component only.mdash; solo de este componente.
Manual de usuario (PDF) Manual completo que cubre todos los componentes de la librería.

¿Listo para monitorizar la red Bitcoin?

Descarga la prueba gratuita y transmite los eventos de Blockchain.com a tus aplicaciones Delphi.