Skip to main content



A unit of measurement for storage space and resource allocation on Nervos CKB. For Spore, it quantifies the size of data stored on the blockchain, measured in occupied CKBytes.

see also:


Fundamental data unit in Spore Protocol, built on CKB Cell Model, inspired by Bitcoin's UTXO. A Spore cell, or Spore for short, can encompass almost any data forms, including images, text, binary lib, etc.. Spore Protocol defines two cell types: Spore cell and Spore cluster cell. Spore cell type is the essential and only necessary building block, while the cell type of Spore cluster is optional, and may serve as an extension providing additional information of a Spore.


Denotes a series or collection of Spores, serving as an organizational tool that groups individual Spores. Each Spore can be linked to one cluster, and one cluster can be associated to a single or multiple Spores. Clusters are immortal. Once created, a cluster stays on-chain permanently.

see also:

Cluster Agent

ClusterAgent is a representative entity of a Cluster. Owner of ClusterAgent can reference it to create clustered Spores without requiring signatures or approvals from the owner of the Cluster it represents. This design allows for more flexible interactions and management of Spores.

Cluster Proxy

A solution aimed at resolving ownership verification issues of the referenced Cluster during Spore creation. ClusterProxy enables the creation of ClusterAgents. If a minimum payment (minPayment) is defined for the ClusterProxy, anyone can make a payment to the ClusterProxy's owner and reference the ClusterProxy to create ClusterAgents.


The unique digital item or asset that Spore represents. This could be anything like digital art, music, videos, virtual real estate, or collectibles.

see also:


The file format or type of the digital asset created as Spore. For example, if the content-type is JPEG, it means the digital asset is an image. If it's MP3 or MP4, the asset is an audio file or a video file, respectively. Content-type helps in understanding how to correctly use or display the digital asset. The rules and structure of Spore's content-types follow the MIME standard, which is a widely accepted guideline for indicating the nature and format of a document, file, or assortment of bytes.

see also:


Refer to the term melt.

see also:


As used in the context of Spore and referred to as a Mutant, indicates an additional feature or set of rules that can be applied to a spore or cluster.

see also:


Collection of individual Spores associated together by a specific cluster.

see also:


An extension that makes the spore or cluster permanently on-chain, ensuring it cannot be destroyed/melted or removed, not even by its owner.


Quality of permanence and resistance to alteration. Once a Spore is minted, its essential attributes become fixed and cannot be changed.

see also:


References the Spore cell consumed in a transaction, containing specific information about the Spore’s identifier and content data.

see also:

Lock Script

A script that manages ownership and controls the access of Spore cells. It governs who can use the cell as input in a transaction, and accepts user-generated proofs and the transaction as inputs.

Anyone-Can-Pay (ACP)

A CKB lock script enabling the acceptance of Simple UDT or CKB payments without transfer amount restrictions. It simplifies payments to a cell by allowing transfer without creating new cells.

For more details, visit RFC0026: Anyone-Can-Pay Lock.


An interoperable lock script natively supporting transaction signing method verification across blockchains, offering extensibility for future verification algorithms.

Omnilock introduces a regulation compliance module, enabling administrators to revoke tokens held by users under defined circumstances, bridging the gap between blockchain and traditional financial regulation.

For more information, visit RFC0042-Omnilock.


A lock script code using the secp256k1 signature algorithm, performing Blake2b hash operations on transaction and witness components. Essential for validating transactions in specific blockchain systems.


Process of adding capacity to a Spore, locking it, and declaring its intrinsic value, thus transforming a digital creation into a unique, tamper-proof, and verifiable digital asset on-chain.

see also:


Process of undoing the creation of a Spore, resulting in the recovery of the storage space (capacity), measured in CKBytes, that was originally used to create the Spore.

see also:


