rfc9421_proxy_chain_v1) — one half of AlgoVoi’s authored L1 (the other is the
JCS canonicalisation substrate), dated in
draft-hopley-x402-rfc9421-binding. Build L2 on it freely; the one ask is to attribute the L1
(keep the NOTICE, import the signing base by hash).
Hosted endpoint
verify.algovoi.co.uk/rfc9421 — POST any captured request, get back a full VerifyResult. No installation required.Signer
Companion signer package — see the RFC 9421 Signer page.
Python verifier (PyPI)
pip install algovoi-rfc9421-verifierTypeScript verifier (npm)
npm install @algovoi/rfc9421-verifierUse cases
- Inbound request verification — verify an RFC 9421-signed HTTP request against a known public key before processing it.
- Proxy-chain re-validation — re-validate a captured request after it traverses a TLS-re-terminating proxy chain (the property pinned in the
rfc9421_proxy_chain_v1RFC 9421 §2.5-conformant fixture, with the legacyrfc9421_proxy_chain_v0companion for thealgovoi-v0base). - Conformance test harnesses — build test suites anchored to the RFC 8032 Section 7.1 deterministic Ed25519 reference keypair, byte-reproducible across both implementations.
- A2A and x402 receipt validation — verify that incoming compliance receipts and settlement attestations carry valid HTTP signatures before inserting them into the audit chain.
Hosted endpoint
AlgoVoi runs a public hosted instance atverify.algovoi.co.uk/rfc9421.
No installation or authentication required. Rate limit: 60 req/min per IP.
valid, signature_valid, content_digest_valid, the
reconstructed signing_base, and the full covered_components list — useful for
debugging signing-base mismatches without running anything locally.
What the verifier checks
Quick start
The fixture below uses the AlgoVoi test Ed25519 keypair (seed9d61b19d…, public key 700e2ce7…) — the same keypair used across
the signer and conformance vector test suites.
Python
TypeScript
Sign then verify (round-trip)
Use the companion signer package to produce a signed request, then verify it locally:Cross-implementation parity
The Python and TypeScript verifiers produce byte-identical output on the same inputs. Parity is exercised against the AlgoVoi test Ed25519 keypair (seed9d61b19d…, derived public key 700e2ce7… — consistent across both PyNaCl and @noble/ed25519):
- Same
Signature-Inputparse output - Same signature base reconstruction bytes (RFC 9421 §2.5 — uppercase method,
@signature-paramsappended) - Same
Content-Digestcomputation (SHA-256 and SHA-512) - Same pass/fail verdict across all conformance fixtures
rfc9421_proxy_chain_v1 vector set (RFC 9421 §2.5-conformant) at the conformance vectors repository pins these properties byte-reproducibly; the legacy rfc9421_proxy_chain_v0 set pins the earlier algovoi-v0 signing base.
v0.3.0 — default mode
From v0.3.0,verify_request() defaults to mode="rfc9421" (RFC 9421 §2.5 compliant —
@method case-preserved, @signature-params line appended). The legacy mode="algovoi-v0"
(lowercase method, no @signature-params) is retained for backward compatibility with
pre-v0.2.0 conformance fixtures.
Algorithm support
Ed25519 signatures are deterministic (RFC 8032 deterministic nonce), enabling byte-reproducible test fixtures.
Gateway integration — /compliance/screen
AlgoVoi’s payment gateway uses algovoi-rfc9421-verifier to optionally verify
inbound request signatures on the /compliance/screen endpoint.
When a caller supplies Signature-Input, Signature, and X-Signer-Pubkey headers,
the gateway verifies the signature and returns the result in the response:
request_signature_verified is null. If headers are present but verification fails,
request_signature_verified is false and the request proceeds (verification is
advisory, not a gate).
Composition with the compliance stack
The verifier composes with the JCS canonicalisation substrate. A compliance receipt or settlement attestation emitted by AlgoVoi’s gateway carries an RFC 9421 signature over its HTTP delivery. A downstream verifier can:- Verify the HTTP signature to confirm the receipt was issued by the declared
keyidDID. - Verify the
content_hashof the receipt body using the audit verifier.
Conformance vectors
Therfc9421_proxy_chain_v1 (RFC 9421 §2.5-conformant) and legacy rfc9421_proxy_chain_v0 (algovoi-v0 base) fixture sets at algovoi-jcs-conformance-vectors cover:
- Baseline signing and verification round-trip (Ed25519 + ECDSA-P256)
- Proxy chain re-validation after TLS re-termination
Content-Digestcomputation for empty and non-empty bodiescreatedfreshness window enforcement- Covered-component ordering invariants
See also
- Key-credential binding — vectors binding an RFC 9421 signature to an issued agent credential
- Canonicalisation substrate — the JCS RFC 8785 discipline that underpins the receipt formats
- Audit verifier — selective-disclosure audit-bundle verifier
- Conformance vectors — full cross-implementation vector corpus
- Package suite — all 16 AlgoVoi packages at a glance
- Substrate authorship and provenance — citable AlgoVoi authorship record