Skip to content

Assemblies

Logical compositions of related Sigils.

Open design

An assembly is a logical composition of related Sigils. It is the larger structure that the puzzle model describes: a set of pieces, connected through references and interpreted together.

An assembly is derived

An assembly is not stored as a separate onchain object. It is computed by an indexer from the Sigils that compose it. This mirrors the rest of the protocol: the chain stores pieces, and structure emerges from interpretation.

Deriving assemblies rather than storing them means:

  • No additional transaction is needed to form an assembly.
  • An assembly can grow as new pieces reference it.
  • Any party can recompute an assembly from chain history and check an indexer's result.

Anchored and open assemblies

Two shapes are under consideration.

Anchored assemblies begin with a root Sigil that declares the assembly. Other Sigils join by referencing the root with a part-of relation. The root's ID becomes the assembly's ID.

Open assemblies have no root. Any connected set of Sigils linked by references forms a structure. This is more flexible but harder to bound, name and validate.

The current proposal favors anchored assemblies, because a root gives the structure a stable identity and a natural place for a standard to declare membership rules.

Draft Example — Not Finalized

JSON
{
  "p": "saelis",
  "v": 0,
  "std": null,
  "meta": { "name": "Collection root" },
  "refs": [],
  "body": { "kind": "assembly" }
}

Possible uses

The puzzle model is deliberately general. Assemblies could describe:

  • Collections. A set of related pieces grouped under one root.
  • Documents. Content published in sections, where each section is a Sigil.
  • Versioned records. A chain of Sigils, each referencing the previous version.
  • Application state. Configuration or registries built from individually published entries.

These are illustrations of the model's scope, not implemented features.

Validation considerations

Assembly validation is the least settled part of the protocol. Open questions include:

  • Whether membership can be restricted, for example to the root's creator.
  • Whether a piece may belong to more than one anchored assembly.
  • How an assembly's state is defined when a member is invalid under its standard.
  • Limits on assembly depth and size, to keep reconstruction bounded.