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.
- JSON and Number Behavior
- Hash and Parent Behavior
- Merkle Behavior
- EIP-712 Binding
- Conformance Result
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
nullsubstitution in arrays; and - depth and rejected-type behavior.
Ports must use Keccak-256 and reproduce lowercase hash and parent normalization exactly.
Independent implementations must match:
- Keccak-256 rather than standardized SHA3-256;
- lowercase
0x-prefixed 32-byte hashes; and - trim, lowercase, validation, deduplication, and sorting of parent hashes.
Ports must reproduce sorted-pair hashing and odd-leaf promotion.
Every pair is ordered before hashing. Odd leaves are promoted according to the published vectors. Merkle root and proof outputs must match byte for byte.
Verification must bind the exact domain, types, chain ID, and verifying contract.
Independent implementations must match the exact EIP-712 domain, typed-data definitions, chain ID, and verifying-contract binding used by the target operation.
A port must consume the same vectors and report byte-level differences.
Conformance requires matching outputs, not merely accepting the same inputs. A language port should consume the same published vectors and report byte-level differences.