ordbase / generative-orc-721

Documentation for the proposed Generative ORC-721 Protocol / Standard for Bitcoin & Co. (Also Known As OG, Ordgen, Ordinal Generative)
Creative Commons Zero v1.0 Universal
44 stars 14 forks source link
bitcoin brc diybirdies diycoolcats diypunks generative og orc orc-721 ordgen ordinals ordlite pixelart punks

NEW! Public Ordgen / ORC-721 Mint Feed (Incl. Reference Images in 1x and 4x) »

What's News? Updates

We are live! The world's first ORC-721 collections (on bitcoin) include:

721 D.I.Y. Punks (24×24px) - sub 10 million club! - deploy (& spritesheet) inscribes thanks to @ZimmerAllDay

Show / Hide ![](diypunks/i/diypunks_max721.png)

721 D.I.Y. Punks V2 (24×24px)

Show / Hide ![](diypunks-v2/i/diypunks-v2_max721.png)

1000 D.I.Y. Ordibots (32×32px)

Show / Hide ![](diyordibots/i/diyordibots_max1000.png)

999 D.I.Y. Ordibots V2 (32×32px)

Show / Hide ![](diyordibots-v2/i/diyordibots-v2_max999.png)

721 D.I.Y. Cool Cats (24×24px) - deploy (& spritesheet) inscribes thanks to @TheInscriptor

Show / Hide ![](diycoolcats/i/diycoolcats_max721.png)

1000 Words on Bitcoin (102×32px) by @ZimmerAllDay - see the Words On Bitcoin Getting Started Guide and Documentation »

721 D.I.Y. Birdies (24×24px) - deploy (& spritesheet) inscribes thanks to @TheInscriptor, public domain ("do what you want") pixel art thanks to @TheSkullCat

ORC-721 Protocol Update - Look Ma! No Spritesheet! It's "Recursive!"

100 D.I.Y. (Recursive) Apes (24×24px) - world's 1st recursive generative (re-using recursive punk .PNG inscribes in 24×24px - thank you!)

Show / Hide ![](diyapes/i/diyapes.png)

100 D.I.Y. (Recursive) Aliens (24×24px) - world's 2nd recursive generative (re-using recursive punk .PNG inscribes in 24×24px - thank you!)

Show / Hide ![](diyaliens/i/diyaliens.png)

100 D.I.Y. (Recursive) Martians - Aliens Vol. 2 (24×24px) - world's 1st recursive generative mix'n'match (re-using recursive punks, recursive noun punks, 10 boring backgrounds, 7 martians, alien happy smile 1/1, and more .PNG inscribes in 24×24px - thank you!) - deploy (& 10 boring backgrounds, 7 martians, alien happy smile 1/1, & more) inscribes thanks to @612crypto_eth

Show / Hide ![](diymartians/i/diymartians.png) ... let's remove boring backgrounds ... ![](diymartians/i/diymartians-remove_background.png)

100 Orange Pixels (24×24px) by @ZimmerAllDay - see the Orange Pixels Getting Started Guide and Documentation »

