Openclaw Pqsafe

PassAudited by VirusTotal on May 2, 2026.

Overview

Type: OpenClaw Skill Name: pqsafe-pay-v1 Version: 0.1.0 The skill bundle provides a legitimate implementation for post-quantum signed payment envelopes for AI agents using the ML-DSA-65 (NIST FIPS 204) standard. It enables agents to create, verify, and revoke 'SpendEnvelopes' for various payment rails like Wise and Stripe. Analysis of `src/index.ts` and `dist/index.js` confirms that cryptographic signing is performed locally using the `@noble/post-quantum` library, and sensitive secret keys are never exfiltrated to the PQSafe API (https://api.pqsafe.xyz/v1). The bundle is well-documented, includes a comprehensive test suite (`tests/skill.test.ts`), and shows no signs of malicious intent or prompt-injection vulnerabilities.

Findings (0)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

If an agent has access to the signing inputs, it could create spend authorizations within caller-supplied parameters.

Why it was flagged

The skill can create a signed payment authorization. The shown schema makes maxAmount positive but does not show a global upper bound or explicit human confirmation requirement before signing.

Skill content
"description": "Build and ML-DSA-65 sign a SpendEnvelope authorizing an agent to spend up to maxAmount..."
Recommendation

Require explicit user approval before create_envelope or revoke_envelope, enforce local spend ceilings, keep recipient allowlists tight, and use short TTLs/test mode by default.

What this means

Users may unknowingly expose a raw payment-signing key to the agent runtime rather than only using a scoped API key or HSM-backed service.

Why it was flagged

A raw ML-DSA signing secret is high-privilege because it can authorize SpendEnvelopes. This conflicts with the registry/SKILL credential story that names PQSAFE_API_KEY as the primary required credential.

Skill content
"dsaSecretKey": { "description": "Hex-encoded ML-DSA-65 secret key ... Required in production." }
Recommendation

Clarify the production credential model, declare raw signing keys explicitly if required, prefer scoped/HSM-backed signing, and never provide long-lived signing keys to autonomous agents without strict controls.

What this means

A user could trust that private keys never enter the local agent environment when the included implementation path actually requires local raw key material.

Why it was flagged

This user-facing security claim conflicts with README/code/schema excerpts that describe local signing using a provided dsaSecretKey.

Skill content
"HSM-backed signing keys" — "private keys are generated and stored in hardware security modules; they never leave the PQSafe key service"
Recommendation

Make SKILL.md, README, metadata, and code agree on whether signing is HSM/API-based or local raw-key-based, and clearly state what secrets the agent will see.

What this means

Revoking an envelope discloses the envelope contents to the PQSafe service.

Why it was flagged

Revocation sends the full signed envelope and optional reason to the PQSafe API. That is purpose-aligned, but the envelope can include payment metadata such as issuer, agent, amount, currency, recipients, and public key.

Skill content
fetch(`${apiUrl}/envelopes/revoke`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ signedEnvelope: input.envelope, reason: input.reason }) })
Recommendation

Review PQSafe’s privacy/retention terms and avoid placing unnecessary sensitive information in envelope fields or revocation reasons.

What this means

A dependency update or provenance issue could affect payment-signing behavior.

Why it was flagged

The skill depends on an external payment/signing package with a semver range. This is expected for the plugin, but users are relying on the provenance and future-compatible versions of that package.

Skill content
"peerDependencies": { "@pqsafe/agent-pay": "^0.1.0" }
Recommendation

Install from trusted registries, pin and audit dependency versions in production, and verify package provenance before enabling payment authority.