Skip to main content

ALX Block Model

An ALX Block is a unit of digital content with a deterministic identity and declared relationships to parent Blocks.

ALX Protocol defines how Blocks are structured, identified, and linked. The Block Explorer indexes conforming Blocks from configured sources, and the XNDR Network index adds observations used for discovery, verification, and navigation.

Block Fields​

Every Block contains four required fields. Protocol version 1 also supports the optional protocolVersion field. A core Block has no other fields.

FieldMeaning
contentThe JSON-serializable data stored in the Block.
contentHashDeterministic identity of the canonicalized content.
parentHashesNormalized list of parent blockHash values the Block declares.
blockHashDeterministic identity of the content and the declared parent relationships.
protocolVersionOptional declared protocol version.

Each parentHashes entry is a parent Block’s blockHash. Two Blocks can share a contentHash and have different blockHash values when they declare different parents.

Parent Relationships​

Blocks declare upstream relationships through parentHashes; each entry identifies a parent Block. A root Block has no declared parents, and a derived Block has one or more.

The index resolves declared parentHashes entries within the selected scope when the parent Blocks are available. The parent identities remain part of the Block even when the parent records are unavailable.

Indexed Children​

Children are discovered from the opposite direction: an indexed child is a Block that includes another Block’s blockHash in parentHashes. The index identifies indexed children from records available within the selected scope, so no indexed child in the selected scope means only that the scope has not observed a Block that declares the parent blockHash. Declared parents and indexed children together support navigation of Block relationships in both directions.

Block Facts and Network Observations​

ALX Protocol defines the canonical facts of a Block. The index combines the canonical Block facts with observations and query context from the selected scope.

InformationSource
Block identity, content, content identity, and declared parentsALX Protocol
Source observations, availability, first-observed time, and indexed childrenSelected scope
Scope, index revision, pagination, and completenessQuery context
Identity, schema, lineage, and availability checksVerifying implementation or index

Separating canonical facts from observations keeps a Block’s canonical identity independent from where or when the Block is observed.

Verification​

Verification is reported through separate facets so each property can be evaluated independently.

FacetWhat the Facet ChecksPossible Status
IdentityWhether the Block’s canonical identity validatesvalid, invalid, not-checked
SchemaWhether the Block passes the applicable structural checksvalid, invalid, not-checked
LineageWhether checked parent relationships validate within the applicable scopevalid, invalid, not-checked
AvailabilityWhether a referenced record is available within the selected scopeavailable, unavailable, unknown

Separate statuses prevent one successful check from implying that every property of a Block has been verified. not-checked is an XNDR Network index value; ALX Protocol Graph verification has no such status.

Explore Block Relationships​

Use the Block Explorer to search for an exact blockHash or contentHash.

From a Block, inspect the canonical identifiers and source observations, follow declared parents upstream, and navigate indexed children downstream within the available Block Graph.

Open Block Explorer