Package Exports
- six-verifier
- six-verifier/six-verifier.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (six-verifier) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
six-verifier
Proof, not promises.
Independently verify that an AI inference result was produced under the SIX integrity model — receipts, Merkle attestations, and XRPL anchors — without trusting the provider.
What it verifies
| Check | What it proves |
|---|---|
| Receipt structure | All required fields present, correct formats |
| Receipt signature | Schnorr signature binds to receipt content |
| Merkle proof | Leaf hash walks to published root via sibling chain |
| XRPL anchor | Transaction hash verifiable on XRPL ledger |
| Cross-checks | Receipt + attestation pairing consistent |
Install
npm install six-verifierOr use directly:
git clone https://github.com/six-sov/six-verifier
cd six-verifierQuick start
CLI
# Verify from separate receipt + attestation files
node six-verifier.js --receipt receipt.json --attestation attestation.json
# Verify from full SIX API response
node six-verifier.js --response api_response.json
# JSON output (for scripting)
node six-verifier.js --response api_response.json --json
# Mainnet (default is testnet)
node six-verifier.js --response api_response.json --network mainnetNode.js
const { verifyAll, formatResults } = require('six-verifier');
const receipt = {
receipt_id: "rcpt_8556b04f981a4a12",
issuer: "SIX",
routed_via: "sovereign",
provider: "dragon_local",
identity_stripped: false,
timestamp: "2026-02-05T15:27:40.688021+00:00",
signature: "0x22e906c12eadbaa55a14...",
xrpl_tx: "F0ECFDFD..."
};
const attestation = {
root: "0xee980cc9...",
leaf_hash: "0x122256f1...",
proof: [
{ sibling: "122256f1...", position: "right" },
{ sibling: "8b8247d8...", position: "right" },
{ sibling: "d2f677ba...", position: "left" },
{ sibling: "4f33298c...", position: "left" }
],
index: 12,
batch_id: "batch_2026-02-04_052217",
sig: "0x3ca3f540..."
};
const result = await verifyAll(receipt, attestation);
console.log(formatResults(result));
// VERDICT: ✅ PASSBrowser
<script src="six-verifier.js"></script>
<script>
const result = await SixVerifier.verifyAll(receipt, attestation);
console.log(result.verdict); // "PASS" or "FAIL"
</script>CLI output example
═══════════════════════════════════════════════
SIX VERIFIER — Sovereign Inference Exchange
═══════════════════════════════════════════════
✅ PASS Receipt structure
✅ PASS Receipt signature
✅ PASS Merkle attestation proof
✅ PASS XRPL anchor (https://testnet.xrpl.org/transactions/F0ECFDFD...)
───────────────────────────────────────────────
VERDICT: ✅ PASS
═══════════════════════════════════════════════
six-sov.com — Proof, not promises.
═══════════════════════════════════════════════What this proves (and what it doesn't)
✅ Proves
- Receipt was issued by a legitimate SIX issuer
- Attestation proof is consistent with published Merkle root
- XRPL anchor is structurally valid and verifiable on-chain
- Integrity flags (routing tier, identity stripping) weren't altered
❌ Does NOT prove
- Model correctness (philosophical)
- Full ZK computation proof (future roadmap)
- Private generation logic (by design)
API
verifyAll(receipt, attestation, options?)
Full verification. Returns { verdict, receipt, attestation, xrpl, summary, errors }.
verifyReceiptStructure(receipt)
Check required fields and formats. Returns { valid, checks, errors }.
verifyReceiptSignature(receipt)
Verify signature structure and generate receipt hash. Returns { valid, receipt_hash }.
verifyMerkleProof(attestation)
Walk Merkle proof from leaf to root. Returns { valid, computed_root, expected_root, root_match }.
verifyXrplAnchor(xrplTx, options?)
Generate explorer URL and validate tx hash format. Returns { valid, explorer_url }.
formatResults(results)
Format verification results as human-readable text.
Test vectors
Real test vectors from a live SIX API response:
npm testRuns 5 tests:
- Clean receipt + attestation → PASS
- Tampered receipt_id → FAIL (correctly detected)
- Wrong Merkle root → FAIL (correctly detected)
- Receipt-only (no attestation) → PASS
- Full API response → PASS
Zero dependencies
No npm dependencies. Uses only:
crypto.subtle(browser) orcrypto(Node.js) for SHA-256fsfor CLI file loading (Node.js only)
License
Verification-only license. See LICENSE for details.
This tool verifies SIX receipts and attestations. It does not include attestation generation, signing key custody, routing logic, or settlement execution.
six-sov.com — Sovereign Inference Exchange