Technical Design
Spore protocol is engineered to embed value into on-chain contents and non-fungible tokens.
Spore is built on the Cell model, an extension of of Bitcoin UTXO, providing enhanced asset ownership and proof-based verification capabilities.
There are two defined cell types: Spore Cell
and Spore Cluster Cell
, of which Spore cell is the fundamental and the only necessary unit in the protocol. Other cell types are optional and may serve as extension cells, providing extra information to a Spore.
As illustrated above,
- Multiple Spores cells (Spore #1, #2) can be assigned to one Cluster (Spore Cluster #1)
- A single Spore cell (Spore #4) can be assigned to a cluster (Spore Cluster #2)
- A standalone Spore cell, i.e., a Spore can exist without a Cluster (Spore #3)
- A Spore cell cannot be assigned to multiple Clusters
- Importantly, Cluster Cells don't contain Spore Cells
Spore Protocol is anchored around the following key functionalities:
- Immutable digital asset issuance
- Permanent on-chain storage
- Minimized cell specification dedicated for content storage
- Built-in extensibility on the protocol level
Data structure
Spore Protocol uses Molecule as its serialization format standard. Basic types used in this standard are described as bellow:
vector Bytes <byte>;
array Bool [byte; 1];
option BoolOpt (Bool);
option BytesOpt (Bytes);
Spore Cell
Every Spore must follow this data structure:
table SporeData {
content_type: Bytes,
content: Bytes,
cluster_id: BytesOpt,
}
Cluster Cell
Every Cluster must follow this data structure.
table ClusterData {
name: Bytes,
description: Bytes,
}
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.