WebSocket

One connection, all three chains. Subscribe to as many chain and event pairs as you want over the same socket.

Connect

const ws = new WebSocket("wss://<host>/v1/ws?key=idc_live_…")

Subscribe

ws.send(JSON.stringify({
  action: "subscribe",
  chain:  "eid",                  // eid | ethr | fabric | *
  event:  "credential.revoked"
}))

chain: "*" watches all three at once. That is the point of the oracle — you would otherwise need three clients speaking three protocols.

Events

{"chain":"ethr","event":"attestation.pushed","data":{
  "did":"did:ethr:0x…","credential_id":"0x…","block":11353627
}}
EventFires whenChains
credential.revokedA credential is revoked or removedeid, fabric
attestation.pushedAn attestation is written on-chainethr, fabric
did.updatedA DID document is created, changed, or deletedeid, fabric

Keepalive

The server pings every 30 seconds. Browser WebSocket answers pongs for you; in Node, make sure your client does too or the connection will be dropped.

Backpressure

A client that stops reading will start missing events rather than stalling anyone else. If you need every event without gaps, keep your handler fast and buffer on your side.