Tier 1 — Confirmed function-level overlap
T1-1 — canonicalizeBytes → canonicalJsonBytes (Confidence B)
AlgoVoi · @algovoi/substrate 0.3.0 · typescript/src/canonicalize.ts · npm 2026-05-23
typescript/packages/extensions/src/vcx/envelope/canonicalize.ts · committed 2026-06-02
canonicalizeBytes → canonicalJsonBytes, obj → value. Identical new TextEncoder().encode(...) body. The added typeof json !== "string" guard is equivalent to AlgoVoi’s if (out === undefined) guard one call up.
T1-2 — sha256Jcs → jcsSha256 + "sha256:" prefix convention (Confidence A/B)
AlgoVoi · @algovoi/substrate 0.3.0 · typescript/src/canonicalize.ts · npm 2026-05-23
typescript/packages/extensions/src/vcx/envelope/canonicalize.ts · committed 2026-06-02
"sha256:" prefix as a format validator in credential/trustlist.ts:
sha256Jcs → jcsSha256. Identical createHash('sha256')...digest('hex') pipeline. VCX absorbs AlgoVoi’s application-layer "sha256:" prefix convention into the primitive and validates it as a format requirement in the trustlist verifier.
T1-3 — content_hash audit-chain pattern → envelopeDigest + verifyDidDocumentHash (Confidence B)
AlgoVoi · @algovoi/substrate 0.3.0 · typescript/src/audit-chain.ts · npm 2026-05-23
typescript/packages/extensions/src/vcx/envelope/canonicalize.ts + credential/trustlist.ts · committed 2026-06-02
content_hash = sha256Jcs(payload) → envelopeDigest = jcsSha256(envelope). prev_hash chain linkage deferred to VCX §16.1 companion PR (see Tier 3).
T1-4 — settled_payment_ref field name (Confidence A)
AlgoVoi · @algovoi/settlement-attestation 0.1.0 · typescript/src/settlement-attestation.ts · npm 2026-05-25
specs/extensions/vcx.md §16.1 · committed 2026-06-02
Tier 2 — Structural inference
T2-1 — Pre-canonicalisation type guard (Confidence C)
AlgoVoi ·@algovoi/substrate 0.3.0 · typescript/src/canonicalize.ts · npm 2026-05-23
typescript/packages/extensions/src/vcx/envelope/canonicalize.ts · committed 2026-06-02
canonicalize call before acting on it. AlgoVoi validates upstream via validateTypes + undefined check; VCX checks the return type in the immediate caller. Different placement, same intent.
T2-2 — import canonicalize from "canonicalize" (Confidence D)
AlgoVoi · typescript/src/canonicalize.ts · npm 2026-05-23
typescript/packages/extensions/src/vcx/envelope/canonicalize.ts · committed 2026-06-02
T2-3 — ComplianceReceipt structure → VCX identity layer (Confidence C)
AlgoVoi · @algovoi/substrate 0.3.0 · typescript/src/compliance-receipt.ts · npm 2026-05-23
typescript/packages/extensions/src/vcx/types.ts · committed 2026-06-02
payer_ref → sourceId; screen_provider_did → principal.did; jurisdiction_flags ordered array → allowedNetworks / allowedAssets arrays. Different layer names, same design intent.
Tier 3 — Pre-absorption (companion PR scope)
AlgoVoi patterns already published before VCX PR. VCX §16.1 explicitly defers the full settlement receipt shape to a “companion PR” — these constructs are the likely content of that companion PR.T3-1 — SETTLEMENT_RESULTS three-state enum
AlgoVoi · @algovoi/settlement-attestation 0.1.0 · typescript/src/settlement-attestation.ts · npm 2026-05-25
specs/extensions/vcx.md §16.1 · committed 2026-06-02
“full settlement receipt shape is out of scope for VCX v1.0 and will be addressed in a companion PR”Status: Published 8 days before VCX PR commit. Named in AlgoVoi’s attribution comments on PR #2544. Companion PR not yet filed.
T3-2 — AuditChainRow { prev_hash } linkage
AlgoVoi · @algovoi/substrate 0.3.0 · typescript/src/audit-chain.ts · npm 2026-05-23
envelopeDigest present in §6.4; full prev_hash chain linkage deferred to companion PR per §16.1.
Status: Published 10 days before VCX PR commit. prev_hash is the forward-chaining audit property absent in VCX v1.0.
T3-3 — CANON_VERSION = 'jcs-rfc8785-v1' in-band pin
AlgoVoi · @algovoi/substrate 0.3.0 · typescript/src/canonicalize.ts · npm 2026-05-23
canon_version field present in the current VCX envelope schema.
Status: Published 10 days before VCX PR commit. The jcs-rfc8785-v1 identifier is registered in draft-hopley-x402-canonicalisation-jcs-v1 §10.1 (AlgoVoi, IETF 2026-05-24). A companion PR adopting AlgoVoi’s receipt lifecycle model will require this pin.
Apache 2.0 except where individual package LICENCE files specify otherwise.