Skip to main content

The Block

An ALX Block combines application-defined JSON content with deterministic content and lineage identities. Four fields define the core Block structure, allowing conforming implementations to recreate and verify equivalent Blocks independently.

The Four Fields

type Block = {
content: unknown;
parentHashes: string[];
contentHash: string;
blockHash: string;
};

content is the JSON-serializable application payload.

parentHashes contains the normalized identities of declared parent Blocks.

contentHash is the deterministic identity of the canonicalized content.

blockHash is the deterministic identity of the content together with its normalized declared parent set.

contentHash allows the same content to be identified independently of lineage. blockHash binds that content to its declared parents, allowing identical content to appear within different declared lineages while retaining the same contentHash.

ALX canonicalizes content before deriving contentHash. The protocol validates, deduplicates, and lexicographically sorts parentHashes before deriving blockHash.

Example Block Content

The examples below represent application-defined content payloads, not complete Blocks. A complete Block also contains parentHashes, contentHash, and blockHash.

Market inputs and an application-defined assessment.

{
"type": "market-analysis",
"symbol": "NVDA",
"observationDate": "2026-07-28",
"inputs": {
"price": 182.41,
"revenueGrowth": 0.34
},
"assessment": "positive"
}

The parent Blocks could point to the market dataset, prior analysis, model output, and analyst review.

When to Create a Block

Create a Block when JSON-serializable content needs deterministic identity, declared lineage, or both.

A Block with no declared parents is a root Block. Adding one or more parents connects a new Block to prior Blocks, allowing applications and intelligent systems to preserve relationships as work develops across multiple steps.