Spore in Tech
Spore is built on the Cell model, a combination of the benefits found in Ethereum's account model and Bitcoin's UTXO model, 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, Spore cells come in three forms:
Multiple Spores cells (Spore #1, #2) in a cluster (Spore Cluster #1)
A single Spore cell (Spore #4) in a cluster (Spore Cluster #2)
A standalone Spore cell, i.e., a Spore without a cluster (Spore #3)
Functionalities
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 Cell
data:
content-type: Bytes # String Bytes
content: Bytes
# OPTIONAL
cluster_id: Bytes # TYPE_ID_OF_CLUSTER
type:
hash_type: "data1"
code_hash: SPORE_V1_DATA_HASH # hash of Spore's type script data hash
args: SPORE_ID
lock:
<user-defined>content-typesuggests the textual data format of thecontentfield, following the MIME standard and enabling extension feature labels, likeTYPE/SUBTYPE;PARAM=VAL.While users can enjoy the flexibility using this param to extend Spore Protocol, there are also several preset parameters available. For instance, when the
immortalparam is enabled asimmortal=true, a Spore becomes indestructible, meaning it lives on-chain forever and cannot be destroyed under any circumstances.immortalis set tofalseby default.Example:
content-type: image/png;immortal=truecontentcontains the data of a Spore.cluster_idis an optional field denoting the series or class collection of this Spore. Refer to the following section for more details.typeis a script set toSPORE_V1_DATA_HASHwith args equal tospore_id, followingspore_id = hash(this_transaction.inputs[0]) | Groupoutput_index_of_this_cell.
Data in a Spore Cell remains immutable once created. A Spore Cell is transferable, destructible, and when the immortal extension is enabled, it becomes indestructible, remaining on-chain permanently.
Spore Cluster Cell
data:
name: <VARTEXT>
description: <VARTEXT>
type:
code_hash: SPORE_CLUSTER_TYPE
args: TYPE_IDnamedenotes the name of the Spore cluster.descriptionoffers a textual portrayal of this particular cluster.typeis a script configured asSPORE_CLUSTER_TYPE, with args set toCLUSTER_ID, following the guidelines of the Type ID script.CLUSTER_IDis established with the formulahash(this_transaction.inputs[0]) | Grouputput_index_of_this_cell.
Data in a Spore Cluster Cell remains immutable once created. A Spore Cluster Cell is transferable, indestructible, and immortal. It cannot be destroyed under any circumstances and remains on-chain permanently.
Last updated
Was this helpful?