Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ordbase/generative-orc-721

Documentation for the proposed Generative ORC-721 Protocol / Standard for Bitcoin & Co. (Also Known As OG, Ordgen, Ordinal Generative)
https://github.com/ordbase/generative-orc-721

bitcoin brc diybirdies diycoolcats diypunks generative og orc orc-721 ordgen ordinals ordlite pixelart punks

Last synced: 3 days ago
JSON representation

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

Awesome Lists containing this project

README

        

**NEW! [Public Ordgen / ORC-721 Mint Feed (Incl. Reference Images in 1x and 4x) »](https://orc721.github.io)**

## What's News? Updates

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

[**721 D.I.Y. Punks**](https://ordinals.com/inscription/753f663770d816f61acd35da8dd04e122eec8582e93ca36b2122f2d4ac206089i0) (24×24px) - sub 10 million club! - deploy (& spritesheet) inscribes thanks to [@ZimmerAllDay](https://twitter.com/zimmerallday)

Show / Hide

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

[**721 D.I.Y. Punks V2**](https://ordinals.com/inscription/49fc0b24a6d2be8c78b1b468b77729e3516fae223766e64dc3e68d4051c52e89i0) (24×24px)

Show / Hide

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

[**1000 D.I.Y. Ordibots**](https://ordinals.com/inscription/e1be0a2827e42ffaacde0da19006566d9efb5b920e41d29fd59b5d0a3527cfc8i0) (32×32px)

Show / Hide

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

[**999 D.I.Y. Ordibots V2**](https://ordinals.com/inscription/671293d418f7e05a503ffec6703b266ce08eb5522329774f2ac008b883a4e2a0i0) (32×32px)

Show / Hide

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

[**721 D.I.Y. Cool Cats**](https://ordinals.com/inscription/02ef2b3c240e56acd9ffad6c17e9758b5c5fd2d957fb80949f22de8c5ec6df83i0) (24×24px) - deploy (& spritesheet) inscribes thanks to [@TheInscriptor](https://twitter.com/TheInscriptor)

Show / Hide

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

[**1000 Words on Bitcoin**](https://ordinals.com/inscription/ac685db241919af1e5556bfc5a452e40efc961b074d385de750863256272a8aai0) (102×32px) by [@ZimmerAllDay](https://twitter.com/zimmerallday) -
see the [Words On Bitcoin Getting Started Guide and Documentation »](https://github.com/ZimmerAllDay/btcwords)

[**721 D.I.Y. Birdies**](https://ordinals.com/inscription/5cf5cb5cf764f6363e6485b85824909533b8d274c4a9988a9c7362e3d4e4409fi0) (24×24px) - deploy (& spritesheet) inscribes thanks to [@TheInscriptor](https://twitter.com/TheInscriptor), public domain ("do what you want") pixel art thanks to [@TheSkullCat](https://twitter.com/TheSkullCat)

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

[**100 D.I.Y. (Recursive) Apes**](https://ordinals.com/inscription/610ad953a48ce514ca71933b40228a366ef5edb8f6581ac20dca3098d618c7b2i0) (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**](https://ordinals.com/inscription/3832d5d8dc247cfa3506343acca1f4a9f1a9f914a4e6f16589e0dac4fdb67c1ci0) (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**](https://ordinals.com/inscription/b2426c302ad2807d832b994cb509000a5fa8ac9c08cce273b16400a8409b4c13i0) (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](https://twitter.com/612crypto_eth)

Show / Hide

![](diymartians/i/diymartians.png)

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

![](diymartians/i/diymartians-remove_background.png)

[**100 Orange Pixels**](https://ordinals.com/inscription/429915c362dacc2b1f7d4a5f7d929ee04e52298c35a7fe9c4e5a29580691b364i0) (24×24px) by [@ZimmerAllDay](https://twitter.com/zimmerallday) -
see the [Orange Pixels Getting Started Guide and Documentation »](https://github.com/ZimmerAllDay/orangepixels)

**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**](https://ordinals.com/inscription/09e3c57879b0a30239b088468277d009f838111d254eb22f35a9b2a31b77a5d4i0) (24×24px) - world's 1st generative with og standard text deploy & mint format; deploy (& spritesheet) inscribes thanks to [@AlteredOracle](https://twitter.com/AlteredOracle)

[**100 D.I.Y. Maxi Biz (Punks)**](https://ordinals.com/inscription/7e238c49e16368a4b089fbd6f2ca4c866d415e3801f059e54f8e1025650560e1i0) (24×24px)

Show / Hide

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

[**25 D.I.Y. (Recursive) Ordi Troops**](https://ordinals.com/inscription/24ab235103da2f2f4c6ba186e2bc56534a100395d218145af50e9b658e9d9a1fi0) (496×500px) - deploy inscribe thanks to [@ord_gen](https://twitter.com/ord_gen)

Wen [next] deploy? You are welcome to announce your ORC-721 collections
in the [ordinal punks](https://ordinalpunks.com) discord (in the #generative-orc-721 channel)
or in the [ordinal phunks](https://twitter.com/OrdinalPhunksV0) 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 »](genesis)

**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 »](https://ordbase.github.io/generative-orc-721/genesis)

---

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

Author: [Gerald Bauer](https://github.com/geraldb) ([Punk's Not Dead](https://github.com/cryptopunksnotdead), [Learn Pixel Art](https://github.com/learnpixelart), etc)

Let's deploy a new 100 d.i.y. phunk (pixel head) collection
in 8 seconds ;-) - yes, you can. Example - [Inscription No. 13418851](https://ordinals.com/inscription/09e3c57879b0a30239b088468277d009f838111d254eb22f35a9b2a31b77a5d4i0):

... 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`:

- 0 - ![](diyphunks/i/0_human.png) phunk (human) base

in standard text format:

```
og mint diyphunks 0
```

Classic JSON Format

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

![](diyphunks/i/phunk0.png) 4x
![](diyphunks/i/[email protected])

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

- 0 - ![](diyphunks/i/0_human.png) punk (human) base
- 38 - ![](diyphunks/i/38_laser-eyes.png) laser eyes

in standard text format:

```
og mint diyphunks 0 38
```

Classic JSON Format

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

![](diyphunks/i/phunk1.png) 4x
![](diyphunks/i/[email protected])

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

- 59 - ![](diyphunks/i/59_bitcoin-pattern.png) background - bitcoin pattern
- 0 - ![](diyphunks/i/0_human.png) punk (human) base
- 38 - ![](diyphunks/i/38_laser-eyes.png) laser eyes

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]
}
```

![](diyphunks/i/phunk2.png) 4x
![](diyphunks/i/[email protected])

and so on.

NEW! Try the [D.I.Y. Phunks Previewer »](https://ordbase.github.io/generative-orc-721/diyphunks)

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](https://ordinals.com/inscription/dd91c8b33dd19ccd8410e54c2099bfd50d4f777a186ee974fe4c15420c42ea0fi0):

![](diyphunks/spritesheet.png)

4x

![](diyphunks/i/[email protected])

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 - ![](diyphunks/i/59_bitcoin-pattern.png),
no. 0 - ![](diyphunks/i/0_human.png),
no. 38- ![](diyphunks/i/38_laser-eyes.png)
and the sprites / attributes
get merged / stacked / pasted-on-top-of-each-other in the order listed resulting in ![](diyphunks/i/phunk2.png).

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](diypunks/spritesheet.png) (~4kb):

![](diypunks/spritesheet.png)

4x

![](diypunks/i/[email protected])

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 »](https://ordbase.github.io/generative-orc-721/diypunks)

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 »](diypunks)

### 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):

![](no2/spritesheet.png)

4x

![](no2/[email protected])

and the deploy inscription:

```
og deploy diywiener
name: D.I.Y. Wiener
max: 100
dim: 32x32

```

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](diyordibots/spritesheet.png) (~3kb):

![](diyordibots/spritesheet.png)

4x

![](diyordibots/i/[email protected])

and the deploy inscription:

```
og deploy diyordibots
name: D.I.Y. Ordibots
max: 1000
dim: 32x32

```

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:
- background: ![](diyordibots/i/2_brown.png) 2 - brown
- accessories: ![](diyordibots/i/5_none.png) 5 - none
- body: ![](diyordibots/i/16_standard-oval.png) 16 - standard-oval
- belly: ![](diyordibots/i/23_empty.png) 23 - empty
- face: ![](diyordibots/i/9_surprised.png) 9 - surprised

```
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]
}
```

![](diyordibots/i/ordibot0.png) 4x
![](diyordibots/i/[email protected])

ordibot no. 1 specs:

- background: ![](diyordibots/i/0_blue.png) 0 - blue
- accessories: ![](diyordibots/i/4_antenna.png) 4 - antenna
- body: ![](diyordibots/i/16_standard-oval.png) 16 - standard-oval
- belly: ![](diyordibots/i/23_empty.png) 23 - empty
- face: ![](diyordibots/i/8_neutral.png) 8 - neutral

```
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]
}
```

![](diyordibots/i/ordibot1.png) 4x
![](diyordibots/i/[email protected])

and so on.

Try the [D.I.Y. Ordibots Previewer »](https://ordbase.github.io/generative-orc-721/diyordibots)

**Compare to Gen-BRC-721**

The deploy inscription ([no. 8 326 719](https://ordinals.com/content/b7205d40f3b1b1486567f0d6e53ff2812983db4c03ad7d3606812cd150c64802i0))
on May 21, 2023 by Jerry Fanelli

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

The 1000 mint inscriptions

``` json
{
"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"]]
}
```

``` json
{
"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](https://github.com/geraldb/help) page. Thanks.