GithubHelp home page GithubHelp logo

ordbase / generative-orc-721 Goto Github PK

View Code? Open in Web Editor NEW
43.0 8.0 14.0 4.41 MB

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

License: Creative Commons Zero v1.0 Universal

Ruby 100.00%
bitcoin brc generative orc ordinals pixelart punks diypunks orc-721 diycoolcats

generative-orc-721's Introduction

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.

generative-orc-721's People

Contributors

geraldb avatar jokie88 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

generative-orc-721's Issues

Rest diypunks inscription data and diypunk-v2 data

We care about the rest of the diypunks list.
Some guys mint diypunks after 721 , because he found some broken inscriptions.
We want to know range of diypunks collection
I think its fcfs for diypunks holder.

Gen BRC-721 vs ORC-721 for laymen

Hey Gerald,
Busy couple of days! Are you able to offer some points on why you feel ORC is better than the existing Gen BRC protocol that is also gaining steam? I want to be more prepared to answer that question. My understanding is that ORC is more flexible, with multiple types of data to use as source and build the images? Can you offer additional insights there?
Thank you sir!

Inscription data

Ser, this protocol is quite interesting, One question: mint inscriptions did not point to the deploy inscription, so whether the production of the collection will be difficult?

PS: Could you provide inscription data for all 10,000 punks

comments by dragonboy

moved from the discord to discuss here:

Dear geraldb,From the perspective of a newcomer, let me make a few suggestions.

  1. On the one hand, there is no limit to the total number of mints within the range, and on the other hand, only mints that do not exceed max are useful.

  2. The most important thing is that every late comer does not know the current number of mints. After all, very few people hope to obtain a "cursed" punk, which will greatly reduce their interest and thus reduce the entry of new players

  3. The changes in the version have made many people uneasy and doubt whether there will be v3 or v4 in the future. After all, a project should not have many branches before it is successful, it should have a most orthodox main line. But the information I have collected so far is that no one knows which version is better, which makes many newcomers who have seen this project uneasy.

  4. The official document does not have a perfect JSON and those specious JSON specifications, after all, most people are not dev. There are many errors in Unisat search, which can make many people doubt whether their JSON format is correct. Just like those people asking in the group.

If there is anything wrong, I hope to understand. My friend and I have been studying this ORC721 project from a completely new perspective for half an hour, and our feelings about it.

Ideas for meta 721 protocol

Thank you for your orc-721! Here are some ideas to so that it becomes the standard 721 protocol:

  • use more than one image incription as source, similar to crc-721
  • animated GIF (positioning of other images or texts)
  • don't forget the creators, so add optional parameters like "Initial Owner Address", "Price", "Payment Address", similar to brc-721
  • avoid robots and scripts to minted out collections, add "Max Per Address" and again "Initial Owner Address", "Price", "Payment Address", similar to brc-721

Other 721 protocols gains more traction, see https://dune.com/ordinalstats/bitcoin-tokens . Reason could be the above points because brc721 and crc721 are more attractive for creators. And more creators means more possibilities to mint, and that means more minters...

use html to dynamically pull in sprites in the mint inscription

this is an idea from @cbspears and I am just listing it here for the record.

instead of a 'mint' json, inscribe a compact html/javascript file that references the sprite inscription and dynamically pulls in the sprite and renders it inline.

pro: no marketplace support needed
con: external dependency on some hostname/url to get the sprite file from.

protocol is currently bottable

One issue I see w/ the protocol as it is, is that there is no way for a deployer to control who mints it.

That is nice for free-for-all collections and the free market ethos of crypto but it does limit the usecases orc-721 can support.

Example: Lets say I want to do an orc-721 collection. I spend a lot of time creating the art and I want everyone to have a fair shot at minting.

I first inscribe the sprite file
Then the deploy json with a mint max of 1000.

a scanner spots the deploy json in the mempool and decides to claim 90% of the mint.

arguably this is a problem that solves itself as it can start to be a waste of money but it may mean hyped projects could not use this protocol to launch.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.