ORC-721 Protocol Update - Look Ma! No More Quotes (""")! No More Commas (,,,)! No More Arrays ([[[]]])! No More Objects ({})! No More JSON! It's Text!

100 D.I.Y. (Left-Looking) Phunks (24×24px) - world's 1st generative with og standard text deploy & mint format; deploy (& spritesheet) inscribes thanks to @AlteredOracle

100 D.I.Y. Maxi Biz (Punks) (24×24px)

Show / Hide ![](diymaxibiz/i/diymaxibiz.png)

25 D.I.Y. (Recursive) Ordi Troops (496×500px) - deploy inscribe thanks to @ord_gen

Wen [next] deploy? You are welcome to announce your ORC-721 collections in the ordinal punks discord (in the #generative-orc-721 channel) or in the ordinal phunks discord (in the #random / General channel).

D.I.Y. GENESIS PUNKS (MAX. 10 000) WEN MINT?

The idea is re(use) or "recurse on" all 133 .PNG inscriptions in the recursive punks collection - that are - surprise, suprise - pixel-perfect copies of the "originals" in the CryptoPunksData contract (Anno 2021).

Let's mint a new ordgen / ORC-721 collection (free, first-come/first-serve) - 10 000 D.I.Y. Genesis Punks - (re)using or (is it "recursing on"?) the .PNGs indexed 1 to 133 with the bonus bitcoin orange background at 0 - plus going beyond recursive punks by matching the attribute ids in the CryptoPunksData in the generative dna ("on-chain" bitcoin metadata).

... read more at the 10 000 D.I.Y. Genesis Punks Readme »

Update - Sorry for the bad news ... unfortunately the deploy inscribe is broken ... i am heart broken too ... the first line is missing in action e.g. og deploy genesis. If anyone can help out with a new inscribe, please do ... yes, you can.

PS: Try the D.I.Y. Genesis Punks (Image) Previewer »


Generative ORC-721 Protocol / Standard for Bitcoin & Co. (Also Known As OG, Ordgen, Ordinal Generative)

Author: Gerald Bauer (Punk's Not Dead, Learn Pixel Art, etc)

Let's deploy a new 100 d.i.y. phunk (pixel head) collection in 8 seconds ;-) - yes, you can. Example - Inscription No. 13418851:

... in the standard text format:

og deploy diyphunks
name: D.I.Y. Phunks
max: 100
dim: 24x24
dd91c8b33dd19ccd8410e54c2099bfd50d4f777a186ee974fe4c15420c42ea0fi0
Classic JSON Format ``` json { "p": "orc-721", "op": "deploy", "slug": "diyphunks", "name": "D.I.Y. Phunks", "max": 100, "dim": "24x24", "generative": "dd91c8b33dd19ccd8410e54c2099bfd50d4f777a186ee974fe4c15420c42ea0fi0" } ```

That's it. Ready to mint the first d.i.y. phunk with the (generative) specs - 0:

in standard text format:

og mint diyphunks 0
Classic JSON Format ``` json { "p":"orc-721", "op":"mint", "s":"diyphunks", "g":[0] } ```

4x

and the second with the (generative) specs - 0 38:

in standard text format:

og mint diyphunks 0 38
Classic JSON Format ``` json { "p":"orc-721", "op":"mint", "s":"diyphunks", "g":[0,38] } ```

4x

and the third with the (generative specs) - 59 0 38:

in standard text format:

og mint diyphunks 59 0 38
Classic JSON Format ``` json { "p":"orc-721", "op":"mint", "s":"diyphunks", "g":[59,0,38] } ```

4x

and so on.

NEW! Try the D.I.Y. Phunks Previewer »

Where's the catch? Step 0: To make it work you can (re)use existing inscribed spritesheets / art layers or inscribe your very own. Read on.

Spritesheet / Artwork Layers Inscriptions

To inscribe your spritsheets / art layers you have two format options:

1) binary images "standalone" 2) binary images packed up in a "spritesheet" - ultra-compact (less bytes, saving sats!)

NOTE: Yes, support for more formats upcoming - next stop - vector graphics (in .SVG).

Let's use the d.i.y (left-looking) phunks as an example.

Format Option 1) Binary Image - Ultra-Compact

Inscribe the spritesheet / art layers as a single binary image file (image/png).

Example - spritesheet.png (~4kb) @ Inscription No. 13412985:

4x ![](diyphunks/i/spritesheet@4x.png)

Note: To make it work all sprites or attributes MUST be of the same image dimension (e.g. 24x24) and get referenced by number (starting with 0) counting left-to-right and top-to-bottom.

Thus, for example 59 0 38 from the mint starter examples in standard text format:

og mint diyphunks 59 0 38
Classic JSON Format ``` json { "p":"orc-721", "op":"mint", "s":"diyphunks", "g":[59,0,38] } ```

references the sprites / attributes no. 59 - , no. 0 - , no. 38- and the sprites / attributes get merged / stacked / pasted-on-top-of-each-other in the order listed resulting in .

Aside - Pasted On Top Of Each Other?!

Yes, the (generative) magic is the transparent background / color! If you merge a solid / fully opaque image (let's say all black) on-top-of another image, than it gets completly overwritten - to make the (generative) magic work - use the transparent color in your sprite / art layers.

Deploy Inscriptions

Mint Inscriptions

Sample Collections

Sample No. 1 - D.I.Y. Orange-Pilled Punks (w/ Laser Eyes Optional)

Format Option 1) Binary Image - Ultra-Compact

Example - diypunks/spritesheet.png (~4kb):

4x ![](diypunks/i/spritesheet@4x.png)

and the deploy inscription:

og deploy diypunks
name: D.I.Y. Punks
max: 721
dim: 24x24
cf5df319bbe23fa3d012e5ee0810700c8e82aebff41164246f0d87d7b60a9903i0
Classic JSON Format ``` json { "p": "orc-721", "op": "deploy", "slug": "diypunks", "name": "D.I.Y. Punks", "max": 721, "dim": "24x24", "generative": "cf5df319bbe23fa3d012e5ee0810700c8e82aebff41164246f0d87d7b60a9903i0" } ```

and the mint inscriptions...

Try the D.I.Y. Punks Previewer »

To learn more or read-up on the D.I.Y. Punks OG & V2 inscribed on bitcoin (btc), see D.I.Y. Punks Read Me 'n' Frequently Asked Questions (F.A.Q.s) & Answers »

Sample No. 2 - D.I.Y. Wiener - Edmund "Mundl" Sackbauer et al (SOON!)

Format Option 1) Binary Image - Ultra-Compact

Example - no2/spritesheet.png (~??kb):

4x ![](no2/spritesheet@4x.png)

and the deploy inscription:

og deploy diywiener
name: D.I.Y. Wiener
max: 100
dim: 32x32
<spritesheet/art layers inscription id here>
Classic JSON Format ``` json { "p": "orc-721", "op": "deploy", "slug": "diywiener", "name": "D.I.Y. Wiener", "max": 100, "dim": "32x32", "generative": "" } ```

and the mint inscriptions...

Sample No. 3 - D.I.Y. Ordibots

What's different compared to Generative BRC-721 (by Jerry Fanelli)? Let's compare the Ordibots (BRC-721) and D.I.Y. Ordibots (ORC-721) inscriptions!

Format Option 1) Binary Image - Ultra-Compact

Example - diyordibots/spritesheet.png (~3kb):

4x ![](diyordibots/i/spritesheet@4x.png)

and the deploy inscription:

og deploy diyordibots
name: D.I.Y. Ordibots
max: 1000
dim: 32x32
<spritesheet/art layers inscription id here>
Classic JSON Format ``` json { "p": "orc-721", "op": "deploy", "slug": "diyordibots", "name": "D.I.Y. Ordibots", "max": 1000, "dim": "32x32", "generative": "" } ```

and the mint inscriptions:

ordibot no. 0 specs:

og mint diyordibots 2 5 16 23 9
Classic JSON Format ``` json { "p":"orc-721", "op":"mint", "s":"diyordibots", "g": [2,5,16,23,9] } ```

4x

ordibot no. 1 specs:

og mint diyordibots 0 4 16 23 8
Classic JSON Format ``` json { "p":"orc-721", "op":"mint", "s":"diyordibots", "g": [0,4,16,23,8] } ```

4x

and so on.

Try the D.I.Y. Ordibots Previewer »

Compare to Gen-BRC-721

The deploy inscription (no. 8 326 719) on May 21, 2023 by Jerry Fanelli

{
  "p": "gen-brc-721",
  "op": "deploy",
  "slug": "ordibots",
  "name": "OrdiBots",
  "supply": 1000,
  "trait_types": [
     "background",
     "accessories",
     "body",
     "belly",
     "face"
    ],
  "traits": {
       ...
    }
}

The 1000 mint inscriptions

{
   "p":"gen-brc-721",
   "op":"mint",
   "s":"ordibots",
   "t_ins":["b7205d40f3b1b1486567f0d6e53ff2812983db4c03ad7d3606812cd150c64802i0"],
   "h":"2b936881d34e7be726d6ad3f23edbdaf84ae5974e33c987505d4d70a144859d5",
   "id":"0",
   "a":[[0,"brown"],
        [0,"none"],
        [0,"standard-oval"],
        [0,"empty"],
        [0,"surprised"]]
}
{
   "p":"gen-brc-721",
   "op":"mint",
   "s":"ordibots",
   "t_ins":["b7205d40f3b1b1486567f0d6e53ff2812983db4c03ad7d3606812cd150c64802i0"],
   "h":"ad82a097c19a5d349ab99db3ad9102caf624486702d9a147f4d3003162b90222",
   "id":"1",
   "a":[[0,"blue"],
        [0,"antenna"],
        [0,"standard-oval"],
        [0,"empty"],
        [0,"neutral"]]
}

and so on.

Design

What's different compared to Generative BRC-721 (by Jerry Fanelli)?

Three main ideas:

1) Make it (even) easier 2) Use less bytes (and, thus, save on inscription fees) 3) Many more options (and less restrictions / requirements)

History / Timeline

Birth of Ordinals

Birth of BRC-20 Tokens

May 23rd, 2023 - Birth of Generative BRC-721

May 27th, 2023 - Hearing first and reading-up on the Generative BRC-721 docu / write-up by Jerry Fanelli and the 1000 Ordibots collection

May 28th, 2023 - Birthday!

License

The Generative ORC-721 protcol, sample scripts & collections are dedicated to the public domain. Use it as you please with no restrictions whatsoever.

Questions? Comments?

Post them over at the Help & Support page. Thanks.