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:
Attribute | Description | Required |
---|---|---|
metaprotocol | Protocol name, must be "bitseed" | Yes |
metadata.op | Operation name, must be "deploy" | Yes |
metadata.tick | Type, 4-32 characters, case-insensitive | Yes |
metadata.amount | Maximum supply, an integer u64 | Yes |
metadata.attributes.repeat | Allowed number of duplicates, default is 0, indicating no limit on repeats | No |
metadata.attributes.generator | The address of the generator, pointing to another Inscription /inscription/$inscription_id | Yes |
metadata.attributes.has_user_input | Whether user input is required, default is false, indicating no user input is needed, true indicates that user input is required | No |
metadata.attributes.deploy_args | Deployment parameters for the initialization of the generator, array of JSON strings | No |
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:
Attribute | Description | Required |
---|---|---|
metaprotocol | Protocol name, must be "bitseed" | Yes |
metadata.op | Operation name, must be "mint" | Yes |
metadata.tick | Type, 4-32 characters, case-insensitive | Yes |
metadata.amount | Quantity, as output by the generator | Yes |
metadata.attributes | Dynamic attributes, as output by the generator | No |
content_type | Content type of the inscription, as output by the generator | No |
body | Content of the inscription, as output by the generator | No |
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:
Below is a table listing the properties of the Bitseed merge instruction:
Attribute | Description | Required |
---|---|---|
metaprotocol | Protocol name, must be "bitseed" | Yes |
metadata.op | Operation name, must be "merge" | Yes |
metadata.tick | Type, 4-32 characters, case-insensitive | Yes |
metadata.amount | Amount after merge, an integer u64 | Yes |
metadata.original | Merge source SFT inscription ID list | Yes |
metadata.attributes | SFT attributes, same with original Inscription attributes | No |
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:
Below is a table listing the properties of the Bitseed split instruction:
Attribute | Description | Required |
---|---|---|
metaprotocol | Protocol name, must be "bitseed" | Yes |
metadata.op | Operation name, must be "split" | Yes |
metadata.tick | Type, 4-32 characters, case-insensitive | Yes |
metadata.amount | part amount, an integer u64 | Yes |
metadata.original | Split source SFT inscription ID list, This operation has | Yes |
and can only have one source SFT inscription | ||
metadata.attributes | SFT attributes, same with original Inscription attributes | No |