Protocol operation

Protocol Operations

Within the Bitseed protocol, a series of operations have been defined to ensure the efficient and consistent management and transfer of assets on the blockchain. Below is a detailed technical description of these operations:

Deploy Operation

The Deploy operation is responsible for initializing and deploying new asset types or game worlds, inscribing specific generator metadata on the blockchain, detailing how to generate and restrict assets. This includes the location identifier of the generator (for example, a URI pointing to an Inscription), the maximum supply (max), and the allowed number of duplicate generations (repeat).

Below is a table listing the properties of the Bitseed deploy instruction:

AttributeDescriptionRequired
metaprotocolProtocol name, must be "bitseed"Yes
metadata.opOperation name, must be "deploy"Yes
metadata.tickType, 4-32 characters, case-insensitiveYes
metadata.amountMaximum supply, an integer u64Yes
metadata.attributes.repeatAllowed number of duplicates, default is 0, indicating no limit on repeatsNo
metadata.attributes.generatorThe address of the generator, pointing to another Inscription /inscription/$inscription_idYes
metadata.attributes.has_user_inputWhether user input is required, default is false, indicating no user input is needed, true indicates that user input is requiredNo
metadata.attributes.deploy_argsDeployment parameters for the initialization of the generator, array of JSON stringsNo

Mint Operation

The content for Mint is generated by the generator program, and users inscribe it into the inscription.

Below is a table listing the properties of the Bitseed Mint operation:

AttributeDescriptionRequired
metaprotocolProtocol name, must be "bitseed"Yes
metadata.opOperation name, must be "mint"Yes
metadata.tickType, 4-32 characters, case-insensitiveYes
metadata.amountQuantity, as output by the generatorYes
metadata.attributesDynamic attributes, as output by the generatorNo
content_typeContent type of the inscription, as output by the generatorNo
bodyContent of the inscription, as output by the generatorNo

Transfer Operation

The Transfer operation follows the UTXO tracking model of the Inscription protocol, supporting the transfer of Bitseed assets from one address to another.

Merge Operation

The Merge operation allows for the combination of two Bitseed assets of the same type into a single asset. The merging assets (A, B) must have the same protocol identifier (p), asset type (tick), and attributes (attributes). The quantity (amount) of the new merged asset (C) is the sum of the quantities of the original assets. The Merge operation requires the UTXOs of the two original Inscriptions to be output to the same Output and inscribed again.

A.p == B.p
A.tick == B.tick
A.attributes == B.attributes
C.amount = A.amount + B.amount

For example, currently there is Bitseed A

SFT {
    "tick": "bits",
    "amount": 100
}

Bitseed B

SFT {
    "tick": "bits",
    "amount": 200
}

After merging A and B, the result is

SFT {
    "tick": "bits",
    "amount": 300
}

Merge flow:

Merge flow

Below is a table listing the properties of the Bitseed merge instruction:

AttributeDescriptionRequired
metaprotocolProtocol name, must be "bitseed"Yes
metadata.opOperation name, must be "merge"Yes
metadata.tickType, 4-32 characters, case-insensitiveYes
metadata.amountAmount after merge, an integer u64Yes
metadata.originalMerge source SFT inscription ID listYes
metadata.attributesSFT attributes, same with original Inscription attributesNo

Split Operation

The Split operation allows a Bitseed asset to be divided into multiple independent assets. The original asset (C) is split into two or more assets (A, B), with attributes remaining unchanged, while the quantity is distributed according to the split rules. The Split operation requires the UTXO of the original Inscription to be output to two Outputs and inscribed separately.

C.amount > 1
C.amount == A.amount + B.amount
A.tick = C.tick
B.tick = C.tick
A.attributes = C.attributes
B.attributes = C.attributes

Split flow:

Split flow

Below is a table listing the properties of the Bitseed split instruction:

AttributeDescriptionRequired
metaprotocolProtocol name, must be "bitseed"Yes
metadata.opOperation name, must be "split"Yes
metadata.tickType, 4-32 characters, case-insensitiveYes
metadata.amountpart amount, an integer u64Yes
metadata.originalSplit source SFT inscription ID list, This operation hasYes
and can only have one source SFT inscription
metadata.attributesSFT attributes, same with original Inscription attributesNo