Project

ordgen

0.03
There's a lot of open issues
ordgen - ordinals (generative ORC-721) inscription (on bitcoin & co) helpers to generate (pixel art) images and much more; bonus - incl. the og command-line tool
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 3.23
>= 4.0, < 7

Runtime

 Project Readme

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.