âŦ›MODULES

Drafts of JSON schemes. Final versions will be inscribed onchain.

PLOT:SUBPLOT

The $PLOT token and it's direct association with .PLOT namespace is a differentiator. Bitplot is the first project that has a token/namespace pair. When $PLOT tokens are attached to a .PLOT, branded sub-supplies of SUBPLOT tokens are created. The default way to refer to SUBPLOT tokens is simply as $PLOT:BLOCK#. For example block 210000 $PLOT tokens are expressed as:

$PLOT:210000

The PLOT:SUBPLOT protocol module is used to add branding info to the token such as the token name, description, max supply and a URL. Here is an example using the rebrand op for $PLOT tokens added to block 210000.plot. The branded token is called $LIS which is pulled from the plot name BITROPOLIS.

{
    "p":"plot:subplot",
    "op":"rebrand",
    "block":"210000",
    "layer":".plot",
    "plot_name":"Bitropolis"
    "ticker":"lis",
    "max_supply":"543977.721",
    "decimal_precision":"18",
    "url":"https://token.bitropolis.city",
    "description":"The Bitropolis City currency",
    "logo":"..."
    ...
} 

Keep in mind that $PLOT is an 18 decimal token. This should be considered for supply conversion and if the branded SUBPLOT maps to a whole token or the atomic unit or anything in between.

PLOT:PAGE

A plot page encapsulates everything associated with a plot. This protocol can be considered core to Bitplot and involves a more advanced system. A dedicated doc describes the details of plot pages (under development).

PLOT:CONTENT

Besides messages and digital signs, general content needs to be supported as well. Each content inscription can be assembled and presented on a page or multiple pages and galleries etc.

{
    "p":"plot:content",
    "op":"publish",
    "owner_address":"...",
    "sig":"...",
    "namespace":".plot",
    "content": [
    ...
} 

PLOT:MESSAGE

Here are some basic proposed JSON K/Vs useful for a messaging protocol , such as attaching other inscription IDs to share content already inscribed on Bitcoin. Also check out .bitter.

{
    "p":"plot:message",
    "pid":"12345...6789",
    "op":"reply",
    "inReplyTo":"be2e5ce35b93f6a...",
    "handle":"plotoshi.bitter",
    "title":"New Ordinals collections",
    "content":"Love your new ord incsriptions!",
    "attachments": [
		    "df9ce4a0f820ff4c73417a18eaef26688fbe2e5ce35b93f6a240a1be6833a5ffi0",
		    "43abac53381dee005ee2eb81af085853e91603d3b5dd5d1fe9e98af95d74c590i0"
                    ],
    "tags": [
		    "art",
		    "bitcoinbears"
            ],
    ...
}   

PLOT:SIGN

Digital signage will be a thing. Whether a billboard or similar display in a virtual world or on a regular web page or even something pulled into a Discord channel, a tweet a nostr post etc. A sign is meant to be an eye-catching ad or announcement etc.

{
    "p":"plot:sign",
    "op":"display",
    "duration_blocks":"100",
    "start_block":"797203",
    "end_block":"797303",
    ...
}   

PLOT:LOT

Plots can have lots, smaller parcel units. These lots need their own IDs. For example, the ID could be constructed as BLIS outlines:

A "large" lot named "Bitropolis District420" in the .plot layer of the Bitverse:

781gQWu7U_127_large_Bitropolis-District-420.lot.plot

A "small" lot name "Block Miners Museum" in the .bitmap layer of the Bitverse:

gQWu7U_187_small_Block-Miners-Museum.lot.bitmap

{
    "p":"plot:lot",
    "op":"register",
    "block":"210000",
    "id":"781gQWu7U_127_large_Bitropolis-District-420.lot.plot",
    ...
}   

PLOT:SPOT

A spot is a precise location using block data where some new data/content is attached to. Interfaces can measure the location and place the spot content at the nearest or assigned container element in the virtual world environment. Payments for placement of data/content attached to a spot on a container, such as a digital billboard or building wall ad space etc, is applicable like most aspects of the block ownership economy.

{
    "p":"plot:spot",
    "op":"put",
    "block":"210000",
    "lot":"781gQWu7U_127_large_Bitropolis-District-420.lot.plot",
    "type":"tx-output-index",
    "location":"1234...9856:7", //output_address:output_index_number
    "duration_blocks":"100",
    "start_block":"797203",
    "end_block":"797303",
    "currency":"$plot",
    "payment_txid":"...",
    "content": [
    ...
}   

PLOT:BDNA

After you claim and own a block as a .plot (or .bitmap), it makes sense to consolidate the block's data in an explicit inscription associated with the .plot and the Bitcoin address that holds it (and/or a signature). This allows for less dependency on offchain APIs to get this data. A block's "DNA" can use another simple plot protocol such as:

{
    "p":"plot:bdna",
    "op":"write",
    "block_height":"210000",
    "namespace":".plot",
    "owner_address":"...",
    "sig":"...",
    "data": [
    ...
} 

PLOT:MINE

There may be historical digital artifacts buried in a block. If you own a .plot block and there exists some ancient etchings, you can "mine" them and add to your asset inventory along with loot. Maybe you will display the artifact in a virtual museum, license the content or sell it at a marketplace.

{
    "p":"plot:mine",
    "op":"extract",
    "owner_address":"...",
    "sig":"...",
    "artifact_data": [
    ...
} 

PLOT:NAME

I am sure many will want to name their plots. Just like domain names are used on top of IP addresses, plot names will be on top of block numbers (height). How to efficiently do this? For now, a simple JSON will suffice. However, a PLOT:INFO is also proposed where a name can be included.

{
    "p":"plot:name",
    "op":"register",
    "block_number":"210000",
    "namespace":".plot",
    "name":"BITROPOLIS",
    "owner_address":"...",
    "sig":"...",
    ...
} 

Referencing a plot name should use this convention:

BITROPOLIS:210000.PLOT

You can also just inscribe the Name using this format as long as it is inscribed at same address as the related .plot block claim.

PLOT:INFO

A more thorough method to associate information with a .plot is done by using PLOT:INFO. You can include a plot name (registration) in this method as well as description, logo, urls etc.

{
    "p":"plot:info",
    "op":"update",
    "block_number":"210000",
    "namespace":".plot",
    "name":"BITROPOLIS",
    "description":"Bitropolis City located at 210000.PLOT is the epicenter of Plotopia",
    "website":"https://bitropolis.city",
    "owner_address":"...",
    "sig":"...",
    ...
}

PLOT:LOOT

TBD...

{
    "p":"plot:loot",
    "op":"create/drop/take/buy/sell",
    "block_number":"210000",
    "namespace":".plot",
    "name":"seed",
    "class":"",
    "description":"This seed grows...",
    "website":"https://plot.game/loot/seed",
    "owner_address":"...",
    "sig":"...",
    ...
}

PLOT:PORTAL

See Portal Protocol docs.

Last updated