Arxium
Arx Verify · In Development

Trust the signature.
Not the messenger.

Arx Verify checks a validator fault artifact’s signatures and prints a verdict — no node, no chain code, no network access, so anyone can confirm a claim without trusting whoever raised it.

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

Interface

CLI

Dependencies

xc-artifact only

Network access

None required

Exit code

0 valid / 1 otherwise

How it works

A verifier, not a witness.

01

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.

02

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.

03

Report

Print a verdict

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

What it proves

Two fault types. One check.

Arxium validators write a signed JSON artifact whenever they observe a fault. Arx Verify proves that artifact is internally consistent — that 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’s at fault — that’s a governance question, not something a signature check can answer.

Fault types

  • 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.

The CLI

What a run looks like

Point it at an artifact, get a verdict on stdout and an exit code — 0 if it verifies, 1 for a bad path, malformed JSON, or a failed check. Easy to script around, nothing to trust but the math.

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

$ echo $?
0
Capabilities

Verify a claim, not a source

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

Coming Soon

Don’t take their word for it.

Arx Verify is in active development alongside the rest of the fault evidence pipeline. Access will be announced here first.