
Security News
Anthropic Identifies Biased Reasoning and Recklessness as Drivers of Claude’s PyPI Attack
Anthropic found biased reasoning and recklessness drove Claude Mythos 5 to publish malware on PyPI and compromise a security vendor.
@veritasacta/verify
Advanced tools
Unified offline verifier for signed decision receipts (Ed25519), VOPRF anonymous-credential tokens, Knowledge Unit bundles, and selective-disclosure receipts. Sigil-verified canonical release.
Unified offline verifier for signed machine-decision artifacts — with network-effect mechanics built in.
Apache-2.0 · Ed25519 + VOPRF · Offline · Sigil-verified canonical release · Auto-onboarding · MCP proxy · Sidecar daemon
# Install
npm install -g @veritasacta/verify
# Or
brew install veritasacta/verify/veritasacta-verify
# Prove canonical release
npx @veritasacta/verify --self-check
# Zero-config onboarding (auto-detects framework)
npx @veritasacta/verify init
# Verify any receipt format
npx @veritasacta/verify receipt.json --key <pubkey>
Part of the Veritas Acta protocol for machine-decision evidence.
| Mode | Input | Conformance tier |
|---|---|---|
| Ed25519 receipt | Signed decision receipts (v1, v2, Passport envelope) | T1 |
| Ed25519 + AIP-0002 | Selective-disclosure receipts with _commitments | T2 |
| Ed25519 + attestation | Receipts with attestation_mode or anchor_uri | T3 |
| VOPRF token | Anonymous credential tokens (RFC 9497, BRASS wire format). Full Schnorr DLEQ verification for both πI (issuer) and πC (client). | T4 |
| Knowledge Unit | Multi-model deliberation bundles (draft-farley-acta-knowledge-units-00) | varies |
| Audit bundle | Multiple receipts with embedded signing keys | varies |
The CLI is a dispatcher: one binary, eight modes.
verify # verify a single file (default)
verify init # zero-config onboarding, auto-detects framework
verify proxy --target "..." # transparent MCP proxy, signs every tool call
verify daemon # unix-socket sidecar, language-agnostic signing API
verify prompt <file> # verify provenance of a CLAUDE.md / SKILL.md / system prompt
verify chain explore <r.json> # walk a receipt chain to its root, validate every hash link
verify --replay-chain ... # bulk verification with chain-linkage check
verify --self-check # prove this binary is the canonical release
verify --attest # emit a shareable canonical attestation
Closes the supply-chain vector where an attacker modifies CLAUDE.md, SKILLS.md, or a system prompt between authoring time and agent runtime.
# Against a Veritas Acta receipt asserting the prompt hash
verify prompt SKILL.md --prompt-receipt prompt-receipt.json
# Against a Sigstore bundle (DSSE + in-toto statement)
verify prompt CLAUDE.md --sigstore-bundle bundle.json
# Fast path: caller knows the expected hash
verify prompt SKILL.md --expected-hash <sha256-hex>
Walks the previousReceiptHash chain from a chain tip back to its root, validating every link's SHA-256.
verify chain explore ./receipts/tip.json
# → ASCII tree, depth, links_broken, warnings
verify chain explore ./receipts/tip.json --search-dir ./audit/ --max-depth 200 --json
ecosystem/profiles/ ships sandboxing profiles (Cedar policy + nono capabilities + README) for common agent runtimes — Claude Code, Cursor, Codex, Gemini CLI, OpenClaw. Compose with sb-runtime --ring 3 --policy ./policy.cedar + nono run --caps ./nono-capabilities.yaml.
--jwks <url> is explicitly passed.--self-check cryptographically proves the installed verifier (24 source files) matches the canonical release.ed25519+ml-dsa-65) recognized; full PQ in v0.6+.$ cd my-agent-project
$ npx @veritasacta/verify init
[Sigil ASCII art]
sigil: 956f2e88
✓ Veritas Acta initialized
Directory: ./.veritasacta
Kid: project:956f2e8895fd
Framework: crewai (python)
Next steps:
Install: pip install veritasacta-crewai
Wrap your agent with the adapter as shown in the adapter README.
Verify:
npx @veritasacta/verify .veritasacta/receipts/*.json --key 956f2e88...
Init auto-detects your framework from package.json / pyproject.toml / requirements.txt across 13 supported frameworks (Claude Code, Claude Agent SDK, Google ADK, CrewAI, Pydantic AI, AutoGen, Smolagents, LangChain JS/Python, LangGraph JS/Python, OpenAI Agents SDK, Vercel AI SDK).
$ verify proxy --target "node my-mcp-server.js"
[veritasacta proxy] rcpt_1 signed (web_search) kid=project:956f2e8895fd
[veritasacta proxy] rcpt_2 signed (read_file) kid=project:956f2e8895fd
...
Wraps any MCP server with signing. No changes in the server. No changes in the agent. Every tools/call gets a chain-linked Ed25519 receipt.
Run once; any process in the same user context signs receipts by POST.
$ verify daemon &
# Any language, any process:
$ curl --unix-socket /tmp/veritasacta-$UID.sock -X POST http://_/sign \
-d '{"tool":"web_search","args":{"q":"..."},"decision":"allow"}'
{ "payload": {...}, "signature": {"alg":"EdDSA","kid":"...","sig":"..."} }
One daemon, N agents, zero SDK embedding.
Every user who runs --self-check can emit a canonical attestation — a signed JSON artifact proving they ran the canonical unmodified verifier. Publish wherever (GitHub README, status page, SBOM, Rekor).
$ verify --attest --attest-org "Acme Corp" --output attestation.json
Output:
{
"payload": {
"type": "veritasacta:verifier-attestation",
"sigil_fingerprint": "6391ae72",
"sigil_name": "Quiet Orchard",
"canonical": true,
"attester_org": "Acme Corp",
"issued_at": "2026-04-19T...",
"expires_at": "2026-04-26T...",
"attester_kid": "attester:..."
},
"signature": { "alg": "EdDSA", ... },
"verification": { "attester_pubkey": "..." }
}
Offline. User-signed. Counterfeit forks produce attestations marked canonical: false — detectable across the network.
$ verify receipt.json --key <pubkey> --emit-verification-receipt
Produces a signed "the canonical verifier checked this receipt and it was valid" artifact. Anchor in Sigstore Rekor, publish in SBOMs, attach to compliance reports.
| Flag | Purpose |
|---|---|
--pin-sigil <hex> | Require the installed Sigil fingerprint to match (supply-chain enforcement) |
--audit-log <file> | Append every verification event to a chain-hashed JSONL log |
--audit-report | Render an HTML audit report (self-contained, auditor-ready) |
--fips | Enforce FIPS-approved algorithms only |
--strict | Disable all deprecated fallbacks |
--tier N | Require minimum conformance tier (1-5) |
--replay-chain <file> | Bulk-verify a JSONL chain with parallel workers |
--diff <other> | Structural diff between two receipts |
$ verify receipt.json \
--require-context clock:±5s \
--require-context sensor:temp<18
Gates verification on live context (NTP, sensors, feeds). Predicate fails → verification fails. Operationalizes patent #5 claim 2.
Ed25519 / EdDSA (RFC 8032)voprf-p256-sha256 (RFC 9497, structural; full DLEQ extraction in progress)ed25519+ml-dsa-65, ed25519+dilithium3 (v0.6+)| Tier | Requirements |
|---|---|
| T1 Basic | Ed25519 + JCS + chain linkage |
| T2 Disclosure | T1 + AIP-0002 selective disclosure |
| T3 Attestation | T2 + attestation_mode + anchor_uri |
| T4 Privacy | T3 + VOPRF + holder_binding |
| T5 Full | T4 + ZK compliance proofs (v1.0+) |
Each verification surfaces the tier achieved. Implementations earn tier badges for their READMEs.
| Framework | Package | Language |
|---|---|---|
| Claude Code (MCP hooks) | protect-mcp | JS |
| Google ADK | protect-mcp-adk | Python |
| LangChain | @veritasacta/langchain / veritasacta-langchain | JS / Python |
| LangGraph | @veritasacta/langgraph / veritasacta-langgraph | JS / Python |
| CrewAI | veritasacta-crewai | Python |
| Pydantic AI | veritasacta-pydantic-ai | Python |
| AutoGen | veritasacta-autogen | Python |
| Smolagents | veritasacta-smolagents | Python |
| OpenAI Agents SDK | @veritasacta/openai-agents | JS / Python |
| Vercel AI SDK | @veritasacta/vercel-ai | JS |
| Any MCP server | verify proxy --target "<cmd>" | language-agnostic |
| Anything else | verify daemon + HTTP POST | language-agnostic |
Tiny language-agnostic signing helpers for custom integrations:
npm install @veritasacta/sdk
pip install veritasacta-sdk
import { Signer } from '@veritasacta/sdk';
const signer = Signer.fromKeyFile('.veritasacta/attester.json');
const receipt = signer.signDecision({ tool: 'x', args: {}, decision: 'allow' });
Every release gets a unique deterministic name from its cryptographic fingerprint. Current release: Quiet Orchard (6391ae72). Full registry at veritasacta.com/sigils. See ecosystem/RELEASE-NAMING.md for the derivation.
The ecosystem/ directory ships:
ecosystem/github-action/) — drop-in CI stepecosystem/claude-code-plugin/) — one-click Claude Code installecosystem/homebrew-tap/) — brew install veritasacta-verifyecosystem/registry-worker/) — public implementations registry (registry.veritasacta.com)ecosystem/badge-worker/) — shields.io-compatible badges (verify.veritasacta.com/badge/*)ecosystem/interop-leaderboard/) — weekly cross-implementation CIecosystem/sdk-js/, ecosystem/sdk-py/) — tiny signing helpersecosystem/adapters/*) — LangChain, CrewAI, OpenAI Agents, Vercel AI, Smolagents, Pydantic AI, AutoGen, LangGraphecosystem/rollback/, ecosystem/supervisor/, ecosystem/reputation/, ecosystem/dashboard/, ecosystem/browser-extension/, ecosystem/ebpf-observer/, ecosystem/cosign-compat/, ecosystem/CONFORMANCE-CERTIFICATION.md)See ecosystem/README.md for the full map.
Open verifier + closed issuer. The verifier is always free. The commercial product is the managed service.
v0.5.0 is published with:
npm publish --provenance — Sigstore-attested supply chain@veritasacta/artifacts (+ transitively @noble/curves, @noble/hashes)Verify your installation:
npm audit signatures # Sigstore attestation
verify --self-check # matches canonical Sigil
verify --pin-sigil <fingerprint> # enforce a specific release
Apache-2.0.
Patent-adjacent; covered by the Apache-2.0 patent grant (§3). See PATENTS.md.
FAQs
Offline verifier for Veritas Acta signed receipts. Powers protect-mcp, ScopeBlind cold-chain hardware, and Microsoft AGT Lesson 18.
The npm package @veritasacta/verify receives a total of 57 weekly downloads. As such, @veritasacta/verify popularity was classified as not popular.
We found that @veritasacta/verify demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Anthropic found biased reasoning and recklessness drove Claude Mythos 5 to publish malware on PyPI and compromise a security vendor.

Research
/Security News
Malicious Chrome and Firefox extensions target Axiom Trade and Padre users, stealing session tokens and wallet data.

Security News
GPT-6 Astra hits 100% on ExploitBench and finds zero-days autonomously, while independent tests reveal scope violations and monitoring gaps.