Skip to content

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

License

Notifications You must be signed in to change notification settings

ordbase/generative-orc-721

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Sep 7, 2023
d68b2aa · Sep 7, 2023
Jun 13, 2023
Jun 18, 2023
Jun 18, 2023
Jun 18, 2023
Jun 15, 2023
Jun 20, 2023
Jul 7, 2023
Jun 8, 2023
Jun 19, 2023
Jul 7, 2023
Jun 9, 2023
Jun 19, 2023
Aug 1, 2023
Jul 7, 2023
Aug 12, 2023
Jul 11, 2023
Sep 7, 2023
Jul 7, 2023
Jul 6, 2023
Aug 12, 2023
Aug 7, 2023
Aug 6, 2023
Jul 11, 2023
Aug 7, 2023
Aug 19, 2023
Jun 27, 2023
Jul 22, 2023
Aug 7, 2023
Jun 26, 2023
Jun 16, 2023
Jun 28, 2023
May 28, 2023
Jul 18, 2023
Jun 27, 2023
Sep 3, 2023
Jun 22, 2023
Jun 11, 2023

Repository files navigation

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

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

Show / Hide

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

Show / Hide

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

Show / Hide

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

Show / Hide

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

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

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

... let's remove boring backgrounds ...

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

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
{
    "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:

  • 0 - phunk (human) base

in standard text format:

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

4x

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

  • 0 - punk (human) base
  • 38 - laser eyes

in standard text format:

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

4x

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

  • 59 - background - bitcoin pattern
  • 0 - punk (human) base
  • 38 - laser eyes

in standard text format:

og mint diyphunks 59 0 38
Classic JSON Format
{
   "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

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
{
   "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

and the deploy inscription:

og deploy diypunks
name: D.I.Y. Punks
max: 721
dim: 24x24
cf5df319bbe23fa3d012e5ee0810700c8e82aebff41164246f0d87d7b60a9903i0
Classic JSON Format
{
    "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

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
{
    "p": "orc-721",
    "op": "deploy",
    "slug": "diywiener",
    "name": "D.I.Y. Wiener",
    "max": 100,
    "dim": "32x32",
    "generative": "<spritesheet/art layers inscription id here>"
}

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

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
{
    "p": "orc-721",
    "op": "deploy",
    "slug": "diyordibots",
    "name": "D.I.Y. Ordibots",
    "max": 1000,
    "dim": "32x32",
    "generative": "<spritesheet/art layers inscription id here>"
}

and the mint inscriptions:

ordibot no. 0 specs:

  • background: 2 - brown
  • accessories: 5 - none
  • body: 16 - standard-oval
  • belly: 23 - empty
  • face: 9 - surprised
og mint diyordibots 2 5 16 23 9
Classic JSON Format
{
   "p":"orc-721",
   "op":"mint",
   "s":"diyordibots",
   "g": [2,5,16,23,9]
}

4x

ordibot no. 1 specs:

  • background: 0 - blue
  • accessories: 4 - antenna
  • body: 16 - standard-oval
  • belly: 23 - empty
  • face: 8 - neutral
og mint diyordibots 0 4 16 23 8
Classic JSON Format
{
   "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.