New:Socket for Asana Is Now Available.Learn more
Get Started

@veritasacta/verify

Package Overview
Dependencies
Maintainers
1
Versions
18
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.4
Version published
Weekly downloads
529
739.68%
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

  • 0 — signature valid (all artifacts valid for bundles)
  • 1 — signature invalid, missing key, or error

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 03 Apr 2026

Related posts