pqsafe.pay.v1)Post-quantum signed SpendEnvelopes for AI agent payments. ML-DSA-65 (NIST FIPS 204) signatures
over Airwallex, Wise, Stripe, USDC-Base, and x402 rails.
npm install @pqsafe/openclaw
import { OpenClawClient } from "@openclaw/sdk";
import "@pqsafe/openclaw"; // registers pqsafe.pay.v1
const claw = new OpenClawClient();
const envelope = await claw.invoke("pqsafe.pay.v1/create_envelope", {
agentId: "agent_my_bot_v1",
payerId: "payer_usr_abc123",
maxAmount: "100.00",
currency: "USD",
rail: "wise",
expiresAt: "2026-12-31T23:59:59Z",
});
Set PQSAFE_TEST_MODE=true for local development — no real keys or network calls required.
| Operation | Description |
|---|---|
| ----------- | ------------- |
create_envelope | Issue a new ML-DSA-65 signed SpendEnvelope with spend cap, rail, and expiry |
verify_envelope | Verify signature integrity, expiry, nonce uniqueness, and key ID validity |
revoke_envelope | Append envelope ID to the real-time revocation list (append-only, timestamped) |
security modules; they never leave the PQSafe key service
rejected at the verify layer
expiresAt is part of the signed content; an attackercannot extend expiry without invalidating the signature
revoke_envelope appends to a low-latency revocation list checked on every verify_envelope call
to an immutable audit log
before signing, eliminating signature ambiguity from key ordering or whitespace variation
| Rail | Status | Currency |
|---|---|---|
| ------ | -------- | ---------- |
airwallex | LIVE sandbox | Multi-currency (real test transfers) |
wise | LIVE sandbox | 40+ fiat currencies (real test transfers) |
stripe | mock-ready | USD + 135 others |
usdc-base | mock-ready | USDC |
x402 | mock-ready | USDC + ETH |
LIVE sandbox = validated end-to-end with sandbox rails. Mock-ready = SpendEnvelope creation and
verification are fully functional; live rail integration is in progress.
| Parameter | Value |
|---|---|
| ----------- | ------- |
| Standard | NIST FIPS 204 |
| Security level | NIST Level 3 |
| Public key size | 1,952 bytes |
| Secret key size | 4,032 bytes |
| Signature size | 3,309 bytes |
| Hardness assumption | Module-LWE + Module-SIS |
Apache-2.0 — Security disclosures: security@pqsafe.xyz
共 1 个版本