Spore in Tech
Last updated
Was this helpful?
Last updated
Was this helpful?
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)
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
content-type
suggests the textual data format of the content
field, following the MIME standard and enabling extension feature labels, like TYPE/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 immortal
param is enabled as immortal=true
, a Spore becomes indestructible, meaning it lives on-chain forever and cannot be destroyed under any circumstances. immortal
is set to false
by default.
Example: content-type: image/png;immortal=true
content
contains the data of a Spore.
cluster_id
is an optional field denoting the series or class collection of this Spore. Refer to the following section for more details.
type
is a script set to SPORE_V1_DATA_HASH
with args equal to spore_id
, following spore_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.
name
denotes the name of the Spore cluster.
description
offers a textual portrayal of this particular cluster.
type
is a script configured as SPORE_CLUSTER_TYPE
, with args set to CLUSTER_ID
, following the guidelines of the Type ID script. CLUSTER_ID
is established with the formula hash(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.