> ## Documentation Index
> Fetch the complete documentation index at: https://docs.algovoi.co.uk/llms.txt
> Use this file to discover all available pages before exploring further.

# Vauban Substrate: Derivation Record

> Side by side comparison of AlgoVoi's published canonicalisation substrate against the vauban-x402-jcs-conformance crate, with timestamps and anchors.

This page sets out the verified technical record for `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](/substrate-authorship-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)                                                     |

AlgoVoi's corpus predates both crate versions. crates.io is append-only: both tarballs are permanently downloadable from `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: AlgoVoi `algovoi-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`                         | -                                                                         |

All three surfaces implement the same core pipeline: `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)

```toml theme={null}
[package]
name = "vauban-x402-jcs-conformance"
version = "0.1.0"
description = "Reference 5th-implementation runner for JCS (RFC 8785) preimage discipline in x402 STARK Receipt Format Extension (draft-vauban-x402-stark-receipts-00). Cross-validates byte-identical canonical bytes against publicly available JCS conformance suites."
license = "Apache-2.0"
```

"The publicly available JCS conformance suites" the crate is built to consume are AlgoVoi's vector sets. They are not named in the crate.

***

## 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](/substrate-authorship-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's `userContentEdits` 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.

***

## 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` |

Both tarballs are held in the AlgoVoi evidence archive. crates.io tarballs are retrievable at `https://static.crates.io/crates/vauban-x402-jcs-conformance/{version}/download` regardless of yank status.

***

See also: [Substrate Authorship and Provenance](/substrate-authorship-provenance)
