A read-only cross-chain incident normalizer. Feed it an operator-supplied JSON export of source/destination message status; get back a conservative evidence report with PASS / FAIL / UNKNOWN findings. An offline formatter, not a live tracer.
crosschain-incident is a command-line tool that normalizes an operator-supplied export of cross-chain message status into one consistent incident report. It does not connect to any chain or bridge protocol — it normalizes the JSON you already have. Missing or ambiguous fields stay UNKNOWN; nothing is guessed.
Bridge and interoperability operators emit status payloads in inconsistent shapes. crosschain-incident answers: normalize different bridge status payloads into one incident postmortem format. It gives you a single, conservative report of what the export says — source delivered, destination failed, and so on — without inventing data.
UNKNOWN rather than silently assumed.findings[] (exit 1 on a flagged failure like DESTINATION_FAILED).npm install -g crosschain-incident # or run without installing:
npx crosschain-incident inspect --input ./message.json --json
npx crosschain-incident inspect --input ./message.json --json
This is the example payload from the published README — a LayerZero source/destination status export.
{
"protocol": "layerzero",
"messageId": "example-id",
"source": { "status": "delivered", "network": "source-chain", "tx": "0x...", "observedAt": "2026-01-01T00:00:00Z" },
"destination": { "status": "failed", "network": "destination-chain", "tx": "0x...", "observedAt": "2026-01-01T00:00:10Z" }
}
Representative normalized report. The tool flags failures like DESTINATION_FAILED as machine-readable findings (exit 1); missing fields stay UNKNOWN.
{
"protocol": "layerzero",
"messageId": "example-id",
"findings": [
{ "status": "FAIL", "code": "DESTINATION_FAILED", "message": "destination status is failed" }
],
"status": "FAIL"
}
source / destination / delivered / failed / unknown / source-only / destination-failed states.UNKNOWN — nothing is guessed.DESTINATION_FAILED as machine-readable findings (exit 1).0.1.0): local state-fixture tests pass (delivered, destination-failed, invalid JSON, BOM JSON). No real protocol API validation yet.Experimental (0.1.0). Local state-fixture tests pass (delivered, destination-failed, invalid JSON, BOM JSON). No real protocol API validation yet.
Package: crosschain-incident — published by npm user eidonze, version 0.1.0, MIT.
Source: xka0085-byte/crosschain-incident — issues and the full README live there.
Part of the Agent / Chain Evidence Tools suite · MIT · Node ≥ 18 · read-only, offline formatter