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
}}| Event | Fires when | Chains |
|---|---|---|
| credential.revoked | A credential is revoked or removed | eid, fabric |
| attestation.pushed | An attestation is written on-chain | ethr, fabric |
| did.updated | A DID document is created, changed, or deleted | eid, 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.