▪️2. Metaverse Component

What is Metaverse Component(MC)?

There are various elements that make up the metaverse, such as characters, lands, worldviews, and so on.

Deploy

The wallet of a metaverse owner can create a metaverse component by generating an inscription similar to the following. It is the meta-description of a certain type of instance in the metaverse.

Explanation

  • The following operation will deploy a component named "charactor:warrior" in the Root metaverse. In fact, it defines the warrior character in the Root metaverse.

  • In the field of "tick", it uses ":" acting as the hierarchical classification separator. It means "Warrior" belongs to "charactor".

  • "Elements" is the component of "Warrior", represented as a dictionary. The keys in this dictionary are element names, including Race, Sub Race, Gender, Hair Color, Hairstyle, Skin Color, Clothing, Accessory, Weapon, and Exoskeleton, making up a total of ten elements. The value for each key is an array, which contains candidate values for that element. When creating an instance of a Warrior, which is the "Mint" operation, one from these candidates needs to be selected for each element.

{
    "p": "brc-1024",
    "metaverse": "root",
    "op": "deploy",
    "tick": "charactor:warrior",
    "max": 20000,
    "self-mint-wallets": ['bc1pz0fz3te3ktew9sauugv6hm8v7pn4lf3c6qq0d3efeceyp557yltsuz39xv','bc1phrne2pen4n9m006gtkgmmq6ry54vpk3wukkzg5upqcezlgzux9qsp4kmyg'],
    "self-mint-number": 2000
    "elements": {
        "Race": [
            "Human"
        ],
        "Sub Race": [
            "Warrior"
        ],
        "Gender": [
            "Male",
            "Female"
        ],
        "Hair Color": [
            "Black",
            "Brown",
            "Blonde"
        ],
        "Hairstyle": [
            "Short",
            "Long",
            "Samurai Bun",
            "Ponytail"
        ],
        "Skin Color": [
            "White",
            "Bronze"
        ],
        "Clothing": [
            "Battle Armor",
            "Chainmail",
            "Samurai Robe",
            "Leather Armor",
            "Leopard Print Robe",
            "Brocade Battle Dress",
            "Tiger Skin Battle Dress",
            "Phoenix Armor",
            "Wolf Spirit Battle Dress",
            "Python Scale Armor",
            "Kirin Battle Armor",
            "White Fox Fur Battle Dress"
        ],
        "Accessory": [
            "Cloak",
            "Helmet",
            "Headband",
            "Heavy Armor Helmet"
        ],
        "Weapon": [
            "Tang Sword",
            "Western Sword",
            "Katana",
            "Bow And Arrow",
            "Crescent Blade",
            "Spear",
            "Battle Axe",
            "Warhammer",
            "Dual Blades",
            "Whip",
            "Hammer",
            "Darts",
            "Halberd",
            "Ring"
        ],
        "Exoskeleton": [
            ""
        ]
    }
}
KeyRequired?Description

p

Yes

Protocol: Helps other systems identify and process brc-1024 events

metaverse

Yes

Designate the metaverse to which the deployed assets belong. Not case sensitive (ROOT = Root = root).

op

Yes

Operation: Type of event (deploy)

tick

Yes

Ticker: 4-100 letter identifier of the component of the metaverse. It use ":" as the delimiter for hierarchical classes. Not case sensitive.

max

Yes

Max supply: set max supply of the component. if not specified, limited to uint256.

self-mint-wallets

No

【V2-Self Mint】 The value of the "self-mint-wallets" field is an array, with elements which are Bitcoin wallet addresses designated by the project team(metaverse owner) as self mint wallets.

self-mint-number

No

【V2-Self Mint】 The total number of mints allowed for these wallets in "self-mint-wallets" field, which must be less than or equal to "max".

elements-dup

No

It can only be set to "acceptable" or "unacceptable", indicating whether the duplication of elements is accepted. The default setting is "acceptable".

elements

Yes

The keys in this dictionary are element names, the value for each key is an array, which contains candidate values for that element. When creating an instance, which is during the "Mint" operation, one option from these candidates needs to be selected for each element. All these keys and values of the dict are case-sensitive. The validate "Mint" operation, must keeping them the same as the "Deploy" operation.

Guides

  • This operation needs to be inscribed to the metaverse owner's wallet first, then sent to the designated Activation wallet to be activated. The Activation Wallet of BRC1024 is bc1pttsy5dcc3jt6aalsn06es92vkcsjudc2lf559egvy8k27m3fw2lssng49m.

  • The Deploy inscription which hasn't been sent to Activation Wallet is invalid. The Activation Wallet is just like Burn Wallet, all inscription sent to it will be treated burnt.

  • For "elements-dup", once set the value to "unacceptable", for duplicated mint inscriptions, only the inscription with the smallest inscription number will be treated valid, all others will be considered invalid.

  • Once activated, this component under the specific metaverse will exist permanently, and any deployments of the same tick within the same metaverse will be considered invalid. However, it is still possible to deploy components with the same name in other metaverses.

  • 【V2-Self Mint】 The Metaverse Component deployment wallet, which is the Metaverse owner wallet, serve as the default value for "self-mint-wallets". This means that if the "self-mint-wallets" field is not provided and only "self-mint-number" is supplied, it implies that only the Metaverse owner wallet can mint the supply corresponding to "self-mint-number". If the "self-mint-wallets" field is provided, "self-mint-number" must also be supplied; otherwise, this component is considered invalid. If neither the "self-mint-number" nor the "self-mint-wallets" field is provided, the self-mint functionality is not activated.

Postscript

  • The elements of metaverse assets should not be limited to just this one form. In the future, the protocol will support various types such as int, float, string, and even complex construction rules.

  • The upgrade function also will be supported in the future.

Last updated