Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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)
- Host: GitHub
- URL: https://github.com/ordbase/generative-orc-721
- Owner: ordbase
- License: cc0-1.0
- Created: 2014-05-06T14:35:06.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2023-09-07T13:04:39.000Z (about 1 year ago)
- Last Synced: 2024-10-26T21:23:01.797Z (8 days ago)
- Topics: bitcoin, brc, diybirdies, diycoolcats, diypunks, generative, og, orc, orc-721, ordgen, ordinals, ordlite, pixelart, punks
- Language: Ruby
- Homepage:
- Size: 4.3 MB
- Stars: 44
- Watchers: 9
- Forks: 14
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
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 eyesin 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 eyesin 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.