Sign In

@veritasacta/verify

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@veritasacta/verify

CLI tool to verify signed artifacts (receipts, manifests, tickets). Works offline.

Source
npmnpm
Version
0.2.5
Version published
Weekly downloads
50
-42.53%
Maintainers
1
Weekly downloads
 
Created
Source

@veritasacta/verify

Verify signed artifacts offline. No accounts. No API calls. No ScopeBlind dependency.

Apache-2.0 licensed. Works offline. Requires zero trust in ScopeBlind or anyone else.

Prove It

npx @veritasacta/verify --self-test
@veritasacta/verify — self-test

  ✓ Sample receipt: VALID  (decision_receipt, kid: kPrK_qmx...)
  ✓ Sample bundle:  VALID  (3/3 receipts)

  All self-tests passed. The verifier is working correctly.
  No ScopeBlind servers were contacted. No accounts required.

That's it. The verifier works. Now verify your own receipts:

Usage

# Verify a receipt with a known public key
npx @veritasacta/verify receipt.json --key d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a

# Verify a receipt, fetching key from JWKS
npx @veritasacta/verify receipt.json --jwks https://example.com/.well-known/jwks.json

# Verify an audit bundle (receipts + embedded keys)
npx @veritasacta/verify bundle.json --bundle

# Read from stdin (for piping)
cat receipt.json | npx @veritasacta/verify --stdin

# Machine-readable output (for CI/scripting)
npx @veritasacta/verify receipt.json --key <hex> --json

What Gets Verified

The verifier:

  • Strips the signature field from the artifact
  • Canonicalizes the remaining JSON (sorted keys, deterministic — JCS-style)
  • SHA-256 hashes the canonical bytes
  • Verifies the Ed25519 signature against the hash using the public key

If the signature is valid, the artifact has not been tampered with since signing.

Supported Formats

FormatDetection
v2 artifact{ v: 2, type, algorithm, kid, signature, ... }
v1 artifact{ algorithm, signature, hash, ... }
Passport SignedEnvelope{ payload, signature: { alg, kid, sig } }
Audit bundle{ receipts: [...], verification: { signing_keys: [...] } }

Options

FlagDescription
--key, -k <hex>Ed25519 public key (64 hex chars)
--jwks <url>JWKS endpoint URL for key discovery
--bundleVerify all receipts in an audit bundle
--stdinRead artifact from stdin
--jsonMachine-readable JSON output
--verbose, -vShow detailed verification info
--self-testVerify bundled sample artifacts
--help, -hShow help

Exit Codes

CodeMeaningSemantics
0Signature validProven authentic — the Ed25519 math confirms this artifact has not been modified since signing
1Signature invalidProven tampered — the signature does not match the payload. This is a security event.
2Verifier errorUndecidable — malformed input, missing key, unparseable JSON. The check could not be performed.

The distinction matters: exit 1 is evidence of tampering (the math was tested and failed). Exit 2 is an operational error (the math was never tested). These demand different responses.

Where Do Receipts Come From?

Receipts are generated by protect-mcp, which wraps MCP tool servers and signs every decision (allow, deny, rate-limit, require_approval) as a v2 artifact.

# Generate receipts
npx protect-mcp --policy policy.json -- node your-mcp-server.js

# Later, verify them
npx @veritasacta/verify receipt.json --key <gateway-public-key>

Conformance Testing

# Run the full conformance test suite (20 tests)
npm test

Tests verify:

  • All known test vectors pass (4 vectors with hash match)
  • Tampered artifacts are correctly rejected
  • Wrong public keys are correctly rejected
  • Sample receipt and bundle verify
  • Format detection works

Why Trust This?

  • Apache-2.0 licensed — patent grant included, no vendor lock-in
  • Open schemas — the artifact format is public
  • Test vectors — deterministic keypairs with known-good signatures
  • Works offline — no API calls, no accounts, no ScopeBlind servers
  • Verification is independent — you don't need to trust ScopeBlind

Any platform can log what its agents do. Very few will let you verify those logs without trusting them.

License

Apache-2.0 — veritasacta.com | IETF Draft

Keywords

verify

FAQs

Package last updated on 05 Apr 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts