vauban-x402-jcs-conformance, a Rust crate published to crates.io by Vauban Pay (seritalien). The record is relevant to any evaluation that places Vauban and AlgoVoi as equivalent contributors to the x402 canonicalisation discipline.
Full provenance exhibit with coalition engagement log, IETF anchors, and Apache 2.0 position: Substrate Authorship and Provenance
Publication timeline
| Surface | Author | Date | Anchor |
|---|---|---|---|
Gists 5f35eaa... + field expected_jcs_bytes_b64 introduced | AlgoVoi (chopmob-cloud) | 2026-05-16 to 2026-05-19 | Public GitHub gists |
algovoi-substrate 0.3.0 (PyPI + npm) | AlgoVoi | 2026-05-23 | Third-party-immutable registry |
draft-vauban-x402-stark-receipts-00 filed to IETF (names AlgoVoi twice in §7 co-authorship) | seritalien | Before 2026-05-24 scrub | IETF immutable archive SHA-256 135b94f1ab019f4530ba4abb4cbe0cb951994969312827e319c2f49abf8d0b5e |
vauban-x402-jcs-conformance 0.1.0 (crates.io) | seritalien / Vauban Pay | 2026-05-24 | SHA-256 188dc67c31a4252ce7d1a55b6cbfd58d42759a83563ab4da8ffbfd6d02f61e75, git c25bf63f |
| Comment scrub: three edits removing AlgoVoi attribution | seritalien | 2026-05-24 (11:14Z, 11:48Z, 12:02Z UTC) | GitHub userContentEdits API (preserves pre-edit bodies; cannot be selectively deleted) |
Gist b0b86baabae33e289fdb6d2f3fb30130 deleted (was the Rust 5th-impl runner, 21/21 AlgoVoi vector pass) | seritalien | Before 2026-06-11 | 404 confirmed 2026-06-11; crate 0.1.0 is the immutable successor |
vauban-x402-jcs-conformance 0.1.1 (crates.io) | seritalien / Vauban Pay | 2026-05-29 | SHA-256 07d691526d013eae8a1b21d3360de4e81a5593097c417299746510c4af9c088c, git 1f83110b |
algovoi-refund-receipt 0.1.0 (npm) | AlgoVoi | 2026-05-24 | npm (field original_payment_ref introduced) |
static.crates.io and cannot be scrubbed by Vauban.
Function-level comparison
The table below maps each exported function in the Vauban crate against its AlgoVoi equivalent and (where applicable) the VCX PR #2544 variant. Sources: AlgoVoialgovoi-substrate 0.3.0 (PyPI 2026-05-23, Python); Vauban crate 0.1.0 lib.rs (tarball SHA-256 above, Rust); VCX PR #2544 canonicalize.ts (committed 2026-06-02, TypeScript). The TypeScript npm @algovoi/substrate 0.3.0 counterparts use camelCase: canonicalizeBytes and sha256Jcs.
AlgoVoi (algovoi-substrate 0.3.0, PyPI 2026-05-23) | Vauban (vauban-x402-jcs-conformance 0.1.0, 2026-05-24) | VCX PR #2544 (canonicalize.ts, 2026-06-02) |
|---|---|---|
canonicalize_bytes(obj) returns bytes (RFC 8785 JCS canonical bytes) | jcs_canonical_bytes(body) returns Vec<u8> RFC 8785 canonical bytes | canonicalJsonBytes(value) returns Uint8Array RFC 8785 canonical bytes |
sha256_jcs(obj) returns lowercase hex SHA-256 of JCS bytes | jcs_sha256(body) returns "sha256:" + lowercase_hex | jcsSha256(value) returns "sha256:" + lowercase_hex |
vector format field sha256_jcs paired with jcs_bytes_b64 | jcs_hash(body) returns (base64_canonical, "sha256:<hex>") tuple | envelopeDigest(envelope) returns JCS SHA-256 of an identity envelope |
| Pair invariant tests in conformance corpus | validate_pair_invariant(l, r) returns bool | - |
SHA-256(JCS(RFC 8785)(object)). Vauban and VCX both adopted the "sha256:" prefix convention that AlgoVoi uses at the application layer for its vector format outputs. The vector field name, the conformance test methodology, and the function structure all originate in AlgoVoi’s published corpus.
Field-name dependency evidence
The Vauban crate’s lib.rs module docstring (both 0.1.0 and 0.1.1) contains:
“Base64 canonical-bytes encoding helper for vector comparison against expected_jcs_bytes_b64 fields in published conformance suites.”
expected_jcs_bytes_b64 is AlgoVoi’s conformance vector field name. It first appeared in AlgoVoi gists on 2026-05-16, was committed to the AlgoVoi repository on 2026-05-23 (commit 1f93352), and was published to PyPI and npm as part of algovoi-substrate 0.3.0 on 2026-05-23. The Vauban crate (0.1.0) was published 2026-05-24: one day later.
The crate’s README names AlgoVoi’s PR #2412 (Axis 0 substrate vectors) explicitly:
“This crate is the Rust 5th-implementation runner referenced in x402 coalition Pull Requests #2412, #2413, #2432, and #2440, authored by Vauban Research.”PR #2412 is AlgoVoi’s Axis 0 substrate vectors pull request, confirmed in PR #2434: “Shares the JCS canonicalization substrate from Axis 0 (#2412, AlgoVoi).” In version 0.1.1 (2026-05-29) the
jcs_sha256 function docstring adds a reference to original_payment_ref, AlgoVoi’s field from algovoi-refund-receipt 0.1.0 (npm 2026-05-24).
Cargo.toml self-description (0.1.0, verbatim)
IETF immutable record
draft-vauban-x402-stark-receipts-00 (IETF immutable archive, SHA-256 135b94f1ab019f4530ba4abb4cbe0cb951994969312827e319c2f49abf8d0b5e) contains in §7:
“co-authored by AlgoVoi, FeedOracle, and Vauban Pay”This is seritalien’s own IETF submission, filed before the 2026-05-24 scrub. Subsequent revisions of the I-D removed the named AlgoVoi credit. The -00 text cannot be altered retroactively in the IETF archive.
Apache 2.0 position
AlgoVoi’s canonicalisation corpus is published Apache 2.0. Apache 2.0 section 4(d) requires the reproducer to retain all attribution notices from the original Work in any derivative works.| Fact | Status |
|---|---|
| AlgoVoi corpus published Apache 2.0 | Confirmed (npm + PyPI, 2026-05-23) |
vauban-x402-jcs-conformance 0.1.0 licence | Apache 2.0 |
| NOTICE file in 0.1.0 tarball | Not present (verified from tarball file listing) |
vauban-x402-jcs-conformance 0.1.1 licence | Apache 2.0 |
| NOTICE file in 0.1.1 tarball | Not present (verified from tarball file listing) |
| AlgoVoi formal notice position | Covered in Substrate Authorship and Provenance |
Scrub record (2026-05-24)
On 2026-05-24, the same day the 0.1.0 crate was published, seritalien edited three GitHub comments removing AlgoVoi attribution. The edits were timestamped 11:14Z, 11:48Z, and 12:02Z UTC. GitHub’suserContentEdits API preserves both the pre-edit and post-edit comment bodies and cannot be selectively deleted by the author. The pre-edit bodies and the vault capture SHA-256 are recorded in the full provenance exhibit.
The gist that seritalien had earlier shared as the Rust 5th-impl runner (b0b86baabae33e289fdb6d2f3fb30130, 21/21 AlgoVoi vector pass, explicit AlgoVoi thread link) was deleted before 2026-06-11. The 0.1.0 crate, published on scrub day, preserves the technical function of the gist while removing the AlgoVoi attribution the gist carried.
VCX PR #2544 connection
johnnwilliams27 (PayPal / x402-foundation) named seritalien (Vauban) as a comment-period contributor in VCX PR #2544 alongside@chopmob-cloud (AlgoVoi). The PR implements the same JCS+SHA-256 pipeline (canonicalJsonBytes, jcsSha256, envelopeDigest) that AlgoVoi published to npm on 2026-05-23. seritalien and johnnwilliams27 were both active in the same x402 coalition PR threads where AlgoVoi’s substrate contributions are on the public record.
The full side-by-side TypeScript comparison of AlgoVoi’s published packages against VCX PR #2544 is at VCX PR #2544 Code Comparison.
Immutable crate anchors
| Version | Published | Size | SHA-256 (.crate tarball) | Git commit |
|---|---|---|---|---|
| 0.1.0 | 2026-05-24 | (see registry) | 188dc67c31a4252ce7d1a55b6cbfd58d42759a83563ab4da8ffbfd6d02f61e75 | c25bf63f90d53e5cbd052989f6bbedf4304fb2e8 |
| 0.1.1 | 2026-05-29 | 6,877 B | 07d691526d013eae8a1b21d3360de4e81a5593097c417299746510c4af9c088c | 1f83110b1718932c5772414cea90e2f72fb75452 |
https://static.crates.io/crates/vauban-x402-jcs-conformance/{version}/download regardless of yank status.
See also: Substrate Authorship and Provenance | VCX PR #2544 Code Comparison