Skip to main content

Cross-Language Requirements

Cross-language conformance means that independent implementations produce the same protocol-visible output from the same input. Matching data models alone is not enough when byte serialization or normalization differs.

Byte-Level Agreement Requirements

A one-byte difference changes the resulting hash, signature digest, or Merkle root hash. Conformance vectors make those differences observable before two implementations exchange Blocks.

How Conformance Is Checked

Each implementation runs the same canonicalization, identity, lineage, Merkle, and signing cases. The resulting bytes, hashes, normalized values, and verification outcomes must match the expected vectors.

When to Run These Checks

Run the vectors when porting ALX to another language, changing serialization code, upgrading cryptographic dependencies, or reviewing interoperability.

Ports must reproduce UTF-16 key sorting, JavaScript number rendering, undefined handling, depth limits, and rejected types.

Independent implementations must match:

  • UTF-8 output without Unicode normalization;
  • JavaScript UTF-16 code-unit object-key ordering;
  • IEEE-754 shortest finite-number representation;
  • omission of undefined object values and null substitution in arrays; and
  • depth and rejected-type behavior.