A special cell in Spore‘s ecosystem that stores Lua scripting code in the data field, be executed in every referenced transaction once applied. One can apply mutant:

  1. To a Spore by specifying in content-type using param mutant[] = MUTANT_ID_1, MUTANT_ID2,…;, and including the referenced mutant cell in CellDep.
  2. To a cluster by setting cluster’s mutant_id=MUTANT_ID, and including the referenced mutant cell in CellDep.

Mutant has three operation modes, each mapped to three opcodes, whose values are based on the transaction status:

  • opcode 0: Spore in minting operation, mutant executed as minting mode, and mutant Lua script can use external values: spore_ext_mode, spore_output_index, and spore_ext_mode = 0
  • opcode 1: Spore in transfer operation, mutant executed as transfer mode, and mutant Lua script can use external values: spore_ext_mode, spore_input_index spore_output_index, and spore_ext_mode = 1
  • opcode 2: Spore in melt operation, mutant executed as melt mode, and mutant Lua script can use external values: spore_ext_mode,spore_input_index, and spore_ext_mode = 2

see also:

Non-Fungible Token (NFT)

Unique, indivisible digital assets representing ownership or proof of authenticity for specific items. Unlike cryptocurrencies, they cannot be exchanged on a one-to-one basis due to their unique properties and value.

Spore is a digital object where the content is entirely stored on-chain and intrinsically tied to the token value.

see also:


Spore cell(s) created when new transactions are confirmed. Can serve as input cells for future transactions.

see also:

On-Chain Ownership

Publicly verifiable and indisputable record of ownership for digital assets inscribed on the blockchain, eliminating the need for intermediaries and ensuring transparency.

Private Cluster

A cluster that can only be used by its owner to link a Spore or multiple Spores to it when minting these Spores.

see also:

Private Key

Cryptographic information exclusively known to its owner or owners. Employed in conjunction with an algorithm for both encryption and decryption, ensuring the confidentiality and security of sensitive information.

see also:

Public Cluster

A cluster that allows anyone, not just the owner, to associate a Spore or multiple Spores with it when minting Spores.

see also:

Public Key

Cryptographic information openly shareable without compromising security. Utilized for message encryption to ensure that only the corresponding private key holder can decrypt. Also employed for message authenticity verification, confirming authorization by the user possessing the corresponding private key.

see also:


Ability of Spore owners to melt their Spores and retrieve the occupied CKBytes.

see also:


The process of changing the ownership of a Spore or a Cluster. It's important to note that owning a cluster does not automatically grant ownership of the spores associated with that cluster. Each Spore and Cluster has its own distinct ownership rights that can be transferred separately.

see also:


The economic aspects and dynamics of cryptocurrency tokens, focusing on distribution, supply, demand, utility, and economic incentives in blockchain ecosystems.

Spore, benefits from CKB’s tokenomics, enables a win-win situation for both creators and buyers: creators are directly compensated from Spore sales and also benefit from using on-chain space, while buyers receive both the on-chain assets and the associated tokens.

Type ID

The unique identification scheme within the CKB blockchain, crucial for maintaining the security and integrity of smart contracts, particularly in situations where contracts might need to be updated or fixed after deployment, while still ensuring that their behavior remains predictable and secure. It's a balance between allowing updates (upgradability) and keeping the system reliable (determinism).

Rule: type_id = hash(hash(first_input), output_index)

For example, with two input cells (Cell #1, Cell #2) and two output cells (Cell #3, Cell #4),

  • the Type ID for Cell #3 is hash(hash(Cell#1) + 0)

  • the Type ID for Cell #4 is hash(hash(Cell#1) + 1)

see also: Introduction to CKB Script Programming 6: Type ID

Type Script

A script establishing mandatory transaction conditions for a Spore cell to be used as input or created as output.

see also:

Zero-Fee Transfer

Mechanism allowing 0 cost Spore transfers. Each Spore is pre-fueled with the capacity to cover future transfers, making all subsequent operations–including sending, receiving, and melting—completely free.

see also: