Arxium

Don’t take their word for it.

Arx Verify checks a validator fault artifact or a state proof and returns a verdict, with no node, no chain code and no network access.

Interface
Browser + CLI
Verification
Local WASM
Network access
None required
File handling
Local only

Check an artifact here

Drop an evidence artifact or state-proof response. Verification runs entirely in your browser; your file is never uploaded or sent to a node.

Local file, JSON

Drop your file here

or select a .json file

Loading verifier…

Verdict

Your result will appear here.

Check the chain yourself. The artifact’s genesis_hash is displayed but never checked against a trusted registry. A VALID result alone does not establish which chain it concerns.

UNRESOLVED ≠ guilty. A signed disagreement proves a dispute occurred, not which party is at fault. State proofs check the Merkle path and execution-proof commitment, but do not verify the finality certificate’s BLS aggregate.

Fetch, check, report

  1. Fetch

    Get the artifact

    Pull the signed JSON fault artifact from a node's evidence directory or RPC. arx-verify never talks to a node itself.

  2. Check

    Verify the signatures

    Confirms the block or dissent signatures inside the artifact are real, and that they say what the artifact claims they say.

  3. Report

    Print a verdict

    VALID with the culpable key, UNRESOLVED naming the disputing parties, or a failure. Nothing more, nothing assumed.

Signed evidence. One check.

Validators write a signed JSON artifact whenever they observe a fault. Arx Verify proves it is internally consistent: its signatures are real and say what it claims they say. It doesn’t prove the artifact is about a chain you should care about, and for a disagreement it doesn’t say who is at fault. That is a governance question, not something a signature check can answer.

equivocation
Validator double-signed two different blocks at the same height. Checks both block signatures are the same proposer, same height, and reports the pubkey that's provably guilty.
execution_disagreement
Validator's local execution disagreed with the proposed block's state root. Checks the proposer's block signature and the voter's dissent signature, and confirms the dissent actually targets the proposed block.

What a run looks like

A verdict on stdout and an exit code: 0 if it verifies, 1 for a bad path, malformed JSON or a failed check.

arx-verify
$ arx-verify equivocation.json
VALID
fault: equivocation
genesis_hash: 0xa1b2c3d4...ccddeeff
culpable_pubkey: 0xea4a6c63...1446d22c

$ arx-verify disagreement.json
UNRESOLVED
fault: execution_disagreement
parties: 0xea4a6c63..., 0x957467ef...
note: artifact proves proposer/validator execution disagreement, not who is at fault

$ echo $?
0

Verify a claim, not a source

No node required

Depends only on xc-artifact: no chain code, no storage, no network. Builds and runs on a machine that has never talked to an Arxium node.

Internally consistent, not externally trusted

Proves the signatures inside an artifact are real and self-consistent. It does not tell you the artifact is about a chain you should care about.

genesis_hash is on you

The artifact carries a genesis_hash but arx-verify doesn't check it against anything. Compare it to a registry you trust before treating a VALID verdict as meaningful.

UNRESOLVED isn't a verdict of guilt

An execution-disagreement artifact confirms a genuine dispute between two named parties. It doesn't say which one is at fault. That's a governance question, not a signature check.

Reproducible verdicts

Same signing and verification code as production, so the verdict you get locally matches what any other verifier would get on the same artifact.

Scriptable

Prints the verdict to stdout and exits 0 on a verified artifact, 1 on a bad path, malformed JSON, or a failed check, easy to wire into a pipeline.