├── .gitignore ├── LICENSE.md ├── README.md ├── col_build.rb ├── col_query.rb ├── collections.md ├── docs ├── bitcoin.pdf ├── mimblewimble.pdf ├── snake.html └── tetris.html ├── i ├── export-preview-ltc.png ├── export-preview.png ├── pepelangelo1.jpg ├── pepelangelo10.jpg ├── pepelangelo11.jpg ├── pepelangelo12.jpg ├── pepelangelo13.jpg ├── pepelangelo14.jpg ├── pepelangelo15.jpg ├── pepelangelo16.jpg ├── pepelangelo17.jpg ├── pepelangelo18.jpg ├── pepelangelo19.jpg ├── pepelangelo2.jpg ├── pepelangelo20.jpg ├── pepelangelo21.jpg ├── pepelangelo22.jpg ├── pepelangelo23.jpg ├── pepelangelo24.jpg ├── pepelangelo25.jpg ├── pepelangelo26.jpg ├── pepelangelo27.jpg ├── pepelangelo28.jpg ├── pepelangelo29.jpg ├── pepelangelo3.jpg ├── pepelangelo30.jpg ├── pepelangelo31.jpg ├── pepelangelo32.jpg ├── pepelangelo33.jpg ├── pepelangelo34.jpg ├── pepelangelo35.jpg ├── pepelangelo36.jpg ├── pepelangelo37.jpg ├── pepelangelo38.jpg ├── pepelangelo39.jpg ├── pepelangelo4.jpg ├── pepelangelo40.jpg ├── pepelangelo41.jpg ├── pepelangelo42.jpg ├── pepelangelo43.jpg ├── pepelangelo44.jpg ├── pepelangelo5.jpg ├── pepelangelo6.jpg ├── pepelangelo7.jpg ├── pepelangelo8.jpg ├── pepelangelo9.jpg ├── punk1.png ├── punk10.png ├── punk100.png ├── punk11.png ├── punk12.png ├── punk13.png ├── punk14.png ├── punk15.png ├── punk16.png ├── punk17.png ├── punk18.png ├── punk19.png ├── punk2.png ├── punk20.png ├── punk21.png ├── punk22.png ├── punk23.png ├── punk24.png ├── punk25.png ├── punk26.png ├── punk27.png ├── punk28.png ├── punk29.png ├── punk3.png ├── punk30.png ├── punk31.png ├── punk32.png ├── punk33.png ├── punk34.png ├── punk35.png ├── punk36.png ├── punk37.png ├── punk38.png ├── punk39.png ├── punk4.png ├── punk40.png ├── punk41.png ├── punk42.png ├── punk43.png ├── punk44.png ├── punk45.png ├── punk46.png ├── punk47.png ├── punk48.png ├── punk49.png ├── punk5.png ├── punk50.png ├── punk51.png ├── punk52.png ├── punk53.png ├── punk54.png ├── punk55.png ├── punk56.png ├── punk57.png ├── punk58.png ├── punk59.png ├── punk6.png ├── punk60.png ├── punk61.png ├── punk62.png ├── punk63.png ├── punk64.png ├── punk65.png ├── punk66.png ├── punk67.png ├── punk68.png ├── punk69.png ├── punk7.png ├── punk70.png ├── punk71.png ├── punk72.png ├── punk73.png ├── punk74.png ├── punk75.png ├── punk76.png ├── punk77.png ├── punk78.png ├── punk79.png ├── punk8.png ├── punk80.png ├── punk81.png ├── punk82.png ├── punk83.png ├── punk84.png ├── punk85.png ├── punk86.png ├── punk87.png ├── punk88.png ├── punk89.png ├── punk9.png ├── punk90.png ├── punk91.png ├── punk92.png ├── punk93.png ├── punk94.png ├── punk95.png ├── punk96.png ├── punk97.png ├── punk98.png ├── punk99.png ├── punks.png ├── punks@4x.png ├── shroom1.png ├── shroom10.png ├── shroom100.png ├── shroom101.png ├── shroom102.png ├── shroom103.png ├── shroom104.png ├── shroom105.png ├── shroom106.png ├── shroom107.png ├── shroom108.png ├── shroom109.png ├── shroom11.png ├── shroom110.png ├── shroom111.png ├── shroom112.png ├── shroom113.png ├── shroom114.png ├── shroom115.png ├── shroom116.png ├── shroom117.png ├── shroom118.png ├── shroom119.png ├── shroom12.png ├── shroom120.png ├── shroom121.png ├── shroom122.png ├── shroom123.png ├── shroom124.png ├── shroom125.png ├── shroom126.png ├── shroom127.png ├── shroom128.png ├── shroom129.png ├── shroom13.png ├── shroom130.png ├── shroom131.png ├── shroom132.png ├── shroom133.png ├── shroom134.png ├── shroom135.png ├── shroom136.png ├── shroom137.png ├── shroom138.png ├── shroom139.png ├── shroom14.png ├── shroom140.png ├── shroom141.png ├── shroom142.png ├── shroom143.png ├── shroom144.png ├── shroom145.png ├── shroom146.png ├── shroom147.png ├── shroom148.png ├── shroom149.png ├── shroom15.png ├── shroom150.png ├── shroom151.png ├── shroom152.png ├── shroom153.png ├── shroom154.png ├── shroom155.png ├── shroom156.png ├── shroom157.png ├── shroom158.png ├── shroom159.png ├── shroom16.png ├── shroom160.png ├── shroom161.png ├── shroom162.png ├── shroom163.png ├── shroom164.png ├── shroom165.png ├── shroom166.png ├── shroom167.png ├── shroom168.png ├── shroom169.png ├── shroom17.png ├── shroom170.png ├── shroom171.png ├── shroom172.png ├── shroom173.png ├── shroom174.png ├── shroom175.png ├── shroom176.png ├── shroom177.png ├── shroom178.png ├── shroom179.png ├── shroom18.png ├── shroom180.png ├── shroom181.png ├── shroom182.png ├── shroom183.png ├── shroom184.png ├── shroom185.png ├── shroom186.png ├── shroom187.png ├── shroom188.png ├── shroom189.png ├── shroom19.png ├── shroom190.png ├── shroom191.png ├── shroom192.png ├── shroom193.png ├── shroom194.png ├── shroom195.png ├── shroom196.png ├── shroom197.png ├── shroom198.png ├── shroom199.png ├── shroom2.png ├── shroom20.png ├── shroom200.png ├── shroom201.png ├── shroom202.png ├── shroom203.png ├── shroom204.png ├── shroom205.png ├── shroom206.png ├── shroom207.png ├── shroom208.png ├── shroom209.png ├── shroom21.png ├── shroom210.png ├── shroom22.png ├── shroom23.png ├── shroom24.png ├── shroom25.png ├── shroom26.png ├── shroom27.png ├── shroom28.png ├── shroom29.png ├── shroom3.png ├── shroom30.png ├── shroom31.png ├── shroom32.png ├── shroom33.png ├── shroom34.png ├── shroom35.png ├── shroom36.png ├── shroom37.png ├── shroom38.png ├── shroom39.png ├── shroom4.png ├── shroom40.png ├── shroom41.png ├── shroom42.png ├── shroom43.png ├── shroom44.png ├── shroom45.png ├── shroom46.png ├── shroom47.png ├── shroom48.png ├── shroom49.png ├── shroom5.png ├── shroom50.png ├── shroom51.png ├── shroom52.png ├── shroom53.png ├── shroom54.png ├── shroom55.png ├── shroom56.png ├── shroom57.png ├── shroom58.png ├── shroom59.png ├── shroom6.png ├── shroom60.png ├── shroom61.png ├── shroom62.png ├── shroom63.png ├── shroom64.png ├── shroom65.png ├── shroom66.png ├── shroom67.png ├── shroom68.png ├── shroom69.png ├── shroom7.png ├── shroom70.png ├── shroom71.png ├── shroom72.png ├── shroom73.png ├── shroom74.png ├── shroom75.png ├── shroom76.png ├── shroom77.png ├── shroom78.png ├── shroom79.png ├── shroom8.png ├── shroom80.png ├── shroom81.png ├── shroom82.png ├── shroom83.png ├── shroom84.png ├── shroom85.png ├── shroom86.png ├── shroom87.png ├── shroom88.png ├── shroom89.png ├── shroom9.png ├── shroom90.png ├── shroom91.png ├── shroom92.png ├── shroom93.png ├── shroom94.png ├── shroom95.png ├── shroom96.png ├── shroom97.png ├── shroom98.png └── shroom99.png ├── ltc_sub1k.md ├── ltc_sub1k_build.rb ├── ltc_sub1k_export.rb ├── ltc_sub1k_pepelangelos.rb ├── ltc_sub1k_punks.rb ├── ltc_sub1k_query.rb ├── meta ├── diypunks_inscriptions.json ├── ordinalpunks.json ├── shrooms.csv ├── shrooms_inscriptions.csv ├── sub1k_inscriptions.csv └── sub1k_inscriptions.ltc.csv ├── sandbox ├── prepare_btc_sub1k.rb └── prepare_ltc_sub1k.rb ├── sub1k.md ├── sub1k.txt ├── sub1k_build.rb ├── sub1k_debug.rb ├── sub1k_export.rb ├── sub1k_games.rb ├── sub1k_more.rb ├── sub1k_query.rb ├── sub1k_shrooms.rb ├── sub1k_sql.rb └── sub1k_text.rb /.gitignore: -------------------------------------------------------------------------------- 1 | ############# 2 | # ignore all tmp directories 3 | 4 | tmp/ 5 | tmp2/ 6 | tmp3/ 7 | tmp4/ 8 | tmp5/ 9 | 10 | 11 | ############# 12 | # ignore all (sqlite) dbs for now - why? why not? 13 | *.db 14 | *.db-shm 15 | *.db-wal 16 | 17 | 18 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | CC0 1.0 Universal 2 | 3 | Statement of Purpose 4 | 5 | The laws of most jurisdictions throughout the world automatically confer 6 | exclusive Copyright and Related Rights (defined below) upon the creator and 7 | subsequent owner(s) (each and all, an "owner") of an original work of 8 | authorship and/or a database (each, a "Work"). 9 | 10 | Certain owners wish to permanently relinquish those rights to a Work for the 11 | purpose of contributing to a commons of creative, cultural and scientific 12 | works ("Commons") that the public can reliably and without fear of later 13 | claims of infringement build upon, modify, incorporate in other works, reuse 14 | and redistribute as freely as possible in any form whatsoever and for any 15 | purposes, including without limitation commercial purposes. These owners may 16 | contribute to the Commons to promote the ideal of a free culture and the 17 | further production of creative, cultural and scientific works, or to gain 18 | reputation or greater distribution for their Work in part through the use and 19 | efforts of others. 20 | 21 | For these and/or other purposes and motivations, and without any expectation 22 | of additional consideration or compensation, the person associating CC0 with a 23 | Work (the "Affirmer"), to the extent that he or she is an owner of Copyright 24 | and Related Rights in the Work, voluntarily elects to apply CC0 to the Work 25 | and publicly distribute the Work under its terms, with knowledge of his or her 26 | Copyright and Related Rights in the Work and the meaning and intended legal 27 | effect of CC0 on those rights. 28 | 29 | 1. Copyright and Related Rights. A Work made available under CC0 may be 30 | protected by copyright and related or neighboring rights ("Copyright and 31 | Related Rights"). Copyright and Related Rights include, but are not limited 32 | to, the following: 33 | 34 | i. the right to reproduce, adapt, distribute, perform, display, communicate, 35 | and translate a Work; 36 | 37 | ii. moral rights retained by the original author(s) and/or performer(s); 38 | 39 | iii. publicity and privacy rights pertaining to a person's image or likeness 40 | depicted in a Work; 41 | 42 | iv. rights protecting against unfair competition in regards to a Work, 43 | subject to the limitations in paragraph 4(a), below; 44 | 45 | v. rights protecting the extraction, dissemination, use and reuse of data in 46 | a Work; 47 | 48 | vi. database rights (such as those arising under Directive 96/9/EC of the 49 | European Parliament and of the Council of 11 March 1996 on the legal 50 | protection of databases, and under any national implementation thereof, 51 | including any amended or successor version of such directive); and 52 | 53 | vii. other similar, equivalent or corresponding rights throughout the world 54 | based on applicable law or treaty, and any national implementations thereof. 55 | 56 | 2. Waiver. To the greatest extent permitted by, but not in contravention of, 57 | applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and 58 | unconditionally waives, abandons, and surrenders all of Affirmer's Copyright 59 | and Related Rights and associated claims and causes of action, whether now 60 | known or unknown (including existing as well as future claims and causes of 61 | action), in the Work (i) in all territories worldwide, (ii) for the maximum 62 | duration provided by applicable law or treaty (including future time 63 | extensions), (iii) in any current or future medium and for any number of 64 | copies, and (iv) for any purpose whatsoever, including without limitation 65 | commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes 66 | the Waiver for the benefit of each member of the public at large and to the 67 | detriment of Affirmer's heirs and successors, fully intending that such Waiver 68 | shall not be subject to revocation, rescission, cancellation, termination, or 69 | any other legal or equitable action to disrupt the quiet enjoyment of the Work 70 | by the public as contemplated by Affirmer's express Statement of Purpose. 71 | 72 | 3. Public License Fallback. Should any part of the Waiver for any reason be 73 | judged legally invalid or ineffective under applicable law, then the Waiver 74 | shall be preserved to the maximum extent permitted taking into account 75 | Affirmer's express Statement of Purpose. In addition, to the extent the Waiver 76 | is so judged Affirmer hereby grants to each affected person a royalty-free, 77 | non transferable, non sublicensable, non exclusive, irrevocable and 78 | unconditional license to exercise Affirmer's Copyright and Related Rights in 79 | the Work (i) in all territories worldwide, (ii) for the maximum duration 80 | provided by applicable law or treaty (including future time extensions), (iii) 81 | in any current or future medium and for any number of copies, and (iv) for any 82 | purpose whatsoever, including without limitation commercial, advertising or 83 | promotional purposes (the "License"). The License shall be deemed effective as 84 | of the date CC0 was applied by Affirmer to the Work. Should any part of the 85 | License for any reason be judged legally invalid or ineffective under 86 | applicable law, such partial invalidity or ineffectiveness shall not 87 | invalidate the remainder of the License, and in such case Affirmer hereby 88 | affirms that he or she will not (i) exercise any of his or her remaining 89 | Copyright and Related Rights in the Work or (ii) assert any associated claims 90 | and causes of action with respect to the Work, in either case contrary to 91 | Affirmer's express Statement of Purpose. 92 | 93 | 4. Limitations and Disclaimers. 94 | 95 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 96 | surrendered, licensed or otherwise affected by this document. 97 | 98 | b. Affirmer offers the Work as-is and makes no representations or warranties 99 | of any kind concerning the Work, express, implied, statutory or otherwise, 100 | including without limitation warranties of title, merchantability, fitness 101 | for a particular purpose, non infringement, or the absence of latent or 102 | other defects, accuracy, or the present or absence of errors, whether or not 103 | discoverable, all to the greatest extent permissible under applicable law. 104 | 105 | c. Affirmer disclaims responsibility for clearing rights of other persons 106 | that may apply to the Work or any use thereof, including without limitation 107 | any person's Copyright and Related Rights in the Work. Further, Affirmer 108 | disclaims responsibility for obtaining any necessary consents, permissions 109 | or other rights required for any use of the Work. 110 | 111 | d. Affirmer understands and acknowledges that Creative Commons is not a 112 | party to this document and has no duty or obligation with respect to this 113 | CC0 or use of the Work. 114 | 115 | For more information, please see 116 | 117 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Programming (Bitcoin) Ordinals - Step-by-Step Book / Guide 2 | 3 | by [Gerald Bauer](https://github.com/geraldb), et al 4 | 5 | 6 | 7 | - [Sub 1k - Inside The First Thousand Ordinal Inscriptions](sub1k.md) 8 | - [Collections, Collections, Collections - Inside Ordinal Punks, Bitcoin Shrooms, D.I.Y. Punks & More](collections.md) 9 | 10 | 11 | 12 | To be continued... 13 | 14 | 15 | 16 | ## Bonus - Programming (Litecoin) Ordinals 17 | 18 | - [Sub 1k - Inside The First Thousand Ordinal (Litecoin) Inscriptions](ltc_sub1k.md) 19 | 20 | 21 | ## Questions? Comments? 22 | 23 | Join us in the [Ordgen / ORC-721 discord (chat server)](https://discord.gg/dDhvHKjm2t). Yes you can. 24 | Your questions and commetary welcome. 25 | 26 | 27 | Or post them over at the [Help & Support](https://github.com/geraldb/help) page. Thanks. 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /col_build.rb: -------------------------------------------------------------------------------- 1 | ##### 2 | # build ord.db (sqlite database with sample collection inscriptions) 3 | 4 | $LOAD_PATH.unshift( "../ordinals/lib" ) 5 | $LOAD_PATH.unshift( "../ordlite/lib" ) 6 | 7 | 8 | require 'ordlite' 9 | 10 | 11 | 12 | OrdDb.open( './ord.db' ) 13 | 14 | 15 | puts 16 | puts " #{Inscribe.count} inscribe(s)" 17 | puts " #{Blob.count} blob(s)" 18 | puts " #{Collection.count} collection(s)" 19 | #=> 0 inscribe(s) 20 | #=> 0 blob(s) 21 | #=> 0 collection(s) 22 | 23 | 24 | # sample 1 25 | OrdDb.import_collection( "./meta/ordinalpunks.json" ) 26 | 27 | # sample 2 28 | OrdDb.import_collection_csv( "./meta/shrooms_inscriptions.csv", 29 | name: 'Bitcoin Shrooms' ) 30 | 31 | # sample 3 32 | OrdDb.import_collection_inscriptions( "./meta/diypunks_inscriptions.json", 33 | name: 'D.I.Y. Punks' ) 34 | 35 | 36 | puts 37 | puts " #{Inscribe.count} inscribe(s)" 38 | puts " #{Blob.count} blob(s)" 39 | puts " #{Collection.count} collection(s)" 40 | 41 | 42 | puts "bye" -------------------------------------------------------------------------------- /col_query.rb: -------------------------------------------------------------------------------- 1 | ##### 2 | # query ordsub1k.db (sqlite database with first thousand ordinal inscriptions) 3 | 4 | $LOAD_PATH.unshift( "../ordlite/lib" ) 5 | require 'ordlite' 6 | 7 | 8 | 9 | 10 | OrdDb.open( './ord.db' ) 11 | 12 | puts 13 | puts " #{Inscribe.count} inscribe(s)" 14 | puts " #{Blob.count} blob(s)" 15 | puts " #{Collection.count} collection(s)" 16 | 17 | 18 | ####################### 19 | # sample 1 20 | col = Collection.find_by( name: 'Ordinal Punks' ) 21 | 22 | inscribes = col.inscribes 23 | puts " #{inscribes.size} inscribe(s)" 24 | #=> 100 inscribe(s) 25 | 26 | inscribes.counts_by_content_type 27 | 28 | max = inscribes.maximum( 'num' ) 29 | min = inscribes.minimum( 'num' ) 30 | 31 | puts " range no. #{min} to no. #{max}" 32 | #=> range no. 407 to no. 642 33 | 34 | pp inscribes.counts_by_day 35 | pp inscribes.counts_by_hour 36 | 37 | pp inscribes.counts_by_block 38 | pp inscribes.counts_by_block_with_timestamp 39 | 40 | 41 | ############################# 42 | # sample 2 43 | 44 | col = Collection.find_by( name: 'Bitcoin Shrooms' ) 45 | 46 | inscribes = col.inscribes 47 | puts " #{inscribes.size} inscribe(s)" 48 | #=> 210 inscribe(s) 49 | 50 | pp inscribes.counts_by_content_type 51 | 52 | max = inscribes.maximum( 'num' ) 53 | min = inscribes.minimum( 'num' ) 54 | 55 | puts " range no. #{min} to no. #{max}" 56 | #=> range no. 675 to no. 1075 57 | 58 | pp inscribes.counts_by_day 59 | pp inscribes.counts_by_hour 60 | 61 | pp inscribes.counts_by_block 62 | pp inscribes.counts_by_block_with_timestamp 63 | 64 | 65 | ############################## 66 | # sample 3 67 | 68 | col = Collection.find_by( name: 'D.I.Y. Punks' ) 69 | 70 | inscribes = col.inscribes 71 | puts " #{inscribes.size} inscribe(s)" 72 | #=> 721 inscribe(s) 73 | 74 | pp inscribes.counts_by_content_type 75 | 76 | 77 | max = inscribes.maximum( 'num' ) 78 | min = inscribes.minimum( 'num' ) 79 | 80 | puts " range no. #{min} to no. #{max}" 81 | #=> range no. 9959200 to no. 10286852 82 | 83 | pp inscribes.counts_by_day 84 | pp inscribes.counts_by_hour 85 | 86 | pp inscribes.counts_by_block 87 | pp inscribes.counts_by_block_with_timestamp 88 | 89 | 90 | puts "bye" -------------------------------------------------------------------------------- /collections.md: -------------------------------------------------------------------------------- 1 | 2 | [« Programming (Bitcoin) Ordinals - Step-by-Step Book / Guide](./) 3 | 4 | 5 | # Collections, Collections, Collections - Inside Ordinal Punks, Bitcoin Shrooms, D.I.Y. Punks & More 6 | 7 | 8 | Let's explore ordinal inscriptions 9 | from a different angle. Let's try classic (or yes, generative) collections. 10 | 11 | 12 | ## Collection №1 - 100 Ordinal Punks 13 | 14 | 15 | New to Ordinal Punks? For some background see [**Awesome 100 Ordinal Punks (Anno 2023) Notes - 24×24 Pixel Art on the (Bitcoin) Blockchain »**](https://github.com/ordinalpunks/awesome-ordinalpunks) 16 | 17 | 18 | Let's start from zero / scratch with a new database (e.g. `ord.db`) 19 | and let's import all inscriptions. How? 20 | 21 | Yes, ordinal punks has an official meta datafile (in .json) 22 | inscribed at [№592145](https://ordinals.com/inscription/a64027dabba3c5acf83068028edf4e938464ff3c6b279f0415f5c6573cf03207i0). 23 | 24 | 25 | Let's use a "right-click and save as" 26 | local copy (e.g. [ordinalpunks.json](meta/ordinalpunks.json)) 27 | to import all inscriptions - metadata and content blobs - 28 | and bonus all collection metadata (e.g. description, max (limit/supply), item names, etc.). 29 | 30 | ```ruby 31 | require 'ordlite' 32 | 33 | 34 | OrdDb.open( './ord.db' ) 35 | 36 | 37 | puts 38 | puts " #{Inscribe.count} inscribe(s)" 39 | puts " #{Blob.count} blob(s)" 40 | puts " #{Collection.count} collection(s)" 41 | #=> 0 inscribe(s) 42 | #=> 0 blob(s) 43 | #=> 0 collection(s) 44 | 45 | OrdDb.import_collection( "./meta/ordinalpunks.json" ) 46 | 47 | puts 48 | puts " #{Inscribe.count} inscribe(s)" 49 | puts " #{Blob.count} blob(s)" 50 | puts " #{Collection.count} collection(s)" 51 | #=> 100 inscribe(s) 52 | #=> 100 blob(s) 53 | #=> 1 collection(s) 54 | ``` 55 | 56 | Yes, that's it. 57 | Thanks to `import_collection` you only need to stand back ten meters 58 | and wait for some minutes to get your database updated. 59 | 60 | 61 | Now what? 62 | Let's try some count stat(istics) queries. 63 | 64 | ``` ruby 65 | col = Collection.find_by( name: 'Ordinal Punks' ) 66 | 67 | inscribes = col.inscribes 68 | puts " #{inscribes.size} inscribe(s)" 69 | #=> 100 inscribe(s) 70 | ``` 71 | 72 | Let's query for content types (of inscriptions): 73 | 74 | ``` ruby 75 | pp inscribes.counts_by_content_type 76 | ``` 77 | 78 | resulting in: 79 | 80 | ``` 81 | {"image/png" => 100} 82 | ``` 83 | 84 | Let's query for min and max inscription numbers / no.: 85 | 86 | ``` ruby 87 | max = inscribes.maximum( 'num' ) 88 | min = inscribes.minimum( 'num' ) 89 | 90 | puts " range no. #{min} to no. #{max}" 91 | #=> range no. 407 to no. 642 92 | ``` 93 | 94 | Let's query for inscriptions counts grouped by date / day: 95 | 96 | ``` ruby 97 | pp inscribes.counts_by_day 98 | ``` 99 | 100 | resulting in: 101 | 102 | ``` 103 | {"2023-01-31" => 27, 104 | "2023-02-01" => 73} 105 | ``` 106 | 107 | or by hour: 108 | 109 | ``` ruby 110 | pp inscribes.counts_by_hour 111 | ``` 112 | 113 | resulting in: 114 | 115 | ``` 116 | {"2023-01-31 19h"=>1, 117 | "2023-01-31 20h"=>2, 118 | "2023-01-31 21h"=>12, 119 | "2023-01-31 22h"=>1, 120 | "2023-01-31 23h"=>11, 121 | "2023-02-01 01h"=>3, 122 | "2023-02-01 02h"=>7, 123 | "2023-02-01 03h"=>7, 124 | "2023-02-01 04h"=>5, 125 | "2023-02-01 05h"=>4, 126 | "2023-02-01 10h"=>1, 127 | "2023-02-01 14h"=>1, 128 | "2023-02-01 15h"=>5, 129 | "2023-02-01 16h"=>12, 130 | "2023-02-01 17h"=>13, 131 | "2023-02-01 18h"=>10, 132 | "2023-02-01 19h"=>5} 133 | ``` 134 | 135 | or by block (height) with or without timestamp: 136 | 137 | ``` ruby 138 | pp inscribes.counts_by_block 139 | pp inscribes.counts_by_block_with_timestamp 140 | ``` 141 | 142 | resulting in: 143 | 144 | ``` 145 | {774489=>1, 146 | 774494=>1, 147 | 774496=>1, 148 | 774497=>6, 149 | 774500=>3, 150 | 774502=>3, 151 | 774503=>1, 152 | 774506=>5, 153 | 774507=>1, 154 | 774509=>5, 155 | 774515=>1, 156 | 774518=>1, 157 | 774519=>1, 158 | 774521=>1, 159 | 774523=>1, 160 | 774524=>5, 161 | 774527=>2, 162 | 774531=>5, 163 | 774534=>1, 164 | 774536=>2, 165 | 774537=>2, 166 | 774541=>4, 167 | 774567=>1, 168 | 774587=>1, 169 | 774595=>5, 170 | 774598=>5, 171 | 774599=>4, 172 | 774600=>3, 173 | 774604=>2, 174 | 774605=>3, 175 | 774606=>4, 176 | 774607=>4, 177 | 774609=>3, 178 | 774611=>3, 179 | 774612=>3, 180 | 774614=>1, 181 | 774615=>2, 182 | 774617=>2, 183 | 774619=>1} 184 | 185 | {"774489 @ 2023-01-31 19:34:47"=>1, 186 | "774494 @ 2023-01-31 20:23:09"=>1, 187 | "774496 @ 2023-01-31 20:42:21"=>1, 188 | "774497 @ 2023-01-31 21:08:45"=>6, 189 | "774500 @ 2023-01-31 21:33:58"=>3, 190 | "774502 @ 2023-01-31 21:58:16"=>3, 191 | "774503 @ 2023-01-31 22:24:06"=>1, 192 | "774506 @ 2023-01-31 23:04:21"=>5, 193 | "774507 @ 2023-01-31 23:24:36"=>1, 194 | "774509 @ 2023-01-31 23:40:19"=>5, 195 | "774515 @ 2023-02-01 01:15:25"=>1, 196 | "774518 @ 2023-02-01 01:36:30"=>1, 197 | "774519 @ 2023-02-01 01:42:29"=>1, 198 | "774521 @ 2023-02-01 02:01:50"=>1, 199 | "774523 @ 2023-02-01 02:17:58"=>1, 200 | "774524 @ 2023-02-01 02:49:29"=>5, 201 | "774527 @ 2023-02-01 03:30:11"=>2, 202 | "774531 @ 2023-02-01 03:55:44"=>5, 203 | "774534 @ 2023-02-01 04:09:38"=>1, 204 | "774536 @ 2023-02-01 04:29:27"=>2, 205 | "774537 @ 2023-02-01 04:46:11"=>2, 206 | "774541 @ 2023-02-01 05:16:44"=>4, 207 | "774567 @ 2023-02-01 10:17:24"=>1, 208 | "774587 @ 2023-02-01 14:41:52"=>1, 209 | "774595 @ 2023-02-01 15:54:57"=>5, 210 | "774598 @ 2023-02-01 16:24:14"=>5, 211 | "774599 @ 2023-02-01 16:32:16"=>4, 212 | "774600 @ 2023-02-01 16:42:58"=>3, 213 | "774604 @ 2023-02-01 17:12:08"=>2, 214 | "774605 @ 2023-02-01 17:35:29"=>3, 215 | "774606 @ 2023-02-01 17:40:32"=>4, 216 | "774607 @ 2023-02-01 17:59:12"=>4, 217 | "774609 @ 2023-02-01 18:13:13"=>3, 218 | "774611 @ 2023-02-01 18:20:16"=>3, 219 | "774612 @ 2023-02-01 18:33:59"=>3, 220 | "774614 @ 2023-02-01 18:46:46"=>1, 221 | "774615 @ 2023-02-01 19:13:31"=>2, 222 | "774617 @ 2023-02-01 19:20:24"=>2, 223 | "774619 @ 2023-02-01 19:27:27"=>1} 224 | ``` 225 | 226 | and so on. 227 | 228 | 229 | ## Collection №2 - 210 Bitcoin Shrooms 230 | 231 | Let's try the Shrooms. Shrooms what!? 232 | 233 | Ordinals trivia. The Shrooms with 208 out of 210 inscriptions¹ (plus one bonus collection metadata inscription, see [№105](https://ordinals.com/inscription/4e0ad05cbbe3cfdbedec9edb37683a8284bc60ec4ced62272703f182d67e5d70i0)) 234 | is the biggest sub 1k collection. 235 | 236 | Note 1: Shroom №186 @ [Inscription №1075](https://ordinals.com/inscription/4af5d25017a5c71d1333925ea29b79a18d36548597fc4f03e6a23f2d740547c7i0) and 237 | Shroom №196 @ [Inscription №1074](https://ordinals.com/inscription/2807ac74213d2e9e4b86b7fc121edf7a94c66bc11a8142f851e5d7162d357333i0). 238 | 239 | 240 | Let's use a "hand-crafted" tabular dataset (in .csv) 241 | e.g. [shrooms_inscriptions.csv](meta/shrooms_inscriptions.csv) 242 | to import all inscriptions - metadata and content blobs - 243 | and bonus add a collection. 244 | 245 | ```ruby 246 | OrdDb.import_collection_csv( "./meta/shrooms_inscriptions.csv", 247 | name: 'Bitcoin Shrooms' ) 248 | ``` 249 | 250 | Yes, that's it. 251 | Thanks to `import_collection_csv` you only need to stand back ten meters 252 | and wait for some minutes to get your database updated. 253 | 254 | Now what? 255 | Let's try again some count stat(istics) queries. 256 | 257 | 258 | ``` ruby 259 | col = Collection.find_by( name: 'Bitcoin Shrooms' ) 260 | 261 | inscribes = col.inscribes 262 | puts " #{inscribes.size} inscribe(s)" 263 | #=> 210 inscribe(s) 264 | ``` 265 | 266 | Let's query for content types (of inscriptions): 267 | 268 | ``` ruby 269 | pp inscribes.counts_by_content_type 270 | ``` 271 | 272 | resulting in: 273 | 274 | ``` 275 | {"image/png" => 210} 276 | ``` 277 | 278 | Let's query for min and max inscription numbers / no.: 279 | 280 | ``` ruby 281 | max = inscribes.maximum( 'num' ) 282 | min = inscribes.minimum( 'num' ) 283 | 284 | puts " range no. #{min} to no. #{max}" 285 | #=> range no. 675 to no. 1075 286 | ``` 287 | 288 | Let's query for inscriptions counts grouped by date / day: 289 | 290 | ``` ruby 291 | pp inscribes.counts_by_day 292 | ``` 293 | 294 | resulting in: 295 | 296 | ``` 297 | {"2023-02-02" => 210} 298 | ``` 299 | 300 | or by hour: 301 | 302 | ``` ruby 303 | pp inscribes.counts_by_hour 304 | ``` 305 | 306 | resulting in: 307 | 308 | ``` 309 | {"2023-02-02 00h" => 43, 310 | "2023-02-02 01h" => 124, 311 | "2023-02-02 02h" => 41, 312 | "2023-02-02 19h" => 2} 313 | ``` 314 | 315 | or by block (height) with or without timestamp: 316 | 317 | ``` ruby 318 | pp inscribes.counts_by_block 319 | pp inscribes.counts_by_block_with_timestamp 320 | ``` 321 | 322 | resulting in: 323 | 324 | ``` 325 | {774656=>43, 326 | 774657=>57, 327 | 774658=>38, 328 | 774659=>6, 329 | 774661=>2, 330 | 774662=>1, 331 | 774663=>5, 332 | 774664=>15, 333 | 774666=>5, 334 | 774670=>10, 335 | 774671=>15, 336 | 774672=>11, 337 | 774761=>1, 338 | 774762=>1} 339 | 340 | {"774656 @ 2023-02-02 00:44:05"=>43, 341 | "774657 @ 2023-02-02 01:00:47"=>57, 342 | "774658 @ 2023-02-02 01:03:02"=>38, 343 | "774659 @ 2023-02-02 01:08:00"=>6, 344 | "774661 @ 2023-02-02 01:17:54"=>2, 345 | "774662 @ 2023-02-02 01:27:47"=>1, 346 | "774663 @ 2023-02-02 01:30:40"=>5, 347 | "774664 @ 2023-02-02 01:44:23"=>15, 348 | "774666 @ 2023-02-02 02:06:44"=>5, 349 | "774670 @ 2023-02-02 02:31:41"=>10, 350 | "774671 @ 2023-02-02 02:34:37"=>15, 351 | "774672 @ 2023-02-02 02:49:42"=>11, 352 | "774761 @ 2023-02-02 19:01:04"=>1, 353 | "774762 @ 2023-02-02 19:06:48"=>1} 354 | ``` 355 | 356 | and so on. 357 | 358 | 359 | 360 | ## Collection №3 - 721 D.I.Y. Punks 361 | 362 | Let's try D.I.Y. Punks - (On-Chain) Generatives! 363 | 364 | New to Geratives! Your Numbers! Your Image!? 365 | For some background see [**Ordgen / ORC-721 »**](https://github.com/ordbase/generative-orc-721) 366 | 367 | 368 | Let's use an auto-generated (market) dataset (in .json) 369 | e.g. [diypunks_inscriptions.json](meta/diypunks_inscriptions.json) 370 | to import all inscriptions - metadata and content blobs - 371 | and bonus add a collection. 372 | 373 | ```ruby 374 | OrdDb.import_collection_inscriptions( "./meta/diypunks_inscriptions.json", 375 | name: 'D.I.Y. Punks' ) 376 | ``` 377 | 378 | Yes, that's it. 379 | Thanks to `import_collection_inscriptions` you only need to stand back ten meters 380 | and wait for some minutes to get your database updated. 381 | 382 | Now what? 383 | Let's try again some count stat(istics) queries. 384 | 385 | 386 | ``` ruby 387 | col = Collection.find_by( name: 'D.I.Y. Punks' ) 388 | 389 | inscribes = col.inscribes 390 | puts " #{inscribes.size} inscribe(s)" 391 | #=> 721 inscribe(s) 392 | ``` 393 | 394 | Let's query for content types (of inscriptions): 395 | 396 | ``` ruby 397 | pp inscribes.counts_by_content_type 398 | ``` 399 | 400 | resulting in: 401 | 402 | ``` 403 | {"text/plain;charset=utf-8"=>717, 404 | "application/json"=>4} 405 | ``` 406 | 407 | Yes, that's text (in .json). Generatives store the dna (numbers) 408 | NOT the image! 409 | 410 | 411 | Let's query for min and max inscription numbers / no.: 412 | 413 | ``` ruby 414 | max = inscribes.maximum( 'num' ) 415 | min = inscribes.minimum( 'num' ) 416 | 417 | puts " range no. #{min} to no. #{max}" 418 | #=> range no. 9959200 to no. 10286852 419 | ``` 420 | 421 | Let's query for inscriptions counts grouped by date / day: 422 | 423 | ``` ruby 424 | pp inscribes.counts_by_day 425 | ``` 426 | 427 | resulting in: 428 | 429 | ``` 430 | {"2023-05-29" => 240, 431 | "2023-05-30" => 298, 432 | "2023-05-31" => 183} 433 | ``` 434 | 435 | or by hour: 436 | 437 | ``` ruby 438 | pp inscribes.counts_by_hour 439 | ``` 440 | 441 | resulting in: 442 | 443 | ``` 444 | {"2023-05-29 17h"=>1, 445 | "2023-05-29 18h"=>1, 446 | "2023-05-29 19h"=>37, 447 | "2023-05-29 20h"=>15, 448 | "2023-05-29 21h"=>123, 449 | "2023-05-29 22h"=>8, 450 | "2023-05-29 23h"=>55, 451 | "2023-05-30 00h"=>28, 452 | "2023-05-30 01h"=>32, 453 | "2023-05-30 02h"=>23, 454 | "2023-05-30 03h"=>56, 455 | "2023-05-30 04h"=>27, 456 | "2023-05-30 05h"=>19, 457 | "2023-05-30 06h"=>58, 458 | "2023-05-30 07h"=>1, 459 | "2023-05-30 09h"=>15, 460 | "2023-05-30 10h"=>1, 461 | "2023-05-30 11h"=>2, 462 | "2023-05-30 12h"=>10, 463 | "2023-05-30 13h"=>11, 464 | "2023-05-30 21h"=>2, 465 | "2023-05-30 22h"=>1, 466 | "2023-05-30 23h"=>12, 467 | "2023-05-31 00h"=>11, 468 | "2023-05-31 01h"=>7, 469 | "2023-05-31 02h"=>12, 470 | "2023-05-31 04h"=>2, 471 | "2023-05-31 06h"=>6, 472 | "2023-05-31 07h"=>5, 473 | "2023-05-31 08h"=>68, 474 | "2023-05-31 09h"=>70, 475 | "2023-05-31 10h"=>2} 476 | ``` 477 | 478 | or by block (height) with or without timestamp: 479 | 480 | ``` ruby 481 | pp inscribes.counts_by_block 482 | pp inscribes.counts_by_block_with_timestamp 483 | ``` 484 | 485 | resulting in: 486 | 487 | ``` 488 | {"791978 @ 2023-05-29 17:53:55"=>1, 489 | "791982 @ 2023-05-29 18:09:37"=>1, 490 | "791989 @ 2023-05-29 19:06:49"=>21, 491 | "791991 @ 2023-05-29 19:13:17"=>5, 492 | "791996 @ 2023-05-29 19:37:16"=>9, 493 | "791997 @ 2023-05-29 19:41:28"=>2, 494 | "791998 @ 2023-05-29 20:01:16"=>11, 495 | "791999 @ 2023-05-29 20:00:56"=>3, 496 | "792001 @ 2023-05-29 20:03:58"=>1, 497 | "792002 @ 2023-05-29 21:01:56"=>33, 498 | "792003 @ 2023-05-29 21:06:34"=>32, 499 | "792004 @ 2023-05-29 21:19:45"=>14, 500 | "792005 @ 2023-05-29 21:23:31"=>7, 501 | "792006 @ 2023-05-29 21:24:12"=>2, 502 | "792007 @ 2023-05-29 21:29:17"=>24, 503 | "792008 @ 2023-05-29 21:31:38"=>11, 504 | "792009 @ 2023-05-29 22:04:04"=>4, 505 | "792011 @ 2023-05-29 22:57:50"=>2, 506 | "792012 @ 2023-05-29 22:59:48"=>2, 507 | "792013 @ 2023-05-29 23:03:25"=>1, 508 | "792014 @ 2023-05-29 23:13:47"=>10, 509 | "792015 @ 2023-05-29 23:15:37"=>10, 510 | "792017 @ 2023-05-29 23:37:03"=>4, 511 | "792018 @ 2023-05-29 23:47:59"=>6, 512 | "792019 @ 2023-05-29 23:49:13"=>14, 513 | "792020 @ 2023-05-29 23:51:31"=>5, 514 | "792021 @ 2023-05-29 23:59:41"=>5, 515 | "792022 @ 2023-05-30 00:06:07"=>22, 516 | "792023 @ 2023-05-30 00:09:00"=>5, 517 | "792024 @ 2023-05-30 00:14:05"=>1, 518 | "792028 @ 2023-05-30 01:13:42"=>5, 519 | "792029 @ 2023-05-30 01:33:08"=>4, 520 | "792030 @ 2023-05-30 01:41:52"=>3, 521 | "792031 @ 2023-05-30 01:44:56"=>15, 522 | "792033 @ 2023-05-30 01:50:40"=>3, 523 | "792034 @ 2023-05-30 01:53:05"=>2, 524 | "792035 @ 2023-05-30 02:08:43"=>13, 525 | "792036 @ 2023-05-30 02:31:09"=>7, 526 | "792037 @ 2023-05-30 02:33:57"=>3, 527 | "792038 @ 2023-05-30 03:03:05"=>2, 528 | "792040 @ 2023-05-30 03:14:15"=>50, 529 | "792042 @ 2023-05-30 03:28:43"=>1, 530 | "792043 @ 2023-05-30 03:32:32"=>2, 531 | "792044 @ 2023-05-30 03:33:39"=>1, 532 | "792045 @ 2023-05-30 04:09:54"=>1, 533 | "792046 @ 2023-05-30 04:19:58"=>3, 534 | "792047 @ 2023-05-30 04:24:48"=>4, 535 | "792048 @ 2023-05-30 04:49:37"=>18, 536 | "792050 @ 2023-05-30 04:55:19"=>1, 537 | "792053 @ 2023-05-30 05:08:02"=>9, 538 | "792054 @ 2023-05-30 05:10:15"=>1, 539 | "792055 @ 2023-05-30 05:12:53"=>1, 540 | "792056 @ 2023-05-30 05:22:31"=>1, 541 | "792057 @ 2023-05-30 05:35:45"=>3, 542 | "792058 @ 2023-05-30 05:46:13"=>1, 543 | "792060 @ 2023-05-30 05:56:20"=>3, 544 | "792061 @ 2023-05-30 06:03:33"=>24, 545 | "792062 @ 2023-05-30 06:09:24"=>17, 546 | "792063 @ 2023-05-30 06:16:14"=>3, 547 | "792068 @ 2023-05-30 06:36:49"=>7, 548 | "792070 @ 2023-05-30 06:46:38"=>7, 549 | "792071 @ 2023-05-30 07:05:32"=>1, 550 | "792082 @ 2023-05-30 09:04:26"=>1, 551 | "792083 @ 2023-05-30 09:20:18"=>5, 552 | "792084 @ 2023-05-30 09:25:47"=>9, 553 | "792092 @ 2023-05-30 10:59:55"=>1, 554 | "792098 @ 2023-05-30 11:34:49"=>2, 555 | "792100 @ 2023-05-30 12:08:43"=>10, 556 | "792109 @ 2023-05-30 13:35:52"=>11, 557 | "792152 @ 2023-05-30 21:43:51"=>1, 558 | "792155 @ 2023-05-30 21:54:01"=>1, 559 | "792165 @ 2023-05-30 22:49:29"=>1, 560 | "792169 @ 2023-05-30 23:22:51"=>5, 561 | "792173 @ 2023-05-30 23:34:51"=>6, 562 | "792174 @ 2023-05-30 23:46:09"=>1, 563 | "792176 @ 2023-05-31 00:23:18"=>1, 564 | "792177 @ 2023-05-31 00:24:57"=>3, 565 | "792178 @ 2023-05-31 00:38:04"=>2, 566 | "792179 @ 2023-05-31 00:45:07"=>5, 567 | "792181 @ 2023-05-31 01:14:07"=>4, 568 | "792183 @ 2023-05-31 01:48:20"=>2, 569 | "792184 @ 2023-05-31 01:51:47"=>1, 570 | "792185 @ 2023-05-31 02:10:47"=>2, 571 | "792186 @ 2023-05-31 02:29:40"=>1, 572 | "792187 @ 2023-05-31 02:41:41"=>9, 573 | "792198 @ 2023-05-31 04:36:55"=>1, 574 | "792199 @ 2023-05-31 04:37:14"=>1, 575 | "792202 @ 2023-05-31 06:04:30"=>6, 576 | "792211 @ 2023-05-31 07:08:35"=>5, 577 | "792218 @ 2023-05-31 08:13:40"=>1, 578 | "792222 @ 2023-05-31 08:27:58"=>17, 579 | "792223 @ 2023-05-31 08:30:11"=>12, 580 | "792224 @ 2023-05-31 08:45:34"=>35, 581 | "792225 @ 2023-05-31 08:46:10"=>2, 582 | "792226 @ 2023-05-31 08:47:34"=>1, 583 | "792227 @ 2023-05-31 09:03:15"=>41, 584 | "792228 @ 2023-05-31 09:07:04"=>24, 585 | "792229 @ 2023-05-31 09:18:12"=>5, 586 | "792233 @ 2023-05-31 10:06:40"=>2} 587 | ``` 588 | 589 | and so on. 590 | 591 | 592 | 593 | ## Questions? Comments? 594 | 595 | Join us in the [Ordgen / ORC-721 discord (chat server)](https://discord.gg/dDhvHKjm2t). Yes you can. 596 | Your questions and commetary welcome. 597 | 598 | 599 | Or post them over at the [Help & Support](https://github.com/geraldb/help) page. Thanks. 600 | 601 | -------------------------------------------------------------------------------- /docs/bitcoin.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/docs/bitcoin.pdf -------------------------------------------------------------------------------- /docs/mimblewimble.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/docs/mimblewimble.pdf -------------------------------------------------------------------------------- /docs/snake.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic Snake HTML Game 5 | 6 | 22 | 23 | 24 | 25 | 170 | 171 | -------------------------------------------------------------------------------- /docs/tetris.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Basic Tetris HTML Game 5 | 6 | 23 | 24 | 25 | 26 | 318 | 319 | -------------------------------------------------------------------------------- /i/export-preview-ltc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/export-preview-ltc.png -------------------------------------------------------------------------------- /i/export-preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/export-preview.png -------------------------------------------------------------------------------- /i/pepelangelo1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo1.jpg -------------------------------------------------------------------------------- /i/pepelangelo10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo10.jpg -------------------------------------------------------------------------------- /i/pepelangelo11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo11.jpg -------------------------------------------------------------------------------- /i/pepelangelo12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo12.jpg -------------------------------------------------------------------------------- /i/pepelangelo13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo13.jpg -------------------------------------------------------------------------------- /i/pepelangelo14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo14.jpg -------------------------------------------------------------------------------- /i/pepelangelo15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo15.jpg -------------------------------------------------------------------------------- /i/pepelangelo16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo16.jpg -------------------------------------------------------------------------------- /i/pepelangelo17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo17.jpg -------------------------------------------------------------------------------- /i/pepelangelo18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo18.jpg -------------------------------------------------------------------------------- /i/pepelangelo19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo19.jpg -------------------------------------------------------------------------------- /i/pepelangelo2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo2.jpg -------------------------------------------------------------------------------- /i/pepelangelo20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo20.jpg -------------------------------------------------------------------------------- /i/pepelangelo21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo21.jpg -------------------------------------------------------------------------------- /i/pepelangelo22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo22.jpg -------------------------------------------------------------------------------- /i/pepelangelo23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo23.jpg -------------------------------------------------------------------------------- /i/pepelangelo24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo24.jpg -------------------------------------------------------------------------------- /i/pepelangelo25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo25.jpg -------------------------------------------------------------------------------- /i/pepelangelo26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo26.jpg -------------------------------------------------------------------------------- /i/pepelangelo27.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo27.jpg -------------------------------------------------------------------------------- /i/pepelangelo28.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo28.jpg -------------------------------------------------------------------------------- /i/pepelangelo29.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo29.jpg -------------------------------------------------------------------------------- /i/pepelangelo3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo3.jpg -------------------------------------------------------------------------------- /i/pepelangelo30.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo30.jpg -------------------------------------------------------------------------------- /i/pepelangelo31.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo31.jpg -------------------------------------------------------------------------------- /i/pepelangelo32.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo32.jpg -------------------------------------------------------------------------------- /i/pepelangelo33.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo33.jpg -------------------------------------------------------------------------------- /i/pepelangelo34.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo34.jpg -------------------------------------------------------------------------------- /i/pepelangelo35.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo35.jpg -------------------------------------------------------------------------------- /i/pepelangelo36.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo36.jpg -------------------------------------------------------------------------------- /i/pepelangelo37.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo37.jpg -------------------------------------------------------------------------------- /i/pepelangelo38.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo38.jpg -------------------------------------------------------------------------------- /i/pepelangelo39.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo39.jpg -------------------------------------------------------------------------------- /i/pepelangelo4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo4.jpg -------------------------------------------------------------------------------- /i/pepelangelo40.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo40.jpg -------------------------------------------------------------------------------- /i/pepelangelo41.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo41.jpg -------------------------------------------------------------------------------- /i/pepelangelo42.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo42.jpg -------------------------------------------------------------------------------- /i/pepelangelo43.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo43.jpg -------------------------------------------------------------------------------- /i/pepelangelo44.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo44.jpg -------------------------------------------------------------------------------- /i/pepelangelo5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo5.jpg -------------------------------------------------------------------------------- /i/pepelangelo6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo6.jpg -------------------------------------------------------------------------------- /i/pepelangelo7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo7.jpg -------------------------------------------------------------------------------- /i/pepelangelo8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo8.jpg -------------------------------------------------------------------------------- /i/pepelangelo9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/pepelangelo9.jpg -------------------------------------------------------------------------------- /i/punk1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk1.png -------------------------------------------------------------------------------- /i/punk10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk10.png -------------------------------------------------------------------------------- /i/punk100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk100.png -------------------------------------------------------------------------------- /i/punk11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk11.png -------------------------------------------------------------------------------- /i/punk12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk12.png -------------------------------------------------------------------------------- /i/punk13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk13.png -------------------------------------------------------------------------------- /i/punk14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk14.png -------------------------------------------------------------------------------- /i/punk15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk15.png -------------------------------------------------------------------------------- /i/punk16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk16.png -------------------------------------------------------------------------------- /i/punk17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk17.png -------------------------------------------------------------------------------- /i/punk18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk18.png -------------------------------------------------------------------------------- /i/punk19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk19.png -------------------------------------------------------------------------------- /i/punk2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk2.png -------------------------------------------------------------------------------- /i/punk20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk20.png -------------------------------------------------------------------------------- /i/punk21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk21.png -------------------------------------------------------------------------------- /i/punk22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk22.png -------------------------------------------------------------------------------- /i/punk23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk23.png -------------------------------------------------------------------------------- /i/punk24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk24.png -------------------------------------------------------------------------------- /i/punk25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk25.png -------------------------------------------------------------------------------- /i/punk26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk26.png -------------------------------------------------------------------------------- /i/punk27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk27.png -------------------------------------------------------------------------------- /i/punk28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk28.png -------------------------------------------------------------------------------- /i/punk29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk29.png -------------------------------------------------------------------------------- /i/punk3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk3.png -------------------------------------------------------------------------------- /i/punk30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk30.png -------------------------------------------------------------------------------- /i/punk31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk31.png -------------------------------------------------------------------------------- /i/punk32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk32.png -------------------------------------------------------------------------------- /i/punk33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk33.png -------------------------------------------------------------------------------- /i/punk34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk34.png -------------------------------------------------------------------------------- /i/punk35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk35.png -------------------------------------------------------------------------------- /i/punk36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk36.png -------------------------------------------------------------------------------- /i/punk37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk37.png -------------------------------------------------------------------------------- /i/punk38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk38.png -------------------------------------------------------------------------------- /i/punk39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk39.png -------------------------------------------------------------------------------- /i/punk4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk4.png -------------------------------------------------------------------------------- /i/punk40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk40.png -------------------------------------------------------------------------------- /i/punk41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk41.png -------------------------------------------------------------------------------- /i/punk42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk42.png -------------------------------------------------------------------------------- /i/punk43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk43.png -------------------------------------------------------------------------------- /i/punk44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk44.png -------------------------------------------------------------------------------- /i/punk45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk45.png -------------------------------------------------------------------------------- /i/punk46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk46.png -------------------------------------------------------------------------------- /i/punk47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk47.png -------------------------------------------------------------------------------- /i/punk48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk48.png -------------------------------------------------------------------------------- /i/punk49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk49.png -------------------------------------------------------------------------------- /i/punk5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk5.png -------------------------------------------------------------------------------- /i/punk50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk50.png -------------------------------------------------------------------------------- /i/punk51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk51.png -------------------------------------------------------------------------------- /i/punk52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk52.png -------------------------------------------------------------------------------- /i/punk53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk53.png -------------------------------------------------------------------------------- /i/punk54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk54.png -------------------------------------------------------------------------------- /i/punk55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk55.png -------------------------------------------------------------------------------- /i/punk56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk56.png -------------------------------------------------------------------------------- /i/punk57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk57.png -------------------------------------------------------------------------------- /i/punk58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk58.png -------------------------------------------------------------------------------- /i/punk59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk59.png -------------------------------------------------------------------------------- /i/punk6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk6.png -------------------------------------------------------------------------------- /i/punk60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk60.png -------------------------------------------------------------------------------- /i/punk61.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk61.png -------------------------------------------------------------------------------- /i/punk62.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk62.png -------------------------------------------------------------------------------- /i/punk63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk63.png -------------------------------------------------------------------------------- /i/punk64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk64.png -------------------------------------------------------------------------------- /i/punk65.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk65.png -------------------------------------------------------------------------------- /i/punk66.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk66.png -------------------------------------------------------------------------------- /i/punk67.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk67.png -------------------------------------------------------------------------------- /i/punk68.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk68.png -------------------------------------------------------------------------------- /i/punk69.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk69.png -------------------------------------------------------------------------------- /i/punk7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk7.png -------------------------------------------------------------------------------- /i/punk70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk70.png -------------------------------------------------------------------------------- /i/punk71.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk71.png -------------------------------------------------------------------------------- /i/punk72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk72.png -------------------------------------------------------------------------------- /i/punk73.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk73.png -------------------------------------------------------------------------------- /i/punk74.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk74.png -------------------------------------------------------------------------------- /i/punk75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk75.png -------------------------------------------------------------------------------- /i/punk76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk76.png -------------------------------------------------------------------------------- /i/punk77.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk77.png -------------------------------------------------------------------------------- /i/punk78.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk78.png -------------------------------------------------------------------------------- /i/punk79.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk79.png -------------------------------------------------------------------------------- /i/punk8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk8.png -------------------------------------------------------------------------------- /i/punk80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk80.png -------------------------------------------------------------------------------- /i/punk81.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk81.png -------------------------------------------------------------------------------- /i/punk82.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk82.png -------------------------------------------------------------------------------- /i/punk83.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk83.png -------------------------------------------------------------------------------- /i/punk84.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk84.png -------------------------------------------------------------------------------- /i/punk85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk85.png -------------------------------------------------------------------------------- /i/punk86.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk86.png -------------------------------------------------------------------------------- /i/punk87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk87.png -------------------------------------------------------------------------------- /i/punk88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk88.png -------------------------------------------------------------------------------- /i/punk89.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk89.png -------------------------------------------------------------------------------- /i/punk9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk9.png -------------------------------------------------------------------------------- /i/punk90.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk90.png -------------------------------------------------------------------------------- /i/punk91.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk91.png -------------------------------------------------------------------------------- /i/punk92.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk92.png -------------------------------------------------------------------------------- /i/punk93.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk93.png -------------------------------------------------------------------------------- /i/punk94.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk94.png -------------------------------------------------------------------------------- /i/punk95.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk95.png -------------------------------------------------------------------------------- /i/punk96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk96.png -------------------------------------------------------------------------------- /i/punk97.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk97.png -------------------------------------------------------------------------------- /i/punk98.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk98.png -------------------------------------------------------------------------------- /i/punk99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punk99.png -------------------------------------------------------------------------------- /i/punks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punks.png -------------------------------------------------------------------------------- /i/punks@4x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/punks@4x.png -------------------------------------------------------------------------------- /i/shroom1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom1.png -------------------------------------------------------------------------------- /i/shroom10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom10.png -------------------------------------------------------------------------------- /i/shroom100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom100.png -------------------------------------------------------------------------------- /i/shroom101.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom101.png -------------------------------------------------------------------------------- /i/shroom102.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom102.png -------------------------------------------------------------------------------- /i/shroom103.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom103.png -------------------------------------------------------------------------------- /i/shroom104.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom104.png -------------------------------------------------------------------------------- /i/shroom105.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom105.png -------------------------------------------------------------------------------- /i/shroom106.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom106.png -------------------------------------------------------------------------------- /i/shroom107.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom107.png -------------------------------------------------------------------------------- /i/shroom108.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom108.png -------------------------------------------------------------------------------- /i/shroom109.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom109.png -------------------------------------------------------------------------------- /i/shroom11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom11.png -------------------------------------------------------------------------------- /i/shroom110.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom110.png -------------------------------------------------------------------------------- /i/shroom111.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom111.png -------------------------------------------------------------------------------- /i/shroom112.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom112.png -------------------------------------------------------------------------------- /i/shroom113.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom113.png -------------------------------------------------------------------------------- /i/shroom114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom114.png -------------------------------------------------------------------------------- /i/shroom115.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom115.png -------------------------------------------------------------------------------- /i/shroom116.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom116.png -------------------------------------------------------------------------------- /i/shroom117.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom117.png -------------------------------------------------------------------------------- /i/shroom118.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom118.png -------------------------------------------------------------------------------- /i/shroom119.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom119.png -------------------------------------------------------------------------------- /i/shroom12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom12.png -------------------------------------------------------------------------------- /i/shroom120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom120.png -------------------------------------------------------------------------------- /i/shroom121.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom121.png -------------------------------------------------------------------------------- /i/shroom122.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom122.png -------------------------------------------------------------------------------- /i/shroom123.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom123.png -------------------------------------------------------------------------------- /i/shroom124.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom124.png -------------------------------------------------------------------------------- /i/shroom125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom125.png -------------------------------------------------------------------------------- /i/shroom126.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom126.png -------------------------------------------------------------------------------- /i/shroom127.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom127.png -------------------------------------------------------------------------------- /i/shroom128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom128.png -------------------------------------------------------------------------------- /i/shroom129.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom129.png -------------------------------------------------------------------------------- /i/shroom13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom13.png -------------------------------------------------------------------------------- /i/shroom130.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom130.png -------------------------------------------------------------------------------- /i/shroom131.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom131.png -------------------------------------------------------------------------------- /i/shroom132.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom132.png -------------------------------------------------------------------------------- /i/shroom133.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom133.png -------------------------------------------------------------------------------- /i/shroom134.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom134.png -------------------------------------------------------------------------------- /i/shroom135.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom135.png -------------------------------------------------------------------------------- /i/shroom136.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom136.png -------------------------------------------------------------------------------- /i/shroom137.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom137.png -------------------------------------------------------------------------------- /i/shroom138.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom138.png -------------------------------------------------------------------------------- /i/shroom139.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom139.png -------------------------------------------------------------------------------- /i/shroom14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom14.png -------------------------------------------------------------------------------- /i/shroom140.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom140.png -------------------------------------------------------------------------------- /i/shroom141.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom141.png -------------------------------------------------------------------------------- /i/shroom142.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom142.png -------------------------------------------------------------------------------- /i/shroom143.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom143.png -------------------------------------------------------------------------------- /i/shroom144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom144.png -------------------------------------------------------------------------------- /i/shroom145.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom145.png -------------------------------------------------------------------------------- /i/shroom146.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom146.png -------------------------------------------------------------------------------- /i/shroom147.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom147.png -------------------------------------------------------------------------------- /i/shroom148.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom148.png -------------------------------------------------------------------------------- /i/shroom149.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom149.png -------------------------------------------------------------------------------- /i/shroom15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom15.png -------------------------------------------------------------------------------- /i/shroom150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom150.png -------------------------------------------------------------------------------- /i/shroom151.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom151.png -------------------------------------------------------------------------------- /i/shroom152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom152.png -------------------------------------------------------------------------------- /i/shroom153.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom153.png -------------------------------------------------------------------------------- /i/shroom154.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom154.png -------------------------------------------------------------------------------- /i/shroom155.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom155.png -------------------------------------------------------------------------------- /i/shroom156.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom156.png -------------------------------------------------------------------------------- /i/shroom157.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom157.png -------------------------------------------------------------------------------- /i/shroom158.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom158.png -------------------------------------------------------------------------------- /i/shroom159.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom159.png -------------------------------------------------------------------------------- /i/shroom16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom16.png -------------------------------------------------------------------------------- /i/shroom160.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom160.png -------------------------------------------------------------------------------- /i/shroom161.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom161.png -------------------------------------------------------------------------------- /i/shroom162.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom162.png -------------------------------------------------------------------------------- /i/shroom163.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom163.png -------------------------------------------------------------------------------- /i/shroom164.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom164.png -------------------------------------------------------------------------------- /i/shroom165.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom165.png -------------------------------------------------------------------------------- /i/shroom166.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom166.png -------------------------------------------------------------------------------- /i/shroom167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom167.png -------------------------------------------------------------------------------- /i/shroom168.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom168.png -------------------------------------------------------------------------------- /i/shroom169.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom169.png -------------------------------------------------------------------------------- /i/shroom17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom17.png -------------------------------------------------------------------------------- /i/shroom170.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom170.png -------------------------------------------------------------------------------- /i/shroom171.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom171.png -------------------------------------------------------------------------------- /i/shroom172.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom172.png -------------------------------------------------------------------------------- /i/shroom173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom173.png -------------------------------------------------------------------------------- /i/shroom174.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom174.png -------------------------------------------------------------------------------- /i/shroom175.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom175.png -------------------------------------------------------------------------------- /i/shroom176.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom176.png -------------------------------------------------------------------------------- /i/shroom177.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom177.png -------------------------------------------------------------------------------- /i/shroom178.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom178.png -------------------------------------------------------------------------------- /i/shroom179.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom179.png -------------------------------------------------------------------------------- /i/shroom18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom18.png -------------------------------------------------------------------------------- /i/shroom180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom180.png -------------------------------------------------------------------------------- /i/shroom181.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom181.png -------------------------------------------------------------------------------- /i/shroom182.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom182.png -------------------------------------------------------------------------------- /i/shroom183.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom183.png -------------------------------------------------------------------------------- /i/shroom184.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom184.png -------------------------------------------------------------------------------- /i/shroom185.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom185.png -------------------------------------------------------------------------------- /i/shroom186.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom186.png -------------------------------------------------------------------------------- /i/shroom187.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom187.png -------------------------------------------------------------------------------- /i/shroom188.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom188.png -------------------------------------------------------------------------------- /i/shroom189.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom189.png -------------------------------------------------------------------------------- /i/shroom19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom19.png -------------------------------------------------------------------------------- /i/shroom190.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom190.png -------------------------------------------------------------------------------- /i/shroom191.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom191.png -------------------------------------------------------------------------------- /i/shroom192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom192.png -------------------------------------------------------------------------------- /i/shroom193.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom193.png -------------------------------------------------------------------------------- /i/shroom194.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom194.png -------------------------------------------------------------------------------- /i/shroom195.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom195.png -------------------------------------------------------------------------------- /i/shroom196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom196.png -------------------------------------------------------------------------------- /i/shroom197.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom197.png -------------------------------------------------------------------------------- /i/shroom198.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom198.png -------------------------------------------------------------------------------- /i/shroom199.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom199.png -------------------------------------------------------------------------------- /i/shroom2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom2.png -------------------------------------------------------------------------------- /i/shroom20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom20.png -------------------------------------------------------------------------------- /i/shroom200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom200.png -------------------------------------------------------------------------------- /i/shroom201.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom201.png -------------------------------------------------------------------------------- /i/shroom202.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom202.png -------------------------------------------------------------------------------- /i/shroom203.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom203.png -------------------------------------------------------------------------------- /i/shroom204.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom204.png -------------------------------------------------------------------------------- /i/shroom205.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom205.png -------------------------------------------------------------------------------- /i/shroom206.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom206.png -------------------------------------------------------------------------------- /i/shroom207.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom207.png -------------------------------------------------------------------------------- /i/shroom208.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom208.png -------------------------------------------------------------------------------- /i/shroom209.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom209.png -------------------------------------------------------------------------------- /i/shroom21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom21.png -------------------------------------------------------------------------------- /i/shroom210.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom210.png -------------------------------------------------------------------------------- /i/shroom22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom22.png -------------------------------------------------------------------------------- /i/shroom23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom23.png -------------------------------------------------------------------------------- /i/shroom24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom24.png -------------------------------------------------------------------------------- /i/shroom25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom25.png -------------------------------------------------------------------------------- /i/shroom26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom26.png -------------------------------------------------------------------------------- /i/shroom27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom27.png -------------------------------------------------------------------------------- /i/shroom28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom28.png -------------------------------------------------------------------------------- /i/shroom29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom29.png -------------------------------------------------------------------------------- /i/shroom3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom3.png -------------------------------------------------------------------------------- /i/shroom30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom30.png -------------------------------------------------------------------------------- /i/shroom31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom31.png -------------------------------------------------------------------------------- /i/shroom32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom32.png -------------------------------------------------------------------------------- /i/shroom33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom33.png -------------------------------------------------------------------------------- /i/shroom34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom34.png -------------------------------------------------------------------------------- /i/shroom35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom35.png -------------------------------------------------------------------------------- /i/shroom36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom36.png -------------------------------------------------------------------------------- /i/shroom37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom37.png -------------------------------------------------------------------------------- /i/shroom38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom38.png -------------------------------------------------------------------------------- /i/shroom39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom39.png -------------------------------------------------------------------------------- /i/shroom4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom4.png -------------------------------------------------------------------------------- /i/shroom40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom40.png -------------------------------------------------------------------------------- /i/shroom41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom41.png -------------------------------------------------------------------------------- /i/shroom42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom42.png -------------------------------------------------------------------------------- /i/shroom43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom43.png -------------------------------------------------------------------------------- /i/shroom44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom44.png -------------------------------------------------------------------------------- /i/shroom45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom45.png -------------------------------------------------------------------------------- /i/shroom46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom46.png -------------------------------------------------------------------------------- /i/shroom47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom47.png -------------------------------------------------------------------------------- /i/shroom48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom48.png -------------------------------------------------------------------------------- /i/shroom49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom49.png -------------------------------------------------------------------------------- /i/shroom5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom5.png -------------------------------------------------------------------------------- /i/shroom50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom50.png -------------------------------------------------------------------------------- /i/shroom51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom51.png -------------------------------------------------------------------------------- /i/shroom52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom52.png -------------------------------------------------------------------------------- /i/shroom53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom53.png -------------------------------------------------------------------------------- /i/shroom54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom54.png -------------------------------------------------------------------------------- /i/shroom55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom55.png -------------------------------------------------------------------------------- /i/shroom56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom56.png -------------------------------------------------------------------------------- /i/shroom57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom57.png -------------------------------------------------------------------------------- /i/shroom58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom58.png -------------------------------------------------------------------------------- /i/shroom59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom59.png -------------------------------------------------------------------------------- /i/shroom6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom6.png -------------------------------------------------------------------------------- /i/shroom60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom60.png -------------------------------------------------------------------------------- /i/shroom61.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom61.png -------------------------------------------------------------------------------- /i/shroom62.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom62.png -------------------------------------------------------------------------------- /i/shroom63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom63.png -------------------------------------------------------------------------------- /i/shroom64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom64.png -------------------------------------------------------------------------------- /i/shroom65.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom65.png -------------------------------------------------------------------------------- /i/shroom66.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom66.png -------------------------------------------------------------------------------- /i/shroom67.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom67.png -------------------------------------------------------------------------------- /i/shroom68.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom68.png -------------------------------------------------------------------------------- /i/shroom69.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom69.png -------------------------------------------------------------------------------- /i/shroom7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom7.png -------------------------------------------------------------------------------- /i/shroom70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom70.png -------------------------------------------------------------------------------- /i/shroom71.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom71.png -------------------------------------------------------------------------------- /i/shroom72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom72.png -------------------------------------------------------------------------------- /i/shroom73.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom73.png -------------------------------------------------------------------------------- /i/shroom74.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom74.png -------------------------------------------------------------------------------- /i/shroom75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom75.png -------------------------------------------------------------------------------- /i/shroom76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom76.png -------------------------------------------------------------------------------- /i/shroom77.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom77.png -------------------------------------------------------------------------------- /i/shroom78.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom78.png -------------------------------------------------------------------------------- /i/shroom79.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom79.png -------------------------------------------------------------------------------- /i/shroom8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom8.png -------------------------------------------------------------------------------- /i/shroom80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom80.png -------------------------------------------------------------------------------- /i/shroom81.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom81.png -------------------------------------------------------------------------------- /i/shroom82.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom82.png -------------------------------------------------------------------------------- /i/shroom83.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom83.png -------------------------------------------------------------------------------- /i/shroom84.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom84.png -------------------------------------------------------------------------------- /i/shroom85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom85.png -------------------------------------------------------------------------------- /i/shroom86.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom86.png -------------------------------------------------------------------------------- /i/shroom87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom87.png -------------------------------------------------------------------------------- /i/shroom88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom88.png -------------------------------------------------------------------------------- /i/shroom89.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom89.png -------------------------------------------------------------------------------- /i/shroom9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom9.png -------------------------------------------------------------------------------- /i/shroom90.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom90.png -------------------------------------------------------------------------------- /i/shroom91.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom91.png -------------------------------------------------------------------------------- /i/shroom92.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom92.png -------------------------------------------------------------------------------- /i/shroom93.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom93.png -------------------------------------------------------------------------------- /i/shroom94.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom94.png -------------------------------------------------------------------------------- /i/shroom95.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom95.png -------------------------------------------------------------------------------- /i/shroom96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom96.png -------------------------------------------------------------------------------- /i/shroom97.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom97.png -------------------------------------------------------------------------------- /i/shroom98.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom98.png -------------------------------------------------------------------------------- /i/shroom99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ordbase/programming-ordinals/deb488351988d996ddc1ff8570fdc45b6252c865/i/shroom99.png -------------------------------------------------------------------------------- /ltc_sub1k.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | [« Programming (Litecoin) Ordinals - Step-by-Step Book / Guide](./) 4 | 5 | 6 | # Sub 1k - Inside The First Thousand (Litecoin) Ordinal Inscriptions 7 | 8 | 9 | Let's explore the first thousand ordinal inscriptions 10 | from [inscription №0](https://ordinalslite.com/inscription/71e0f6dc87a473aa69787fff8e09e5eddfdca96e587928a5b1a25c0ae16dc0eei0) 11 | to [inscription №999](https://ordinalslite.com/inscription/aba63632a275ce5c20cb87d0af58c0b11e6f328514e2cf7fecf6132086fd33f8i0). 12 | 13 | 14 | Looking for the bitcoin (btc) edition? See [Sub 1k - Inside the first thousand bitcoin ordinal inscripitons »](sub1k.md) 15 | 16 | 17 | 18 | ## Step 0: Let's build the sub1k (SQL) database (ordlite / sqlite) 19 | 20 | Let's setup and build from scratch / zero 21 | a single-file SQLite database (e.g. `òrdsub1k.ltc.db`) with 22 | the first thousand ordinal inscriptions, 23 | that is, all metadata and (content) blobs, that is, images or text or audio or whatever. 24 | 25 | To fetch the inscription metadata and content blobs 26 | let's use the ordinalslite.com api wrapper / client, that is, 27 | the [ordinals gem](https://github.com/ordbase/ordbase/tree/master/ordinals). 28 | 29 | To setup and build the SQL schema / tables 30 | and insert (& update) all database records let's use 31 | the ordinals sqlite database helpers & machinery, that is, the [ordlite gem](https://github.com/ordbase/ordbase/tree/master/ordlite). 32 | 33 | 34 | Let's get started: 35 | 36 | ``` ruby 37 | require 'ordlite' 38 | 39 | 40 | OrdDb.open( './ordsub1k.ltc.db' ) 41 | 42 | puts 43 | puts " #{Inscribe.count} inscribe(s)" 44 | puts " #{Blob.count} blob(s)" 45 | #=> 0 inscribe(s) 46 | #=> 0 blob(s) 47 | 48 | ## IMPORTANT! switch (block)chain to litcoin / ltc 49 | Ordinals.chain = :ltc 50 | 51 | ## import listed inscripiton ids (fetch via ordinals.com api) 52 | OrdDb.import_csv( "./meta/sub1k_inscriptions.csv" ) 53 | 54 | puts 55 | puts " #{Inscribe.count} inscribe(s)" 56 | puts " #{Blob.count} blob(s)" 57 | #=> 1000 inscribe(s) 58 | #=> 1000 blob(s) 59 | ``` 60 | 61 | Show time! Let's run the [`ltc_sub1k_build` script](ltc_sub1k_build.rb) and 62 | once 63 | all 1000×2, that is, 2000 web (api) requests are processed 64 | you will have a copy of all sub1k ordinal inscriptions with all metadata and content blobs in a single-file SQLite database (about 160 MB). 65 | 66 | 67 | 68 | ## Let's query and analyze the sub1k inscriptions via SQL 69 | 70 | 71 | Let's try a test run ... 72 | 73 | ``` ruby 74 | require 'ordlite' 75 | 76 | 77 | OrdDb.open( './ordsub1k.ltc.db' ) 78 | 79 | puts 80 | puts " #{Inscribe.count} inscribe(s)" 81 | puts " #{Blob.count} blob(s)" 82 | #=> 1000 inscribe(s) 83 | #=> 1000 blob(s) 84 | ``` 85 | 86 | 87 | Let's query for the ten biggest (by bytes) inscriptions 88 | (and pretty print the result): 89 | 90 | ```ruby 91 | Inscribe.biggest.limit(10).each do |rec| 92 | print "#{number_to_human_size(rec.bytes)} (#{rec.bytes} bytes) - " 93 | print "Inscribe №#{rec.num} (#{rec.content_type}) - " 94 | print "#{rec.date} - #{rec.fee} fee in litoshis" 95 | print "\n" 96 | end 97 | ``` 98 | 99 | or in vanilla SQL: 100 | 101 | ``` sql 102 | SELECT * 103 | FROM inscribes 104 | ORDER BY bytes DESC 105 | LIMIT 10 106 | ``` 107 | 108 | resulting in: 109 | 110 | ``` 111 | 387 KB (396340 bytes) - Inscribe №100 (image/webp) - 2023-02-20 19:19:25 - 775291 fee in lits 112 | 387 KB (396313 bytes) - Inscribe №89 (image/gif) - 2023-02-20 19:14:53 - 775236 fee in lits 113 | 386 KB (395261 bytes) - Inscribe №866 (image/png) - 2023-02-21 06:35:39 - 199016 fee in lits 114 | 385 KB (394012 bytes) - Inscribe №291 (image/webp) - 2023-02-20 21:03:48 - 770737 fee in lits 115 | 385 KB (394012 bytes) - Inscribe №292 (image/webp) - 2023-02-20 21:03:48 - 770737 fee in lits 116 | 385 KB (394012 bytes) - Inscribe №293 (image/webp) - 2023-02-20 21:03:48 - 770737 fee in lits 117 | 385 KB (394012 bytes) - Inscribe №294 (image/webp) - 2023-02-20 21:03:48 - 770737 fee in lits 118 | 385 KB (394012 bytes) - Inscribe №295 (image/webp) - 2023-02-20 21:03:48 - 770737 fee in lits 119 | 385 KB (394012 bytes) - Inscribe №296 (image/webp) - 2023-02-20 21:03:48 - 770737 fee in lits 120 | 385 KB (394012 bytes) - Inscribe №297 (image/webp) - 2023-02-20 21:03:48 - 770737 fee in lits 121 | ``` 122 | 123 | Litecoin triva: Did you know? The litoshi is the smallest possible division 124 | and named in homage to bitcoin's smallest denomination 125 | the satoshi, representing 1⁄100000000 (one hundred millionth) litecoin. 126 | 127 | 128 | 129 | 130 | Let's query for all inscriptions grouped by date (day) and dump the results: 131 | 132 | ```ruby 133 | pp Inscribe.counts_by_date ## or count_by_day 134 | ``` 135 | 136 | or in vanilla SQL: 137 | 138 | ```sql 139 | SELECT strftime('%Y-%m-%d', date) AS day, COUNT(*) 140 | FROM inscribes 141 | GROUP BY day 142 | ORDER BY day 143 | ``` 144 | 145 | resulting in: 146 | 147 | ``` 148 | {"2023-02-19" => 4, 149 | "2023-02-20" => 299, 150 | "2023-02-21" => 697} 151 | ``` 152 | 153 | Let's query for all content types and group by count (descending) and dump the results: 154 | 155 | 156 | ```ruby 157 | pp Inscribe.counts_by_content_type 158 | ``` 159 | 160 | or in vanilla SQL: 161 | 162 | ```sql 163 | SELECT content_type, COUNT(*) 164 | FROM inscribes 165 | GROUP BY content_type 166 | ORDER BY COUNT(*) DESC, content_type 167 | ``` 168 | 169 | resulting in: 170 | 171 | ``` 172 | {"image/jpeg" => 397, 173 | "image/png" => 218, 174 | "video/mp4" => 200, 175 | "image/webp" => 109, 176 | "image/svg+xml" => 50, 177 | "text/plain;charset=utf-8" => 16, 178 | "image/gif" => 9, 179 | "application/pdf" => 1} 180 | ``` 181 | 182 | 183 | Let's query for the genesis inscription no. 0 - the mimble wimble whitepaper (6 pages) 184 | by Tom Elvis Jedusor: 185 | 186 | ``` ruby 187 | ## get mimble wimble whitpaper (no. 0) pdf document 188 | inscribe = Inscribe.find_by( num: 0 ) 189 | write_blob( "./mimblewimble.pdf", inscribe.content ) 190 | ``` 191 | 192 | 193 | Yes, you can. Learn more about confidental / private transactions with Mimble Wimble: 194 | - [mimblewimble.pdf (56 kb)](https://ordbase.github.io/ordbase/mimblewimble.pdf) 195 | 196 | Litecoin triva: Did you know? In May 2022, the Mimblewimble Extension Blocks (MWEB) 197 | upgrade was activated on the Litecoin network as a soft fork - 198 | providing users with the option of sending confidential / private transactions where the amount sent is only known between the sender and receiver. 199 | 200 | 201 | 202 | Let's try to curate some sub1k image collections. 203 | 204 | 205 | Let's save all pepelangelo .JPGs in the collection for easy access 206 | using `pepelangelo1.png`, `pepelangelo2.png`, `pepelangelo3.png` up to 207 | `pepelangelo44.png`. 208 | 209 | 210 | ```ruby 211 | nums = [ 212 | 207, 208, 209, 213 | 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 214 | 220, 221, 222, 223, 224, 225, 226, 227, 228, 215 | 236, 237, 238, 239, 216 | 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 217 | 250, 251, 252, 253, 254, 255, 256, 257 218 | ] 219 | 220 | puts " #{nums.size} pepelangelo(s)" 221 | #=> 44 pepelangelo(s) 222 | 223 | nums.each_with_index do |num, i| 224 | inscribe = Inscribe.find_by( num: num ) 225 | write_blob( "./pepelangelo#{i+1}.jpg", inscribe.content ) 226 | end 227 | ``` 228 | 229 | resulting in: 230 | 231 | ![](i/pepelangelo1.jpg) 232 | ![](i/pepelangelo2.jpg) 233 | ![](i/pepelangelo3.jpg) 234 | ![](i/pepelangelo4.jpg) 235 | 236 | ... 237 | 238 | 239 | Let's save all (ordinal?) punk .PNGs in the collection for easy access 240 | using `punk1.png`, `punk2.png`, `punk3.png` up to 241 | `punk100.png`. 242 | 243 | ```ruby 244 | nums = [ 245 | 458, 459, 246 | 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 247 | 470, 471, 472, 473, 474, 475, 476, 477, 478, 248 | 487, 488, 489, 249 | 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 250 | 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 251 | 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 252 | 520, 521, 522, 523, 253 | 531, 532, 533, 534, 535, 536, 537, 538, 539, 254 | 540, 541, 542, 548, 549, 255 | 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 256 | 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 257 | 570, 571, 258 | 580, 581, 582, 583, 584, 585, 259 | ] 260 | 261 | puts " #{nums.size} punk(s)" 262 | #=> 100 punk(s) 263 | 264 | 265 | nums.each_with_index do |num, i| 266 | inscribe = Inscribe.find_by( num: num ) 267 | write_blob( "./punk#{i+1}.png", inscribe.content ) 268 | end 269 | ``` 270 | 271 | resulting in: 272 | 273 | ![](i/punk1.png) 274 | ![](i/punk2.png) 275 | ![](i/punk3.png) 276 | ![](i/punk4.png) 277 | ![](i/punk5.png) 278 | ![](i/punk6.png) 279 | ![](i/punk7.png) 280 | ![](i/punk8.png) 281 | ![](i/punk9.png) 282 | ![](i/punk10.png) 283 | 284 | ... 285 | 286 | 287 | Bonus: Let's generate an all-in-one fam composite in 1x and 4x. 288 | 289 | ```ruby 290 | require 'pixelart' 291 | 292 | composite = ImageComposite.new( 10, 10, width: 24, 293 | height: 24 ) 294 | 295 | 296 | nums = [ 297 | 458, 459, 298 | 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 299 | 470, 471, 472, 473, 474, 475, 476, 477, 478, 300 | 487, 488, 489, 301 | 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 302 | 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 303 | 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 304 | 520, 521, 522, 523, 305 | 531, 532, 533, 534, 535, 536, 537, 538, 539, 306 | 540, 541, 542, 548, 549, 307 | 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 308 | 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 309 | 570, 571, 310 | 580, 581, 582, 583, 584, 585, 311 | ] 312 | 313 | nums.each_with_index do |num, i| 314 | composite << Image.read( "./punk#{i+1}.png" ) 315 | end 316 | 317 | composite.save( "./punks.png" ) 318 | composite.zoom(4).save( "./punks@4x.png" ) 319 | ``` 320 | 321 | 322 | resulting in: 323 | 324 | ![](i/punks.png) 325 | 326 | in 4x 327 | 328 | ![](i/punks@4x.png) 329 | 330 | 331 | 332 | 333 | 334 | Let's query for all text inscribes (with content type `text/plain;charset=utf-8`) 335 | and print out the text: 336 | 337 | ```ruby 338 | inscribes = Inscribe.text 339 | puts " #{inscribes.size} text inscribe(s)" 340 | #=> 16 text inscribe(s) 341 | 342 | inscribes.each_with_index do |rec, i| 343 | puts "==> [#{i+1}/#{inscribes.size}] text inscribe №#{rec.num} (#{rec.content_type} - #{rec.bytes} bytes):" 344 | puts rec.text 345 | puts 346 | end 347 | ``` 348 | 349 | resulting in: 350 | 351 | ``` 352 | ==> [1/16] text inscribe №400 (text/plain;charset=utf-8 - 2 bytes): 353 | 1 354 | 355 | ==> [2/16] text inscribe №449 (text/plain;charset=utf-8 - 2 bytes): 356 | 2 357 | 358 | ==> [3/16] text inscribe №530 (text/plain;charset=utf-8 - 2 bytes): 359 | 2 360 | 361 | ==> [4/16] text inscribe №914 (text/plain;charset=utf-8 - 10 bytes): 362 | christian 363 | 364 | ==> [5/16] text inscribe №915 (text/plain;charset=utf-8 - 9 bytes): 365 | litecoin 366 | 367 | ==> [6/16] text inscribe №916 (text/plain;charset=utf-8 - 2 bytes): 368 | 2 369 | 370 | ==> [7/16] text inscribe №917 (text/plain;charset=utf-8 - 2 bytes): 371 | 0 372 | 373 | ==> [8/16] text inscribe №918 (text/plain;charset=utf-8 - 2 bytes): 374 | 3 375 | 376 | ==> [9/16] text inscribe №919 (text/plain;charset=utf-8 - 2 bytes): 377 | 5 378 | 379 | ==> [10/16] text inscribe №920 (text/plain;charset=utf-8 - 2 bytes): 380 | 1 381 | 382 | ==> [11/16] text inscribe №921 (text/plain;charset=utf-8 - 2 bytes): 383 | 4 384 | 385 | ==> [12/16] text inscribe №923 (text/plain;charset=utf-8 - 2 bytes): 386 | 6 387 | 388 | ==> [13/16] text inscribe №924 (text/plain;charset=utf-8 - 2 bytes): 389 | 9 390 | 391 | ==> [14/16] text inscribe №925 (text/plain;charset=utf-8 - 2 bytes): 392 | 7 393 | 394 | ==> [15/16] text inscribe №926 (text/plain;charset=utf-8 - 2 bytes): 395 | 8 396 | 397 | ==> [16/16] text inscribe №970 (text/plain;charset=utf-8 - 14 bytes): 398 | Buy #Litecoin 399 | ``` 400 | 401 | No quotes, cyber philosophy manifestos, collection manifests, or super sekretoo nuclear launch codes found in the text inscribes. 402 | See the bitcoin (btc) edition [Sub 1k - Inside the first thousand bitcoin ordinal inscripitons](sub1k.md) for more fun. 403 | 404 | 405 | 406 | 407 | To be continued... 408 | 409 | 410 | 411 | 412 | ## Bonus - Let's export (save as ...) all inscriptions content blobs 413 | 414 | Let's export (save as ...) all inscription content blobs 415 | to local files with (mime) content types mapped 416 | to file extensions (e.g. `image/png` to `.png`, `text/plain` to `.txt`, and so on) 417 | and use the the inscription number as its filename 418 | (for easy sorting padded with eight zeros e.g. `0` to `00000000`, `1` to `00000001`) ... 419 | 420 | 421 | ``` ruby 422 | require 'ordlite' 423 | 424 | OrdDb.open( './ordsub1k.ltc.db' ) 425 | 426 | Inscribe.all.each do |rec| 427 | print "==> exporting inscribe №#{rec.num} " 428 | print ">#{rec.content_type}< #{number_to_human_size(rec.bytes)} (#{rec.bytes} bytes) " 429 | print "to >#{rec.export_path}<..." 430 | print "\n" 431 | rec.export ## gets saved to ./tmp/. by default 432 | end 433 | ``` 434 | 435 | resulting in: 436 | 437 | ``` 438 | ==> exporting inscribe №0 >application/pdf< 55.9 KB (57237 bytes) to >./tmp/00000000.pdf<... 439 | ==> exporting inscribe №1 >image/jpeg< 147 KB (150529 bytes) to >./tmp/00000001.jpg<... 440 | ==> exporting inscribe №2 >image/jpeg< 86.2 KB (88223 bytes) to >./tmp/00000002.jpg<... 441 | ==> exporting inscribe №3 >image/jpeg< 359 KB (367218 bytes) to >./tmp/00000003.jpg<... 442 | ==> exporting inscribe №4 >image/jpeg< 57 KB (58398 bytes) to >./tmp/00000004.jpg<... 443 | ==> exporting inscribe №5 >image/png< 4.95 KB (5067 bytes) to >./tmp/00000005.png<... 444 | ==> exporting inscribe №6 >image/webp< 359 KB (367128 bytes) to >./tmp/00000006.webp<... 445 | ==> exporting inscribe №7 >image/webp< 359 KB (367128 bytes) to >./tmp/00000007.webp<... 446 | ==> exporting inscribe №8 >image/webp< 359 KB (367128 bytes) to >./tmp/00000008.webp<... 447 | ==> exporting inscribe №9 >image/webp< 359 KB (367128 bytes) to >./tmp/00000009.webp<... 448 | ... 449 | ==> exporting inscribe №998 >image/jpeg< 89.3 KB (91426 bytes) to >./tmp/00000998.jpg<... 450 | ==> exporting inscribe №999 >image/jpeg< 89.3 KB (91426 bytes) to >./tmp/00000999.jpg<... 451 | ``` 452 | 453 | 454 | or if you look in your `./tmp` directory (depending on your operating system): 455 | 456 | ![](i/export-preview-ltc.png) 457 | 458 | 459 | 460 | ## Questions? Comments? 461 | 462 | Join us in the [Ordgen / ORC-721 discord (chat server)](https://discord.gg/dDhvHKjm2t). Yes you can. 463 | Your questions and commetary welcome. 464 | 465 | 466 | Or post them over at the [Help & Support](https://github.com/geraldb/help) page. Thanks. 467 | 468 | -------------------------------------------------------------------------------- /ltc_sub1k_build.rb: -------------------------------------------------------------------------------- 1 | ##### 2 | # build ordsub1k.ltc.db (sqlite database with first thousand ordinal inscriptions in litecoin/ltc) 3 | 4 | $LOAD_PATH.unshift( "../ordinals/lib" ) 5 | $LOAD_PATH.unshift( "../ordlite/lib" ) 6 | 7 | 8 | require 'ordlite' 9 | 10 | 11 | 12 | OrdDb.open( './ordsub1k.ltc.db' ) 13 | 14 | 15 | puts 16 | puts " #{Inscribe.count} inscribe(s)" 17 | puts " #{Blob.count} blob(s)" 18 | #=> 0 inscribe(s) 19 | #=> 0 blob(s) 20 | 21 | 22 | Ordinals.chain = :ltc 23 | OrdDb.import_csv( "./meta/sub1k_inscriptions.ltc.csv" ) 24 | 25 | puts 26 | puts " #{Inscribe.count} inscribe(s)" 27 | puts " #{Blob.count} blob(s)" 28 | #=> 1000 inscribe(s) 29 | #=> 1000 blob(s) 30 | 31 | 32 | puts "bye" -------------------------------------------------------------------------------- /ltc_sub1k_export.rb: -------------------------------------------------------------------------------- 1 | ##### 2 | # query ordsub1k.ltc.db (sqlite database with first thousand ordinal litecoin inscriptions) 3 | 4 | $LOAD_PATH.unshift( "../ordlite/lib" ) 5 | require 'ordlite' 6 | 7 | 8 | 9 | 10 | OrdDb.open( './ordsub1k.ltc.db' ) 11 | 12 | 13 | puts 14 | puts " #{Inscribe.count} inscribe(s)" 15 | puts " #{Blob.count} blob(s)" 16 | #=> 1000 inscribe(s) 17 | #=> 1000 blob(s) 18 | 19 | 20 | ## try to export inscribes 21 | 22 | Inscribe.all.each do |rec| 23 | print "==> exporting inscribe №#{rec.num} " 24 | print ">#{rec.content_type}< #{number_to_human_size(rec.bytes)} (#{rec.bytes} bytes) " 25 | print "to >#{rec.export_path}<..." 26 | print "\n" 27 | rec.export ## gets saved to ./tmp/. 28 | end 29 | 30 | 31 | puts "bye" -------------------------------------------------------------------------------- /ltc_sub1k_pepelangelos.rb: -------------------------------------------------------------------------------- 1 | ##### 2 | # query ordsub1k.ltc.db (sqlite database with first thousand ordinal litecoin inscriptions) 3 | 4 | $LOAD_PATH.unshift( "../ordlite/lib" ) 5 | require 'ordlite' 6 | 7 | 8 | OrdDb.open( './ordsub1k.ltc.db' ) 9 | 10 | 11 | puts 12 | puts " #{Inscribe.count} inscribe(s)" 13 | puts " #{Blob.count} blob(s)" 14 | #=> 1000 inscribe(s) 15 | #=> 1000 blob(s) 16 | 17 | 18 | ## 19 | # export all (sub1k) pepelangelo images 20 | 21 | nums = [ 22 | 207, 208, 209, 23 | 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 24 | 220, 221, 222, 223, 224, 225, 226, 227, 228, 25 | 236, 237, 238, 239, 26 | 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 27 | 250, 251, 252, 253, 254, 255, 256, 257 28 | ] 29 | 30 | puts " #{nums.size} pepelangelo(s)" 31 | #=> 44 pepelangelo(s) 32 | 33 | nums.each_with_index do |num, i| 34 | inscribe = Inscribe.find_by( num: num ) 35 | write_blob( "./tmp4/pepelangelo#{i+1}.jpg", inscribe.content ) 36 | end 37 | 38 | 39 | puts "bye" -------------------------------------------------------------------------------- /ltc_sub1k_punks.rb: -------------------------------------------------------------------------------- 1 | ##### 2 | # query ordsub1k.ltc.db (sqlite database with first thousand ordinal litecoin inscriptions) 3 | 4 | $LOAD_PATH.unshift( "../ordlite/lib" ) 5 | require 'ordlite' 6 | 7 | require 'pixelart' 8 | 9 | 10 | OrdDb.open( './ordsub1k.ltc.db' ) 11 | 12 | 13 | puts 14 | puts " #{Inscribe.count} inscribe(s)" 15 | puts " #{Blob.count} blob(s)" 16 | #=> 1000 inscribe(s) 17 | #=> 1000 blob(s) 18 | 19 | ## 20 | # export all (sub1k) (ordinal?) punk images 21 | 22 | nums = [ 23 | 458, 459, 24 | 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 25 | 470, 471, 472, 473, 474, 475, 476, 477, 478, 26 | 487, 488, 489, 27 | 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 28 | 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 29 | 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 30 | 520, 521, 522, 523, 31 | 531, 532, 533, 534, 535, 536, 537, 538, 539, 32 | 540, 541, 542, 548, 549, 33 | 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 34 | 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 35 | 570, 571, 36 | 580, 581, 582, 583, 584, 585, 37 | ] 38 | 39 | puts " #{nums.size} punk(s)" 40 | #=> 100 punk(s) 41 | 42 | 43 | 44 | nums.each_with_index do |num, i| 45 | inscribe = Inscribe.find_by( num: num ) 46 | write_blob( "./i/punk#{i+1}.png", inscribe.content ) 47 | write_blob( "./tmp3/punk#{num}.png", inscribe.content ) 48 | end 49 | 50 | composite = ImageComposite.new( 10, 10, width: 24, 51 | height: 24 ) 52 | 53 | 100.times do |i| 54 | composite << Image.read( "./i/punk#{i+1}.png" ) 55 | end 56 | 57 | composite.save( "./i/punks.png" ) 58 | composite.zoom(4).save( "./i/punks@4x.png" ) 59 | 60 | 61 | ## 62 | # reshuffle matching bitcoin ordinal punks order 63 | # 64 | nums = [ 65 | 461, 459, 462, 458, 460, 464, 465, 463, 467, 466, 66 | 476, 470, 475, 472, 478, 474, 469, 473, 477, 471, 67 | 468, 497, 496, 491, 488, 495, 490, 489, 487, 493, 68 | 492, 494, 499, 498, 511, 507, 509, 506, 500, 508, 69 | 503, 504, 502, 501, 505, 510, 521, 522, 513, 512, 70 | 514, 515, 517, 518, 523, 520, 516, 519, 531, 533, 71 | 541, 536, 542, 539, 538, 532, 534, 537, 535, 540, 72 | 551, 556, 549, 554, 552, 555, 557, 550, 558, 559, 73 | 553, 548, 563, 566, 560, 562, 567, 571, 561, 570, 74 | 565, 569, 568, 564, 585, 580, 584, 582, 581, 583, 75 | ] 76 | 77 | composite = ImageComposite.new( 10, 10, width: 24, 78 | height: 24 ) 79 | 80 | nums.each do |num| 81 | composite << Image.read( "./tmp3/punk#{num}.png" ) 82 | end 83 | 84 | composite.save( "./tmp3/punks.png" ) 85 | composite.zoom(4).save( "./tmp3/punks@4x.png" ) 86 | 87 | 88 | puts "bye" -------------------------------------------------------------------------------- /ltc_sub1k_query.rb: -------------------------------------------------------------------------------- 1 | ##### 2 | # query ordsub1k.ltc.db (sqlite database with first thousand ordinal litecoin inscriptions) 3 | 4 | $LOAD_PATH.unshift( "../ordlite/lib" ) 5 | require 'ordlite' 6 | 7 | 8 | 9 | OrdDb.open( './ordsub1k.ltc.db' ) 10 | 11 | 12 | puts 13 | puts " #{Inscribe.count} inscribe(s)" 14 | puts " #{Blob.count} blob(s)" 15 | #=> 1000 inscribe(s) 16 | #=> 1000 blob(s) 17 | 18 | 19 | 20 | 21 | ###### 22 | ## query for ten biggest (by bytes) inscriptions 23 | 24 | Inscribe.biggest.limit(10).each do |rec| 25 | print "#{number_to_human_size(rec.bytes)} (#{rec.bytes} bytes) - " 26 | print "Inscribe №#{rec.num} (#{rec.content_type}) - " 27 | print "#{rec.date} - #{rec.fee} fee in litoshis" 28 | print "\n" 29 | end 30 | 31 | puts 32 | pp Inscribe.date_counts ## count_by_date/day 33 | 34 | 35 | ###### 36 | ## query for all content types and group by count (descending) 37 | 38 | puts 39 | pp Inscribe.content_type_counts ## count_by_content_type 40 | 41 | 42 | 43 | 44 | inscribes = Inscribe.text 45 | puts " #{inscribes.size} text inscribe(s)" 46 | #=> 16 text inscribe(s) 47 | 48 | 49 | inscribes.each_with_index do |rec, i| 50 | puts "==> [#{i+1}/#{inscribes.size}] text inscribe №#{rec.num} (#{rec.content_type} - #{rec.bytes} bytes):" 51 | puts rec.text 52 | puts 53 | end 54 | 55 | 56 | ## get mimble wimble whitpaper (no. 0) pdf document 57 | inscribe = Inscribe.find_by( num: 0 ) 58 | write_blob( "./tmp/mimblewimble.pdf", inscribe.content ) 59 | 60 | 61 | puts "bye" 62 | 63 | -------------------------------------------------------------------------------- /meta/shrooms.csv: -------------------------------------------------------------------------------- 1 | num, hash 2 | 1, 343eec6884a5be860c0c4b73ae978009f6dd96f82882d56b1fd717da59f64f50 3 | 2, 7fa93ee0c96c70d06ef0321dc1a7f313224b5faf469f74cb23faa18ca49f15ee 4 | 3, f822a81a72c5fcd79028dd61f7c8aaf30ddb86b7557df502a498ff857dc19281 5 | 4, 4575c7015eb5fb7cb9053c850f52efda33da45847ff0441c29d207de834cb67d 6 | 7 | 5, 091a5c36fb5b98c42b364cd44238edd4feff3a8f08aa3548ca190a7665801fb8 8 | 6, 7a467be1abaa2112222a3325ea7733604edabd53c10c6e914dc936d0c6d6efab 9 | 7, 8e242644424762774966a18f587d4c7eafcafad258103615e3a66699596c3f56 10 | 8, 92b6338f6eddd7baa668e5f49bc7dc9e3ac9a040179da943240b029965736925 11 | 12 | 9, 5b53b6dd387f473ff7f83cf075c34aae54c6ef5de372aeeaa0146cc3482a9ee3 13 | 10, b420dc8d802428f176c849ee4037952b1b0f30733546f21f2bdc493f170b8b9f 14 | 11, 205b634a80b6ab3b161fce617fe06906ad0827f95ab3e8f60e22f9d19ac0b834 15 | 12, 7ccdf1ef1af9afac9e460f457eec362807201aa63a874eb17fc295084a565597 16 | 17 | 13, 81f5e317cfb5935fa663e811e7802a605d552ac5ea3ff03258ee565b88e28839 18 | 14, c6dd8584157d07a211d4e874a54b50737dfbf82dbb4a4c9a7ec0d03e1711d278 19 | 15, 7b9a4ae6e4a64a34c5a2db453d58121347b6d9042a97e4bc8d3f62c0dce199ce 20 | 16, 9e9277c235b73ab1058b363562ec6a58abf01c6b3bed87055c8781e815ff5e93 21 | 22 | 17, a04f95d18e87aba3435e560ba53d409f8383766017628e4cd7c1c64f924fbf2e 23 | 18, f7c1017a4738822e8f0ee60377ce4351d2c7adaca69cc60858e5c5a55d82373a 24 | 19, b35497fe06a8f5b9da7cfbedf9a13cfac5fab1cb8ca794d00ee2ef5443bca9c5 25 | 20, 398c43e2dd175b000f85ae68ebf31d027d0ceb42c7860fb9e292922bc6b9bda1 26 | 27 | 21, b8a9c61b810bcef59425af0b17ec0c7d376e49066c6591476df65000ea051546 28 | 22, 0d6144783dc449719ca08616ea8a8c50641773578f8e2cd8e06106e42039fa0d 29 | 23, f4e9e0bbfc0244d66c906c11d3c67cac8bf0a84d78eb430f47946e72842035c0 30 | 24, d4d95bfdb26b4a59a5d4dcfdfad90e0b9fa1cf9d28099c63d5aba42f991efe1a 31 | 32 | 25, 22c27bb55385f44249cd3c295b8cc485e95ca01400796721362ee4dd68ad2d4a 33 | 26, 364aa9c14335c711f6f6da3cbdad76cb7a88fbd76c0c7ed733dc40a62d55a674 34 | 27, 5623274fbf1866825e12b8151ac38b702216b34b7f23bee6abbc20daf633795b 35 | 28, 6ad70214906067d458c470c2bccf37aab380b9f66bd69d2d75d89b5b5feb4f27 36 | 37 | 29, 2c576e10848de5be6bf824300e487a67fff91bf7113390c9dc7e6810ea56546a 38 | 30, d0ac485afae4148e345f87d676f780c975e60bf058e4b1b7a599df7f57a3a38d 39 | 31, 715d1fc0ec949e642b3a3fcf48982e85c4b2e9c16c26269b9359376702e4406d 40 | 32, 76ec5d80fc40437a035c1da1ca64dbdb432f5a92187ef4aca06e81fc2cedc041 41 | 42 | 33, 6ac759efd0a9358949d67c6b457b7ded4f860115fb28f39f5648392adf797e95 43 | 34, 645586718c96e7ca27212ec159de8d3e5b3e704f688a980b3aa73f221675dc9b 44 | 35, 8ebb4924023ee6b7aa1bc715eb730951b881e4b76885c0bfabc67faa408be077 45 | 36, 2ccb5cc650a2977a15a28b1f5ec4391268a96d6c61873d603de9413c5e9bfd20 46 | 47 | 37, dd9335fbc35ecc92dd99a695c8ccb8ad6a6df5bc93f5e86741c6916af3036989 48 | 38, 26672fd1abfe02ad010ec181987ce2ae8819c0ab1a393ea96356e04e10072f44 49 | 39, f14f76c67691a25746aa4ae7464d7f0b650e8e5c3113baf8ce5e9f8e680e931d 50 | 40, 626e30d98fdd2c28da120f0c563fc95df77c32640a67f2eb1654d2b2ccf1a098 51 | 52 | 41, 0c58fc992c57272a04ea21905146994592a0fc778495a1c395a171fa957291a4 53 | 42, 2d529de07d2263d8564cf83eb13bb507af69d7f1169f168ed1481a84c66ce7a9 54 | 43, a752c70c022833f8ad64343a1ef97cea0ed36ce353e6731300c2492cbd4a3121 55 | 44, 3a46842ba613d6c3b32b44b57f61db470a731bcaf8ec774680e3df7dc5a6e201 56 | 57 | 45, 2396e06716ea19c9ce995e4103f8f6a21b9361b1e42b2307361f6f3f24ef58f5 58 | 46, a9b9d4b896cbf319844b78a03c40b93e2d641cde00e97451f0f3748d1fed512a 59 | 47, e84e4c26e1e45a7c68e9d9ad904e4e31b8708f894908eeac75d8118535d590aa 60 | 48, 57ac1d88ef0d96412c933be899bd7cb7a0e9c70be03ba709fe660a10b29e69ea 61 | 62 | 49, 3335d2259bfa7d85a5a9a5da5c11711b2d0a89864d7e054b4b77ffed097832c9 63 | 50, 2cfd743a896a8c9c4081dd45c798754a5be07ce178fa33b1924e73d727f79801 64 | 51, 71bcce488be1f7c82fad1e7deba263b3322827c1647bc67d9c998821d09b596f 65 | 52, dd1da092b75324f902e69852d56f8d157e14287e9a9aa555e0473521db9dc53a 66 | 67 | 53, 34d03fdf17c9203b3da9512e5f56d375f243f588b65b779368e59591f50e24e0 68 | 54, 5a924735a950b0b3c28ef20384284b61de5bd21e404f6213648d557992460701 69 | 55, 94a170e6b11bad99ba68392e495350749d5778d5acefaaf0f10a307dd0df84a9 70 | 56, dd47b9d6ccb3d0f984d957597abf0e070683add958a066f8a249da878520b833 71 | 72 | 57, 66a2faf90a8e467c3962210ece3325e412e4b499adaf87d16ac01959316f98d7 73 | 58, 931c6bf217972b31fce4b0a0f51c18bc1a2851aadcc7eeb700860e2bfdf8b408 74 | 59, ba5693355937cfcd086a124344ceeb4d6e9fa5d86d854701ce8fdd867cc29cfa 75 | 60, b79da5d3242a715826977d02534ebda2694cec691fffd083815e8ab79da0c351 76 | 77 | 61, fce88c5b244b98b7e80736563298e8e3ccd264216b49178632058604701d907c 78 | 62, 0ea363f22430b1361202193e65f5521c7e59da1afb3ff0b470476ee4d6be1e03 79 | 63, c9cf64105b85227f1ecde7b9b224fa88e9e121e74e57c4a9b63dabea42b9349f 80 | 64, 8cdb2a34b5ad1f79e20ef4e6b6f6025ae12c7bcf45e8c287f493b1aa8f6fe3db 81 | 82 | 65, 4ef90c81dafa589182604d3dfb5d28081d4ecd299651d45e1ffbb1e0f20092ea 83 | 66, 41967634ae77b367add602b75e4283a302c45ab92d5d4d7930c6aecce5bb5e69 84 | 67, 19a544c6aa219240c920970ad15dbf726f65af075ffb2885ea4338b3010b71fb 85 | 68, cccf0f172866d9d2436e89f7e9109b6add1923e8b5153a792497e2f38e701f62 86 | 87 | 69, cf0ae90b17702552ccce7efb41f265687cd54e195c630288a8bff8663c0fc3b9 88 | 70, 460665e07172101977194f1763b0229b314aa7ac3db039e7a41c718045215de3 89 | 71, b2c6b73557ba346cda9002d8da1bda371f80c759ff67a2b5dd7931f5c2b57f44 90 | 72, e517e3990b16851d60e35d3f43232c9cbe22c0a908e2356c57f82bfeba251b14 91 | 92 | 73, 3e3c7b1a158e1ab8a1f6614b0a57883553a27d3576b802eacf0abcdcdf2e83d3 93 | 74, ba2cdb00e24c991960bb8e806cf4d358958aa942e13bddb54d5361cf12bb3c64 94 | 75, f45c07eb4a98b0ee9524ba1e17290a3ccd7b95d4a4f3bd429849d77612bf50f3 95 | 76, 45e7c555861396d0c8cb828ea2079019b6ed4df019704ea7ed400c81369c3d82 96 | 97 | 98 | 77, 3e8ac82edb9648d983470e465af36aff8929f953b1af0ac596ffaf2755c42fff 99 | 78, 868699ea590fdedd4835ee92090287a5b4296a211d275e0dbfc5d62c23246c3c 100 | 79, 7a1a04744e46214a96fe2e0a9532606d0592145cc80ebae9012983d9fb954d86 101 | 80, a78ea788085e1d6b69cdb425d3b084742685aa6daaa641c345bdbd3f450cd291 102 | 103 | 81, 67bba1bb6d14937a1ecbc5082065f183bec033f76189bf8e9d1edeb6e9dc3dd2 104 | 82, 02f1cbdd1c5f1dd8e0e0906ea7cdf432cc4e3d05391216b351e49a40cdcfc8b6 105 | 83, 2381a49646ca96d9af04b8e0a9ac08950bfe53a98bbe072902ed1c21ffd84b61 106 | 84, 84d33199546f3ccde76733385271f809ad5087c236cc935a0619872953cfd2ec 107 | 108 | 85, 27d3c39978045ef11d6a8ef1d7d24efb3e5262c08f03ec0bea6baa07b5ae4ed4 109 | 86, c46bdf4b8ca2661b9833e363ee8b85cf27dc8dfaf1b14ef635d82ffd4ba8dc6d 110 | 87, 9cbe086d9126666deb33549e2ad9673202ac069705da81755390957e85ed3ac8 111 | 88, d9524803bc414683d2f2baac9bd9962c2f05da3f7cb777a2afaf55bbc9db09af 112 | 113 | 89, 91bce5a66c02fe7dd6516fe970d9a5d3a0a9364da28932780bc980bf8cd01b05 114 | 90, 5ad4a3d37d4bbbe754ea2feab370adbf3a8d4853096b8d0d226a3cddf87486ae 115 | 91, a81c6bf2c9029309804bc95793ebb7bae7a9ac133ef42f29784695064cfc2537 116 | 92, 1c394069dd49eddec53f74bc7b308de72b093e1c3ab7f018f82bdaeff9fb9a91 117 | 118 | 93, 954a2f726cb7df752f02439593e2bfc9982c91216f12eeb6eacbf7c81a2cc171 119 | 94, f38395d7beb7f8ddc60ea50dd594e852c1757017a097cf470bb7c7a4f83a3d51 120 | 95, d95d0d80710812cc2887037e114a933bb7cb82de28644f13e733785cfe4bf9f1 121 | 96, 331311396d3bb0f634c10cd4ade404f0848c9465d6e7ae8590f58693a65347c7 122 | 123 | 97, 4005cbd7c123f84d3411de8ef7fbc209ba8d32ba6353bb34812e893e9393581e 124 | 98, 134c73b6ac202381ef54a1de19691f0edfca9277872198a992b95e7108b64b79 125 | 99, ec025207ca78ca9414f450d5dbdd74e0b5fa115f1944ae9c8b32399b6c456218 126 | 100, 0b500e094d90c759795d07dc17497083a622d110d8fca4af7d4f4e45fe96ec4d 127 | 128 | 101, f11c349c5c448446ba32bb331f323930be7012331a2b78435acf4ff284dc36a6 129 | 102, 6c67c1dd37bbcd8efcfd4d70e3acf65b42d0eee4c9f220c0851809d04ad99080 130 | 103, 0b9c8fe23982a1daaf518e6d1ec6fb9272a3f749fd0063563d40c0279240d698 131 | 104, 51a2e01342256154b768ece5b0bbe2f909de37a700b3c29a3a1c1dac78ad11b4 132 | 133 | 105, 5d9d5e1d311e06c0ee61562efc953bb37c4edeab30ab0fb490dc5c988fc255a2 134 | 106, d22c6bb0f00a849f8a50393c0f3c5fb7a49e9c26d0353a8ccacbaf007164e473 135 | 107, 3bcb4597f744b5c9dd3e11dcc600d620104af177af8cea99f650d73c3a4bda41 136 | 108, 35d4aa5f08eea21b321fad8cad67cd824714228afe2ae7d583168488e4e5b213 137 | 138 | 109, efe2d66dc478e3043f41c0a0bc01050a023639419a101623e6c7fde7073a0582 139 | 110, 19a6aabbbdd950a169e34619030703ddc39ce94d28cbd55225c1d79da38df134 140 | 111, 6cd881184fb7db300a552aee3cab96333ef97cae26a6491120c9ddea63e34acf 141 | 112, a1842dbacfc65b960a935e9e1d97f35b169e5408691eeddeab3bd6a233d17d15 142 | 143 | 113, 55da161b6119267880081d56540a9e1f8847bf4b9ebf037dda861856fd9181d3 144 | 114, 4adf5b9485aac558343cc199c4fab36a3b868d403decbae9af28625084b8ca55 145 | 115, cba9cc735a548bb7332a26e7ad9a9b011818c574b9f672e6cd7bc77e24d12e17 146 | 116, 320c8777db653ed3496c87806e8c72ffa75b4e415ce306e710326f5894fb3ce9 147 | 148 | 117, 57814518745f69ca4e882158182a377d9213acec39608f8ef90bcfb8e180d52a 149 | 118, 6e5895e3148c248942ada6d45441393fcf83697bd3ccb1c0c7998898c3b674c2 150 | 119, 43728a9d0f4190b46b9bd4b62eba022efb4c0386265677aca5f3bc8de15e80af 151 | 120, c519015258238a274d78e49a43b89895c7e1bff6066aa533eec650de7071eb77 152 | 153 | 121, 59d5a5592a79094ce1bb50dcdb03ff58d0bb7c86271d7c4a92dab793a102367e 154 | 122, c242382341eb7185554ed66ac2d43d09a201a04a724205f0306aa408bb3f61ae 155 | 123, 3077492105d732e8791a0fad2bd5e87fe70b373d455d3d3c788f12889de82b15 156 | 124, 0d2cf8713824e9f087856982513ffa382688761061e8aca652e6a204ee4df034 157 | 158 | 125, ee5f521e20f3359cf0fc5bfd508393e92521125178ae5f44417e16935e1942b3 159 | 126, e82d3e69fd843ede2e47e5ee2c6d2ae1165699f746a7a4a8dccaa6ebdbfa938d 160 | 127, 24904eed65da763b3a23135ee78fdde767f58b0dff236ea493a8271ad183673b 161 | 128, 50496d3d3c2d58321bde165f623384a70b9956838f669776ca443ff200a0224e 162 | 163 | 129, 6d071c7c58e1a201057f0c561c91e023f0d713f15141f26aca617eec62b5029a 164 | 130, 717bf49710e44887c51285054b30c7444762a4135e195469310da1b38e671289 165 | 131, 4ac1afdcd285e6f58b365345617f1daa122540600d714c3017dc721359ae4947 166 | 132, 98e9b9fed44cbf3ae0f5377aada7c56d7f2edf1125163338c34e4061c57f72a1 167 | 168 | 133, 45fbb0b8cdb945bf7ea959617be82421a4475faecd091d810a453faf80c8a7c4 169 | 134, 69c882d22c57a5a9bce097da9c32d0c7bdd975167a5fc176998fee412e6ed72f 170 | 135, ac6e36b50b3faf3ba248fce1309348d7bd3b4e6b99d244e7d5d63c0a1da309d4 171 | 136, 5bd8f6cc35a4ce1fdecd763b95ce9cd7713d173a7676af729f8c8423e8af8868 172 | 173 | 137, 226a3fa029609e972524a951c39df3c6d0530a2bda1ab13b8d1cda64568dc5f9 174 | 138, 3d09feb98c3216070161828eba7bb70f8bb9703cd2b5e5923b07fd8186b144f2 175 | 139, 924fdb0b9e86dc70b9def25c169d741efddf10ab0bc7d60624a927eb51f822da 176 | 140, 9dc218898b351261ceff97cb0e36456593de2274fb6768028efbde93866be046 177 | 178 | 141, 1f1b6d748dab648e8b29ee55493a789781177688a54e7fb91107eefa9cc0d0f8 179 | 142, 1c5ebc91b12f5691ed07b6d6f67459e7b703e6b30d9bbcf71431810b2bfec845 180 | 143, e5af2efbbf7affbaf82dcf8df4e3d43785ac0e9fb1a65ce00dce29c7430c8dd7 181 | 144, 173913ede2448f2207e622f8a35f8f541b6c27119121783e734da4c063b8e4ad 182 | 183 | 145, abc3aa99ebd9b16b80665f6c5313a4999af6235e9ce9aa200f9f04dd88982dab 184 | 146, 66a334562700dc9d6254e59665c789e83f20fa287ff597c57f32d3a7015f643b 185 | 147, 7ac0a555ce548c31d5cc214571fa346ec572176c0f35adbc04ec01babe52132b 186 | 148, 41a77abdeae79efc07e3128fee6ee11d2fd946a720a062513e18bc6a1584a618 187 | 188 | 189 | 149, 9b260032312106d0ae57cd366bb8dec75fe1ab09ba211b696642b9e7a2b1d97a 190 | 150, 2a9b3b8997456c84dca62c3e4bc3e414b95a60978709dd3a185cbdc78023f000 191 | 151, d5e909f0bc0b663cfdda96be49b40d9fd634af9649d3a56271c214ee329d1566 192 | 152, 6f02c39ee2d4153abaa838d8a8eec8fecb0668a20d019f81e7124effa7a6c252 193 | 194 | 153, f2e4ff4b89a6975cb9883763af0f235763aa2645bd98bedfa9e9b9ea6300c4b7 195 | 154, 95cfe63ab7d428dfa013bbade475f2bdc129d854600123a549e9bf6ae0f7a9e8 196 | 155, 9a02c827f38d24bbeaae9946edb81a649af0d1ee630d8dd5d3215b18509ca37b 197 | 156, 1fd7e6045e85b181e62cfb72482c193f28f777a7f1a746d1966db06b1c8b1a48 198 | 199 | 157, 91574a16a9355e9117d61b7a116da72c2895e422d692ef39d3e4628e7350a344 200 | 158, 09af0a09fb0e4c99c71b1346c60aaefef05081c74e00b40a79162dac3b664959 201 | 159, 8ddecc71e67c1dab1831f4c0decc6cdd9ffd1ec813317def95cb647ce99e872c 202 | 160, f15223d57a1869da91f0c9e98cd7e67bbdeeadca213b2b11ac2cfa1845c79a7e 203 | 204 | 161, 8bab83c8e596363952ad161afb7b35e77923317fa9ffcce2e5dbf7bf1c550319 205 | 162, 6182f132479914419bf7195721ba604d72b7aad37e67fd805b6a066b6bc2904d 206 | 163, bc57adabf4a31780caed9185d1b87a45b5130ff9aa19511df14e6d5c94980efe 207 | 164, 758fcc97191ca401cdd4c7bcba1ad04b75f2c5c1dac5c448d63e120eb402611d 208 | 209 | 165, bf8e46f6c13f667ac9787288506e67e5f47b371d936bbed4eed787ce4ae72b0c 210 | 166, 8693d704b42bb538bf47e91cf438c5c012870ce2d2257c9e7cdc17bfed6771b6 211 | 167, 2d797707e33431918a88060c4dce96f0a226812ceb8ee3541b56d264a09d87ae 212 | 168, 6f86ec28657fa0a9e11d360f458f9b3a03c99f7029c65f067afd93f54623215e 213 | 214 | 169, e8c088c6d212bdbcfcd47a92f7b67014c78b351f3bb29182bb4972ebed8b0b6e 215 | 170, ebec480ef6cd87e5ccfe01c9a86a6d196133672b76a4ddf4721219149a160fa2 216 | 171, 94fc5cb3d543723bde1c387a96a97ae42617cf6881f2832f2b56388ca8121854 217 | 172, d2b7021d93ad49150f5effd49fd6e4cac1907092b0a1d9d95f70ef28a7934954 218 | 219 | 173, 54aab528257622031fb74825128df60ee5430e63e18ef1fe6d405abc9583ef22 220 | 174, 193665f1df9a512a312ab14a22dbbb25587f2a56097b663d08a6dda4fecf0783 221 | 175, ae8d2b160e62f13691540102fb219d6b7df242c16ce5bee3df15410dce7dfea2 222 | 176, 7e8a6c643be0af91ffd30194199eb565e3a9e2f94ee0df93e31ac8b5e876c45b 223 | 224 | 177, adc362f628cd89b0aec0112d91359a8dec3f5ce7de87d387fc9308552ef871b6 225 | 178, fdbc67e47f5279dc768c4f0d1f19526e29763adcfaa496960ee9fa02ce92b8b8 226 | 179, 6c8fa369e3e0cfeebe13bed40fe4daa68389766209c407c35e2865ef8f8052cd 227 | 180, 6cb8143f73457355110b2c4a919e1aa27b1b998804ef0a75f5f3d8c3eed9a70a 228 | 229 | 181, 20a77bc7cf7c14f48a9bdc6db15f88d70b93d8d632803dd2e034e0624baf1cbe 230 | 182, 17b5ad30ec2f5d05fbe90844e73701c6dc498cfb08b98f5fbad8092ecad57632 231 | 183, 384ddfa001665e0901dee1c8914ece31e0cab49553c6497225d5f51a10356c35 232 | 184, 75c16bf4d055d16ced7fbde44a7aa0becf8edbcee35f8fd487495d681b30fc7c 233 | 234 | 185, dd1bf486727bf621d92ed9532bf8fc352dd281a0809abfe4030caaf1a627b549 235 | 186, 3067fa383c71024fc04614b1524d7f13b408839d8f2b18da47db31437b52edaf 236 | 187, 6559f573affacce09980893070779ccfca02adeb993fecee48077fb3b3aaba5f 237 | 188, 761842422ab39a935e75b6fc05a7e493d8eaaeaabd46edacda612fdea876e3d9 238 | 239 | 189, 88b397f15f19c102727feceae78b3f38e8e6020e5e6f1a4d09ac51855c8f4ce7 240 | 190, 6ff8398d3a08eb32c8055dfbafb5892e46b8b10e22f4b0ac0f1cc917ca452858 241 | 191, d2bcb77f3699b0ed577a3bdc2807bd3520e2aefe24941bc9eaf33775614b7f82 242 | 192, 4b7895cd4b52a7e1c7450e5ebc9bafab463df80ee72bf316dbd4953a3987f63d 243 | 244 | 193, 42597b50ccd93a7e72b8140ead06e8848e6404b1ca7173f229c49a4c4d32df2a 245 | 194, 25ecf2b638a8dd9237f5389ceade0d2804e5e0504d0c8e17ca59ebf45259099f 246 | 195, 27f8a3913d3e1e9b7210a0bfd04fa6dd7d86ab8abd1be75c9ddb22e21a591bd9 247 | 196, 5cf2abd9fe6f1878ee29f317d54e2ca2e5a46ad0417edf8c7e19a5edf0bcc818 248 | 249 | 197, 759bec984fc04e4b045701b3efe922959932323b925ab4c92af09758f616830a 250 | 198, c588bf282a7b242ae58723d87d48dd72d0d3846078f4b60779a30f052b6c2335 251 | 199, c6ad4caefc07bba573542bae792950256b17311d55e573f40842bb824154550c 252 | 200, a0e3c7bf546e8edefbd1674341ea93ef3c76460c9d7821d606bb228806fb67dd 253 | 254 | 201, 7bad6b00873d673a48a137a8baaab1131f342a5ebf446c17660fc85da2cf4f6f 255 | 202, 6361430a01b6f827518618acb1ab53257fd8decfb9cfa8d9170045a1ece954ec 256 | 203, e714968924b347054534c5186952c0f976808a875a5f2614943e4f1d52abed9d 257 | 204, 75fccb856b6c44f5611c083bd7a66252ebaa97127b76f9ea89c9a10a6535bf29 258 | 259 | 205, ffa15b4c691d92b3c21128e7dd73c7311bcd06182c60553abb4a90b6b3c0a537 260 | 206, 7fdcf91b6a1940489ac69aa94d381ff37e896908898d2b1c00aa0774b6a78bef 261 | 207, 1d7cd9ae89616754a8429de7e28d1d7bffea85b8ccc414a90799685e8e9241df 262 | 208, 0f0fda8c178daea2a2a4a2a8daafc79812a277f5955720e9c78891d67e07a255 263 | 264 | 209, 4843cf582cd8d354bee438268aa67f25d3974e63ccf042bf23bc32df6049120e 265 | 210, a2c3d36478198914f8e36903bb5a4de7c65e66510a651cfbb0399b7417ac6cb5 -------------------------------------------------------------------------------- /meta/shrooms_inscriptions.csv: -------------------------------------------------------------------------------- 1 | num,id 2 | 1,4274d9590540aacf296bf2c7b4c77c6c29890c3482e91f23d0f88259cfe06ff1i0 3 | 2,3e09304a3e95dba5462bd7eeba843b9de6fdb4b0893d9d76b1069d4ef403c963i0 4 | 3,7dd81997ea80ada5686ae16752a416c741674bc881b7d3331f13f1265ea6bf7fi0 5 | 4,80c50933106c8fc99e245edacb5241a3abd191b192cc891ef5ac0c27e61ed749i0 6 | 5,f304c1ddd245cb093c59723baea1ed181ffc5a8fbb80394d451bb8a4575b82efi0 7 | 6,e531de2dd25c95b18e07296b66ddf707b9f55fc0779f373d698e8de1af080782i0 8 | 7,dcbea41c522c8c2ad74080483df45a256a804839297e8eff09b5681219aed5a2i0 9 | 8,3e5fc1666c22d0f4977fe8d971f04276647a66f02a1fe0ae5254a55d58a1f988i0 10 | 9,30820e9ab35cfeb26df2fbad76c5ccbb21110e167410f56ff37613fa05cb0697i0 11 | 10,6556ae0a6ab51a4aa4028a137a5e9119b174e1b3ca5005a17f2e0ba7ced61602i0 12 | 11,7dd995f0e4c0951152df68f42674f75f94baf7afa719c8636d65c5353c18c379i0 13 | 12,d37127bdffed4d79e9efb6a23534d9346f15c051b6be9d5d68db42178fa7d636i0 14 | 13,a904cbccf237096d596d7e45f8712a80e6bf2f73c6b172e2ef2b5b4feceadef0i0 15 | 14,31523e5ce7d50081aea13cc2a52bded76a694ea5be7f7f78e083dba33af2abf9i0 16 | 15,2b1243abaa5a1d450d887c632ab0d38c5420a9f313cbbadec2c0b8cabcc5dbc2i0 17 | 16,2b8418c9cea4f1e488e804b7596e2fd607a74d5dbd1fef071a02194a1884637ai0 18 | 17,7805eb9d8552a595f43a9c110f3e386e40c88fddf0934e92b2ce69403542f4ffi0 19 | 18,9a41d4bab8f932c05f2622854320523666bdbcb63094d82b1280728de081210ei0 20 | 19,e417bb379bd336e6e6690dccb1cfd360467bf7c7eeb863b349afa1f62f5a14b6i0 21 | 20,3398f77cc5dc275aafb9e4bf651eb9f1a77502afdcebe6ee6ee8db5044e970c1i0 22 | 21,9bfe88c4d5ee37591d1ac542f7d37823de63747a5f59cb6e08091bff6f5c9ef4i0 23 | 22,cab1a21c5ade497d260a6d72f27d3059106303bd31e1bfabd42beea8fc081acei0 24 | 23,5a0a8b1774c598b5765ff9445da99b8f4e7cc006e40352362fe0e7de550d3093i0 25 | 24,90aab09bb4dbe6bb04af8a75bf8df58580df5c38917163f95697ac984f874ddai0 26 | 25,3dcb88953ad900ec6d04d779740fb40b8a963de62fc0902f60ac27bc836ea782i0 27 | 26,f8ee04ef705579ccee9e3b94ab5f2e08184e3d8632267e8e324c371cf3b6759bi0 28 | 27,53170e742b954ccd094e414395e442a663633ec559016fc16c93910ef7c9d638i0 29 | 28,598ba2289efc7203940f9ce0fba0f63f61b3a4247af881744d15c0256d088c2fi0 30 | 29,40cea59a137140298d398c364d462d729c810bd3efa2a33847f16ac64dec465bi0 31 | 30,ff2019b88eb72ffad01153557acb3e2541af657e7bccc6d045d25cacefc62dbei0 32 | 31,280b178b820f77fb24f32a83eecddbb7d8410263de6fffb75e6e1734906d5841i0 33 | 32,3bc36717763bd5393d35676b25684757df93a8b943cdc26d14fc6981477282b7i0 34 | 33,13cceed09a0de0a2c77c8702605d1d3e534697954db0b16de9df77c7e0e3a616i0 35 | 34,87fa13ea24617e1d1491372475ca547d1f6106fb785c62322981f9597d13b04di0 36 | 35,b107e34fc25522655ae4e871ebb3ec34e2b28dabbfea4a03285e766bea3cdc8ei0 37 | 36,040f4431ac036799a6e24784817f22d995aa6d88b6623575658b3e4667df405ei0 38 | 37,0c93f4124753725c245e632e689aef7307f7aadd1dc39cca97fd5f3fc2525d4di0 39 | 38,e0d1590ce3053ec9c150818a24946e81af3b431f0136a57106212e187712c69ei0 40 | 39,4aad974e926a933575df545cc7cf5bc5f7510b804bdc8547d700ccbbdeb1d137i0 41 | 40,2e424a279a6d4ed68c06a1f38310d0b4df90d90236bdfba94eaeeaf15370b17di0 42 | 41,5800c7d8d0a2dd63b76c62ac87c16ebe60516d31d2b4debca99e2ea4f706fef0i0 43 | 42,d663a2355c743d91723f68a32bf7139216bdf3da1fe0fd481501e6860e35d7bei0 44 | 43,5edbc4cddee9c458cd013f33e85b338113a48d67def613bc7dbe67b379918dedi0 45 | 44,3bd8192138889726be9b5cd2ccc427bddf46c30427a68bd08bea756f80a7e1aai0 46 | 45,e987d38a0a7aabbff2128bd06b4378904bcb88882d1196aa963744690e662758i0 47 | 46,81fa29c383490ccdb7c7d9da9fccb7ec1e2669b701be9a212343002d3984cedai0 48 | 47,b0a236407a270720cb4568dadd99a1fceeba52b32c1e8a33a60ff98f12750eaci0 49 | 48,11a022fadd4d4ea2c802dc8fe79dcb356a24cec51e90da5b939276f049733418i0 50 | 49,70739b968ec7e35d5b4e916fa99b1be49053461a7517707e8364cbdb9c485d18i0 51 | 50,bf97367db09c342a2f8bafee0ce78992a2a6432d729cd263c1cf3f6a258631f0i0 52 | 51,17cfc57fe081af688f6d36b1fa528b5fa580eac8786a7d762379abcb3d4734e0i0 53 | 52,8b4a33ff99ec5794ae51fcf2e2d56457318bd721e907f8cfeab25e69d9831fdfi0 54 | 53,bc468a8c8b46e3864be88eb845a3ff5e86595b71a43ab80af165a2621f02dd57i0 55 | 54,8dbc5499f21592d56022f2b97a933eddf9d7a8d0c93bc780760d88d1afdd4c4bi0 56 | 55,047b71f2d612af8f99e0b8981c2f392331b5ab4222c040d4241e8d64892b451ei0 57 | 56,5a357f23ef7345bdd2d65e6338f0ac620555be224d73f79573705194a31dc2d0i0 58 | 57,6fa6825a2dd18082b6e74b0be2116bfc12c26699b25e8cad50728527ff465846i0 59 | 58,0463ac822fcc453f9604dd1213d038e2ebb71602e2fb6d841510f3038f8ff8fai0 60 | 59,4260557fe95e4f61384f6048e96afd9cf21aac62b81fcc0e694f0849651da2e3i0 61 | 60,7d0657e82fc2358d84cad698a4c7361f529c48cd469a28243e465fd36e6c7294i0 62 | 61,e9f692a7a848a9dbd94d7f9c04c7cd5ae0498056489a620ffabd5f97a1d4c0bai0 63 | 62,b77f7fc1de82217d7f637bc3e3cf94feed91c9b7f73f33f463e62f8d4db866dfi0 64 | 63,1a783fe55eb0071d13f9c95b1b714460ef5165dbd7ba8bddbfd6f3f6c830c577i0 65 | 64,e240f5ed2d8b39e8fe36793c481f8d21dd925f8b31a1e1b351ad2ad4667694c2i0 66 | 65,e9ec61aa4225b8ee29f0573f579b2e97d5d5f2f797622d57b54ca6a01d91f961i0 67 | 66,2bd8f7de63d1976642ef703424c9ab0fa702f74488b9b95e7a98c22f37417092i0 68 | 67,6b0ab1ea181d59c3e406a97f1e8212cd8a7bf7c4ddbcab2d7c3c396a8aea0baci0 69 | 68,bbfc37d256f584668ef92ac47f99f6ca7138986f5c697c4224371cc389de847ai0 70 | 69,08c1297ae852be38bd6b65e0d8dcd052a5b25d51fa00698afd41f2a4695413eci0 71 | 70,ddb0b3eacd632f1aaaf98f87a23124e66aaaa31f8199675bf44a12cfcd1873dei0 72 | 71,ea76e6272118ba404c3a6454d64dc8402b699481d3eb880640055b4a31252beei0 73 | 72,208bb4a0441738fe185cc3c50c9f1cfc2cc4eeb0557f2a07fc38755a42751268i0 74 | 73,215c128d8ad6c5ed7765490d12bd372d172a9beb35c1d05bbff16018727c1641i0 75 | 74,a4f2941f25801bfb3fc98162ef1f4ae30fe2cd197635384326ea24efa6d2f118i0 76 | 75,ada529f85c5ff8d4b5250aafacea264844e736589bdf81f4061a22611d7a95a3i0 77 | 76,2e878a0117e1515e7d2ce15a95889108eb8ea37cf6c6652aec10f57ce9f51d29i0 78 | 77,8a8454a0c3d9e7419cf773548a9a85d26c87e2520acb154f67b720c5e851988ei0 79 | 78,ef2f4061ff59ca1c578d211417fc9fc2764be1290588f2c8af417540e63ba35ei0 80 | 79,009fbbbdbbefd023d3585da00686a1605b397d0f4f9c9950d188a79ccb340f5ci0 81 | 80,8f45adec5785ce611dadbdc752bef16361cf3aff4baa53ecf07a5429786dfbaai0 82 | 81,4b8ef551a438afd2c02be3532036ea3dfa634f728211f38d8ed97237bff39df2i0 83 | 82,fc4ee6acb423e2ed6df25ded0d806278db7ae81a56ddd67f072c2e94465b912ai0 84 | 83,0b69e97514d64080c9e402ccfb3796f016dcad76d4babb6b348189d17e6fd3d6i0 85 | 84,ae72e53aa20dca324236d203285a05c4e66000fffe5f4dc1351880f7b1da4827i0 86 | 85,6964e8f582e717d8c9fd4021e50e411c6cc23a9bb7cd65b0983f4833f425c5c2i0 87 | 86,890e6644eb08f0c9bfe747c4bd8302734e9f9b9562fa4063681c3a988a89a52ai0 88 | 87,f400188826e5cae19258fa61755c6e3c4d3f1531be83bda086f6e85aa2977e57i0 89 | 88,dca282c5c3bb60ae491dd89b9fb55f719d65fa83074de63f0bd57bf3a83de318i0 90 | 89,00ea3921b058cb9c03751ae4031e11eb3b998117740c696c5029b6d766e738b0i0 91 | 90,925d034a9f1ce7a3288ce50e30cb4395a159129e8d5f7352058bcebff83904b3i0 92 | 91,5b780d270932584e63a436fbcb54048c9f3e6a4a50703189373e0536bba9d144i0 93 | 92,7b4439f0c0d68dd2d4273612ba39d4e5e4c4a5cd672208b383ac3a54584da31fi0 94 | 93,e642b444828a712d03c92a5d29b5c897015e9928da2a957e6e091782efbb6abbi0 95 | 94,ba015809a9e8a341137fc30a54c579ebc40b9fbd65b267901b26b0f0b23ea2f9i0 96 | 95,e625070f80c521cdc3608025c2df3e47715c71d9f03cbe37d8a86352b24ee5cci0 97 | 96,e289af4f868262285276f17980f5fbd144d4714114f354d7ba93b7669f647840i0 98 | 97,ea60efe376e89e6ab3e49c4c5de4cb36bfa27a5cba9fff46a69ff7c5edfad139i0 99 | 98,2e16ee2f4daaffb382e894ab6175046cf321c60d90702dc59380ac25e101d7a7i0 100 | 99,3862e58aa934622a4a152f9efed05444e9886309f898d28991a38615c140778bi0 101 | 100,5719c104a7482346195204a149252929e4892f71715bb253e3bf052afafc46a1i0 102 | 101,f6510b5330c2067cce46d0c26fbcc6e090efba080e4bbc363d75a95bc8ce4efai0 103 | 102,9d1ac5477000a9b43c8d67e16e9a7578538e57dda74bf250052996473139d53bi0 104 | 103,c97ac24dd72fc55d0dcaa446d857af6c2e90f0cb74d281aecc1f5418a7702d72i0 105 | 104,5a18316af7f5a2f0d7b5fbbb9e1b97db2e8b2506956a17500a7816cd35d90823i0 106 | 105,ac92938a269994e3579e77c737229c297d1435e63751e61483b8e5dc480dec5bi0 107 | 106,456c247c89c2dbb5baabba1abf92cf31996996433544910bf8f7d126229e451ai0 108 | 107,78770cafac70c9d5d03286fc714e74bcf64a6ff5beaac0a242e757235ff1125di0 109 | 108,294f23f487b0dfec9b450f291b1b25e72959458927bd45c1da4d544f2e8aa0c8i0 110 | 109,70444f47314d6c3487ef6e96b622acc9dc008dfa96cb0cd5a0c160d79b64d4c1i0 111 | 110,ef962cc6c2103148adc4975fb78a15ab4b5b9c18a64c84091a26d06e8ba4db46i0 112 | 111,9d898adf571cabd3797ea24b37c99b1f54bbda26bcf19043f3ab2eee05a4588fi0 113 | 112,2cd080640ae1b9a02c20a87a8e715c9c66dac6fd577de0512ad2dd0f7ba23b85i0 114 | 113,9dbfb2c7e604fe7a5cf8e7201a19a12a249a003a152b81bff1410f5b61164224i0 115 | 114,f37323b57709ab75f9a37a4023e209fe66b2f39ea0698d83d4e1dd8054aec016i0 116 | 115,df11ba2e1fa9446d364a29bce49f8ec2eafb0f90e4b1bca86ded6bdea4af5994i0 117 | 116,125a3ceda3e3927e48f5ec787d0b78dfb4fce8fd7a177759b19c10c3f0657895i0 118 | 117,8a0dedf02018ebb30949991976ffaf820ab69943922e45b96f8de7de58083a01i0 119 | 118,b48a401e19e89a1d49f23852fb6452b358f6a7a69afa348978b338cb04c82ea9i0 120 | 119,7cf2b4ed476356cb6ef671a6704c1c30d3054bc3b74f8b0d9935881783083314i0 121 | 120,33a0787027349df1303a63762f921e44b69bc246139a4b3d390131ec61f96695i0 122 | 121,3f54842de03a39d9119377e30ce9cc67023cea605f0b0e6b0da2b459e14dc9b6i0 123 | 122,e9e87e679767f23a63ef379ff7c3c06850bd7542b8dd9eae04851a0f89e7c8eci0 124 | 123,ffbb7bbccb9bf892281f8511a85d7819689c8c60e438b775c5ec5afa440c36b4i0 125 | 124,140e30cffa2cec2bd34672757e41a8ec30a9613ac752e7453729fb18397ba9b4i0 126 | 125,79d29fc279071440ef95c752cc3c3707fda3dff6947983149f3ca242a61d0533i0 127 | 126,36239c9dfbf2673b4e6f60d52380a2afc5b55910dfe1f261bf8cf796bae636d9i0 128 | 127,150c38616ab211194b57789342edd9859a6651319a9fddf7b9720e87ea86c69ai0 129 | 128,9f72d1d52811ff7c6d4d2f72b21a1ee799331c9a26b08e48a90307cab6b3dddci0 130 | 129,f328115d9e5f2ef6b00f360c2016894c26d72d1bfe400111e921167abb0a64b3i0 131 | 130,68892468cfab2df53a24cdd1d00f09b36a5a804311034189412163dca83686d3i0 132 | 131,3349ce090428ea5c125430200f8a8f9f4f692b480682b403778496e310c5c854i0 133 | 132,5b8d7b9f17fa8bda323ffea1109b63b832345c0988d40d2b571d69f59b103327i0 134 | 133,99936d3dac64564aefe4ae01b6aa868cd5f298300bd0e7dc4fe48637756adda8i0 135 | 134,d533670e949cffd7c1f8b4e5929997b100242285c267682d6d5182e18b52a6c3i0 136 | 135,f4e90cf90886efab212d5e04a36cc9a956260437d9facee376b7288b94b89b89i0 137 | 136,d0308b70abc584c023f5981e31f017e520e84cafa36637313a94b8981e0fcb32i0 138 | 137,ac43a63b53cf135c428c334fdef74721f1d8da9f9d5db32787c58eade5c2bb11i0 139 | 138,b18c87526129375e21cac391d0cd1ccad6efba5bf995bbeaed0526adb64d7538i0 140 | 139,dbe9b1cf8b5cbd625c1f4dc4510635be3279554fe1ddaf564b97a7c816b90c42i0 141 | 140,422a57e0792ee23507898c644481cc4dd4772fe93cda1a6c5b6caaff75797430i0 142 | 141,2030cc286f0cdb746e4dc6cef059fd1c89271ee5846fa91c30cd5b508b754053i0 143 | 142,d23da189b4bb2cae029d1b5b5e777e9b1b818e1deb6cb6b429c0377085b259c4i0 144 | 143,a9fa1e27fac4c5d31f7f8891ce8a789c8969c085bffca47644e0de0d8e221f30i0 145 | 144,5d2ccc42f9701dcfa0e75031123a5805f4c2c7e9fe7b031df4cabf1d190f720fi0 146 | 145,fefed83653aa4b1cdca5b5683d3e1431803783fe115134ff768f7da3286dee97i0 147 | 146,93c2e9e66587cf6ea5a26d686dd21a3b83926dd814ac645ace4ef74c7e8490f4i0 148 | 147,41ad938fe4b2cd0f4214e6541584d0d02abce5e6d1aa2bec9cf7a7e9ccb11314i0 149 | 148,d080f9aa909aa6a2e498d5db8326f2a0817d9f27bc20bade8c8e8cdf3c4aa128i0 150 | 149,ca2958730189a077bde190e52d56b644fed866adda6195a95156d83fd1effbf3i0 151 | 150,cfc41ce8122e6e27bb890dfc71bc26ee44700f0cf8106e14d25262a2906acfd1i0 152 | 151,71dc1e2366b5f50d0d52f4a58a7d1f7376727933bcf19ab9650612ed2342c6c5i0 153 | 152,fb9ec168148bfa116e62118260e348387f51efe38b5433c0219b64cd7a8d654fi0 154 | 153,432fb04d8444859e4f1e21daafe29881c6102272be67f9728b99c0defdf80d07i0 155 | 154,e074e1ff25b5fd6043770340af96810b1720a7941f1220fae25b9b817e56af6bi0 156 | 155,eb45e6e3bf723d61179d39ba5a86eba9fef9a8d72ba64a848aeef0ad3217a258i0 157 | 156,b3001e337aea4c3e1e2ed5f3d48da7fa9b5a532c739ac522e490526a33a9c63ei0 158 | 157,be79c9529dd0f89343122404487c7b57dd31a322143149fba68c70a9c79fddedi0 159 | 158,c0fb170c0b298ec9229f90a43ec9388a16aada367d4548ad5723ea837f0fcfc0i0 160 | 159,c2135a6a041fb265b99bf083ac14f13e87f29d519972be0b6839acd415476077i0 161 | 160,f58d9e5003d5c2555e89fe24c582e7e17a00df15e0bc54aec6755d38ceb3059ci0 162 | 161,a48c0ee607a6d2e68e23d75331ff04b00fe2d24e60d20da97ba9b1e98970b261i0 163 | 162,2dfd65c83bcc87c81ca1bfeb5aee5ca68ae54fade1537511c06349b77be11cfai0 164 | 163,b8ade8c27a36ec803f3d698b7495ffc849d806d656c7f710e168ab7767167a09i0 165 | 164,6ee6a41ab1897bdbad61a50d92d3fefc189aa8e620eaf6d3247acdc94784038di0 166 | 165,61401816f7e14a182e73febf3dbb330df328043e72359bf043ec13541703e8d6i0 167 | 166,6a544484c8b45d7fd6a65166e5b1f54d888dfa8ab43bf0bf485229126465ba14i0 168 | 167,3d4b70b5db08e2a0aae8802beb64ba2a969025524167b824e67c8f2b05e5e7e4i0 169 | 168,72221419a168485e49c76b27120dbd8a912e33cfe4ab49c2fab68603030ab69di0 170 | 169,6969fbb0558efae10d2a22c42ed8e23ad9de619f694889b2f842767ebdc42973i0 171 | 170,1bab51f86d723e305308ac2249a18f891101e684c3ea592fcaaff5dfa0bd3032i0 172 | 171,82ae2a94ef175958ebf5d5b1d3d60b017181546bcac85516fedc124a3041df96i0 173 | 172,9f5848c6dc09bf9bb6a3ab1f7d374da8df0b4a468f728abde12b49313601497ei0 174 | 173,a0e8054faefb0e341620280340cc0dd94fd1f6ea2f4dc248917945dfd82c74d3i0 175 | 174,62480b12d9f3010278939bc5ed9275c5d05fb6716aaf6ba30cae2effae6478b6i0 176 | 175,5db578d322fe789a5a59e7717bacf39c224499efe34091e6545eeead36bf92e7i0 177 | 176,b64099dd9236c4092599d57031dd068abdb20cd862bcdd24dbe11d927deb4f10i0 178 | 177,1ed39b3b2f8e21b6798063c3b102b43eaa88ddf1da8198b55f38391ddc57228di0 179 | 178,cfe48aa6252c17b706dc9c345fbed1cfa20351de3cda06d14adc851d6262746ai0 180 | 179,59ee7d373f0dbad6f2d5f15064ecc32f1fd2d77c9efd0b43163a79b598c60d82i0 181 | 180,9be7037be53f3b54b7eecdca5bf38897900b9cab022c68324ceb956d5e0d98a0i0 182 | 181,1ae3ce7c6d0ebe7388979f4bdb60cfb0c8654685e4d9d19543fcaf4b3928a018i0 183 | 182,d0d5624a74c896d27f8f7331f17e02dab82df3fef59e8cb56f7bf2da06559725i0 184 | 183,7a769c282f051eda5e608380d7c1a055421975ad393597fd79466e90b820ea35i0 185 | 184,01b5da6db409b61fe01d1846c9246f31565ab34559c97e31ac98ce2c646a94e9i0 186 | 185,8fe0aea45240f62f54b6ec4cce4288e3b2223f72d645a595f7e7b9a744a0caffi0 187 | 186,4af5d25017a5c71d1333925ea29b79a18d36548597fc4f03e6a23f2d740547c7i0 188 | 187,8ea0749c068c6efddb930eeeb9f4de60ee09a26608761cd2579f70ad2d4ee632i0 189 | 188,6e58dceb8a884e6d4184d9025ed8c38ecf95f29e52f15f87c0b6319a5ca66331i0 190 | 189,a0c7d2848789ad20bf60a201d12eeafd9f37fe9105b3ab414923eca8ee133beei0 191 | 190,8c9b1c1fefbb5291e4578d4ff8d7706e106c622c525cf2e7c35d4ad4a5fbe565i0 192 | 191,b40b79d6d8e716cfefb26ea6ab012068c44a297c88acf136cae75fe71cf031cci0 193 | 192,08256a7d132ea8ee4eddd20444ef43a8df3be2ab3bc8d1fc9c416ee359a46ca2i0 194 | 193,9d5283e1ad63fd1dad0d3280c671f94db1ad8237f5b7a276fd5cd50d209cd3cbi0 195 | 194,e70a5a56e9e05b8d0c47380e5434337fbfb7977be234830f515545fc3e1afe54i0 196 | 195,01824443054f35e57864354cbb7063ae976c60cc8faec09d8b1d8cf83aaf7bc8i0 197 | 196,2807ac74213d2e9e4b86b7fc121edf7a94c66bc11a8142f851e5d7162d357333i0 198 | 197,1b588172889d3fd11643e84b226a9557d16570bee39dc458a698e3e388d25b5ei0 199 | 198,2291199e3a12e8716210e0b9a7aac03369782c16e3b19c4a666de01e4b3220c4i0 200 | 199,1da61965b6b4578c0f21fbaa520c229a938fb2949135db8c0fceb3c3692e8ed3i0 201 | 200,a45a9d29454ee94760a740859b1738b14920d87c148157f77d166733421c3329i0 202 | 201,5e44419e466bffeff375fcc26d699ea1c807f4dff791792628661ec3777cd38bi0 203 | 202,2fc28d0fc53e12a768e0eb7c5d854412228bb9c541077aa56e288e6bbf7c2702i0 204 | 203,a5bd03fa4371becab44b1ae36e050c129abe3f1ea113bc0279f6048f7e776313i0 205 | 204,ba746eb48c4912701a7884c80697f18539847ce69c0748fa181d32b7a6a98e4bi0 206 | 205,595a9b6dd637514cc6ba40fd9744ece9affd165a7f7c9a72c162e58343b3c282i0 207 | 206,12cd8d478df26eec4f23576c4a0af31e818b2be984164d27461740786f300847i0 208 | 207,761afe102da56e6f2f3cf0cfbb58a5569db0999d7b2f9a67b7589fc67430bcb3i0 209 | 208,39256f1db266b1772b0d853ad8670f32d52320e4dcf181bc57a427536198f1d6i0 210 | 209,567295a1728b589ea6fad9a53377be98377984378b0f99efceaf896e0d5910c7i0 211 | 210,55def50c58b686c23ccf0fd4b15c062f2d13ac55d70d0372deed58e2dac89a88i0 212 | -------------------------------------------------------------------------------- /sandbox/prepare_btc_sub1k.rb: -------------------------------------------------------------------------------- 1 | require 'ordinals' 2 | 3 | 4 | ids = [] 5 | 6 | [99,199,299,399,499,599,699,799,899,999].each_with_index do |offset| 7 | ids += Ordinals.inscription_ids( offset: offset ) 8 | end 9 | puts 10 | puts " #{ids.size} inscribe id(s)" 11 | 12 | ## 13 | ## save as .csv tabular dataset 14 | buf = "id\n" 15 | ids.each { |id| buf << "#{id}\n" } 16 | 17 | write_text( "./tmp/sub1k_inscriptions.csv", buf ) 18 | 19 | 20 | puts "bye" 21 | -------------------------------------------------------------------------------- /sandbox/prepare_ltc_sub1k.rb: -------------------------------------------------------------------------------- 1 | require 'ordinals' 2 | 3 | 4 | Ordinals.chain = :ltc 5 | 6 | ids = [] 7 | 8 | [99,199,299,399,499,599,699,799,899,999].each_with_index do |offset| 9 | ids += Ordinals.inscription_ids( offset: offset ) 10 | end 11 | puts 12 | puts " #{ids.size} inscribe id(s)" 13 | 14 | ## 15 | ## save as .csv tabular dataset 16 | buf = "id\n" 17 | ids.each { |id| buf << "#{id}\n" } 18 | 19 | write_text( "./tmp/sub1k_inscriptions.ltc.csv", buf ) 20 | 21 | 22 | puts "bye" 23 | -------------------------------------------------------------------------------- /sub1k.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | [« Programming (Bitcoin) Ordinals - Step-by-Step Book / Guide](./) 4 | 5 | 6 | 7 | # Sub 1k - Inside The First Thousand Ordinal Inscriptions 8 | 9 | 10 | Let's explore the first thousand (bitcoin) ordinal inscriptions 11 | from [inscription №0](https://ordinals.com/inscription/6fb976ab49dcec017f1e201e84395983204ae1a7c2abf7ced0a85d692e442799i0) 12 | to [inscription №999](https://ordinals.com/inscription/48b74ff588de917d4fe4ae2310a7c5c5ec566aece16425d9bc401ed5fd00800ai0). 13 | 14 | 15 | Looking for the litecoin (ltc) edition? See [Sub 1k - Inside the first thousand litecoin ordinal inscripitons »](ltc_sub1k.md) 16 | 17 | 18 | ## Step 0: Let's build the sub1k (SQL) database (ordlite / sqlite) 19 | 20 | Let's setup and build from scratch / zero 21 | a single-file SQLite database (e.g. `òrdsub1k.db`) with 22 | the first thousand ordinal inscriptions, 23 | that is, all metadata and (content) blobs, that is, images or text or audio or whatever. 24 | 25 | To fetch the inscription metadata and content blobs 26 | let's use the ordinals.com api wrapper / client, that is, 27 | the [ordinals gem](https://github.com/ordbase/ordbase/tree/master/ordinals). 28 | 29 | To setup and build the SQL schema / tables 30 | and insert (& update) all database records let's use 31 | the ordinals sqlite database helpers & machinery, that is, the [ordlite gem](https://github.com/ordbase/ordbase/tree/master/ordlite). 32 | 33 | 34 | Let's get started: 35 | 36 | ``` ruby 37 | require 'ordlite' 38 | 39 | 40 | OrdDb.open( './ordsub1k.db' ) 41 | 42 | puts 43 | puts " #{Inscribe.count} inscribe(s)" 44 | puts " #{Blob.count} blob(s)" 45 | #=> 0 inscribe(s) 46 | #=> 0 blob(s) 47 | 48 | 49 | ## import listed inscripiton ids (fetch via ordinals.com api) 50 | OrdDb.import_csv( "./meta/sub1k_inscriptions.csv" ) 51 | 52 | puts 53 | puts " #{Inscribe.count} inscribe(s)" 54 | puts " #{Blob.count} blob(s)" 55 | #=> 1000 inscribe(s) 56 | #=> 1000 blob(s) 57 | ``` 58 | 59 | Show time! Let's run the [`sub1k_build` script](sub1k_build.rb) and 60 | once 61 | all 1000×2, that is, 2000 web (api) requests are processed 62 | you will have a copy of all sub1k ordinal inscriptions with all metadata and content blobs in a single-file SQLite database (about 40 MB). 63 | 64 | 65 | 66 | ## Let's query and analyze the sub1k inscriptions via SQL 67 | 68 | 69 | Let's try a test run ... 70 | 71 | ``` ruby 72 | require 'ordlite' 73 | 74 | 75 | OrdDb.open( './ordsub1k.db' ) 76 | 77 | puts 78 | puts " #{Inscribe.count} inscribe(s)" 79 | puts " #{Blob.count} blob(s)" 80 | #=> 1000 inscribe(s) 81 | #=> 1000 blob(s) 82 | ``` 83 | 84 | 85 | Let's query for the ten biggest (by bytes) inscriptions 86 | (and pretty print the result): 87 | 88 | ```ruby 89 | Inscribe.biggest.limit(10).each do |rec| 90 | print "#{number_to_human_size(rec.bytes)} (#{rec.bytes} bytes) - " 91 | print "Inscribe №#{rec.num} (#{rec.content_type}) - " 92 | print "#{rec.date} - #{rec.fee} fee in sats" 93 | print "\n" 94 | end 95 | ``` 96 | 97 | or in vanilla SQL: 98 | 99 | ``` sql 100 | SELECT * 101 | FROM inscribes 102 | ORDER BY bytes DESC 103 | LIMIT 10 104 | ``` 105 | 106 | resulting in: 107 | 108 | ``` 109 | 3.73 MB (3915537 bytes) - Inscribe №652 (image/jpeg) - 2023-02-01 20:38:33 - 0 fee in sats 110 | 385 KB (394718 bytes) - Inscribe №978 (application/epub+zip) - 2023-02-02 06:46:04 - 109325 fee in sats 111 | 385 KB (394479 bytes) - Inscribe №546 (image/gif) - 2023-02-01 10:41:50 - 1489860 fee in sats 112 | 385 KB (394440 bytes) - Inscribe №833 (image/png) - 2023-02-02 01:13:51 - 99314 fee in sats 113 | 381 KB (389858 bytes) - Inscribe №388 (image/jpeg) - 2023-01-31 14:01:38 - 981620 fee in sats 114 | 379 KB (388417 bytes) - Inscribe №291 (image/gif) - 2023-01-30 17:58:54 - 586794 fee in sats 115 | 378 KB (386858 bytes) - Inscribe №857 (image/png) - 2023-02-02 01:17:54 - 97407 fee in sats 116 | 374 KB (383322 bytes) - Inscribe №538 (image/jpeg) - 2023-02-01 10:20:28 - 96519 fee in sats 117 | 367 KB (375414 bytes) - Inscribe №378 (image/gif) - 2023-01-31 09:47:55 - 945300 fee in sats 118 | 365 KB (373504 bytes) - Inscribe №288 (image/jpeg) - 2023-01-30 16:51:46 - 94050 fee in sats 119 | ``` 120 | 121 | 122 | Let's query for all inscriptions grouped by date (day) and dump the results: 123 | 124 | ```ruby 125 | pp Inscribe.counts_by_date ## or count_by_day 126 | ``` 127 | 128 | or in vanilla SQL: 129 | 130 | ```sql 131 | SELECT strftime('%Y-%m-%d', date) AS day, COUNT(*) 132 | FROM inscribes 133 | GROUP BY day 134 | ORDER BY day 135 | ``` 136 | 137 | resulting in: 138 | 139 | ``` 140 | {"2022-12-14" => 1, 141 | "2022-12-17" => 1, 142 | "2022-12-19" => 1, 143 | "2023-01-05" => 1, 144 | "2023-01-10" => 1, 145 | "2023-01-12" => 1, 146 | "2023-01-13" => 2, 147 | "2023-01-15" => 1, 148 | "2023-01-16" => 1, 149 | "2023-01-19" => 5, 150 | "2023-01-20" => 3, 151 | "2023-01-21" => 5, 152 | "2023-01-22" => 34, 153 | "2023-01-23" => 23, 154 | "2023-01-24" => 4, 155 | "2023-01-25" => 9, 156 | "2023-01-26" => 12, 157 | "2023-01-27" => 19, 158 | "2023-01-28" => 16, 159 | "2023-01-29" => 128, 160 | "2023-01-30" => 82, 161 | "2023-01-31" => 98, 162 | "2023-02-01" => 220, 163 | "2023-02-02" => 332} 164 | ``` 165 | 166 | Let's query for all inscriptions grouped by month and dump the results: 167 | 168 | ```ruby 169 | pp Inscribe.counts_by_month 170 | ``` 171 | 172 | or in vanilla SQL: 173 | 174 | ```sql 175 | SELECT strftime('%Y-%m', month) AS day, COUNT(*) 176 | FROM inscribes 177 | GROUP BY month 178 | ORDER BY month 179 | ``` 180 | 181 | resulting in: 182 | 183 | ``` 184 | {"2022-12" => 3, 185 | "2023-01" => 445, 186 | "2023-02" => 552} 187 | ``` 188 | 189 | 190 | Let's query for all content types and group by count (descending) and dump the results: 191 | 192 | 193 | ```ruby 194 | pp Inscribe.counts_by_content_type 195 | ``` 196 | 197 | or in vanilla SQL: 198 | 199 | ```sql 200 | SELECT content_type, COUNT(*) 201 | FROM inscribes 202 | GROUP BY content_type 203 | ORDER BY COUNT(*) DESC, content_type 204 | ``` 205 | 206 | resulting in: 207 | 208 | ``` 209 | {"image/png" => 475, 210 | "image/jpeg" => 188, 211 | "image/webp" => 117, 212 | "text/plain;charset=utf-8" => 112, 213 | "image/svg+xml" => 62, 214 | "text/html;charset=utf-8" => 18, 215 | "image/gif" => 11, 216 | "audio/mpeg" => 6, 217 | "application/pdf" => 2, 218 | "image/avif" => 2, 219 | "video/webm" => 2, 220 | "application/epub+zip" => 1, 221 | "application/pgp-signature" => 1, 222 | "audio/midi" => 1, 223 | "audio/mod" => 1, 224 | "video/mp4" => 1} 225 | ``` 226 | 227 | 228 | Let's query for all text inscribes (with content type `text/plain;charset=utf-8`) 229 | and print out the text: 230 | 231 | ```ruby 232 | inscribes = Inscribe.text 233 | puts " #{inscribes.size} text inscribe(s)" 234 | #=> 112 text inscribe(s) 235 | 236 | inscribes.each_with_index do |rec, i| 237 | puts "==> [#{i+1}/#{inscribes.size}] text inscribe №#{rec.num} (#{rec.content_type} - #{rec.bytes} bytes):" 238 | puts rec.text 239 | puts 240 | end 241 | ``` 242 | 243 | resulting in: 244 | 245 | ``` 246 | ==> [1/112] text inscribe №5 (text/plain;charset=utf-8 - 185 bytes): 247 | Don't think about making art, 248 | just get it done. 249 | Let everyone else decide 250 | if it's good or bad, 251 | whether they love it 252 | or hate it. 253 | While they are deciding, 254 | make even more art. 255 | 256 | Andy Warhol 257 | 258 | ==> [2/112] text inscribe №18 (text/plain;charset=utf-8 - 71 bytes): 259 | bro why the fuck 260 | would i buy an NFT 261 | that’s called a 262 | crypto dickbutt? 263 | 264 | ==> [3/112] text inscribe №35 (text/plain;charset=utf-8 - 5245 bytes): 265 | A Cypherpunk's Manifesto 266 | 267 | by Eric Hughes 268 | 269 | Privacy is necessary for an open society in the electronic age. 270 | Privacy is not secrecy. A private matter is something one doesn't 271 | want the whole world to know, but a secret matter is something one 272 | doesn't want anybody to know. Privacy is the power to selectively 273 | reveal oneself to the world. 274 | 275 | [...] 276 | 277 | The Cypherpunks are actively engaged in making the networks safer for 278 | privacy. Let us proceed together apace. 279 | 280 | Onward. 281 | 282 | Eric Hughes 283 | 284 | 285 | 9 March 1993 286 | 287 | -- cut -- 288 | 289 | ==> [6/112] text inscribe №50 (text/plain;charset=utf-8 - 1002 bytes): 290 | "Giving a little more thought to the idea of buying and selling digital cash, 291 | I thought of a way to present it. We're buying and setting 'cryptographic trading cards'. 292 | Fans of cryptography will love these fascinating examples of the cryptographic arts. 293 | Notice the fine way the bit patterns fit together - a mix of one-way functions 294 | and digital signatures, along with random blinding. What a perfect conversation piece 295 | to be treasured and shown to your friends and family. 296 | 297 | Plus, your friends will undoubtedly love these cryptographic trading cards just as much. 298 | They'll be eager to trade for them. Collect a whole set! 299 | They come in all kinds of varieties, from the common 1's, 300 | to the rarer 50's, all the way up to the seldom-seen 1000's. 301 | Hours of fun can be had for all.. 302 | 303 | Your friendly cryptographic trading card dealer wants to join the fun, too. 304 | He'll be as interested in buying your trading cards back as in selling them. 305 | 306 | Try this fascinating and timely new hobby today!" 307 | 308 | HAL FINNEY, JAN 17 1993 309 | 310 | ==> [7/112] text inscribe №58 (text/plain;charset=utf-8 - 8 bytes): 311 | satoshi 312 | 313 | ==> [8/112] text inscribe №59 (text/plain;charset=utf-8 - 10 bytes): 314 | faketoshi 315 | 316 | ==> [9/112] text inscribe №61 (text/plain;charset=utf-8 - 8 bytes): 317 | bitcoin 318 | 319 | ==> [10/112] text inscribe №62 (text/plain;charset=utf-8 - 9 bytes): 320 | ordinals 321 | 322 | ==> [11/112] text inscribe №67 (text/plain;charset=utf-8 - 11 bytes): 323 | 21,000,000 324 | 325 | ==> [12/112] text inscribe №68 (text/plain;charset=utf-8 - 5 bytes): 326 | hodl 327 | 328 | ==> [13/112] text inscribe №76 (text/plain;charset=utf-8 - 52 bytes): 329 | "Congrats on ordinals, seriously" 330 | - Vitalik Buterin 331 | 332 | -- cut -- 333 | 334 | ==> [19/112] text inscribe №97 (text/plain;charset=utf-8 - 4 bytes): 335 | ◉ 336 | 337 | -- cut -- 338 | 339 | ==> [22/112] text inscribe №105 (text/plain;charset=utf-8 - 14492 bytes): 340 | Bitcoin Shrooms impatient for beta release 341 | 342 | 1 343eec6884a5be860c0c4b73ae978009f6dd96f82882d56b1fd717da59f64f50 343 | 2 7fa93ee0c96c70d06ef0321dc1a7f313224b5faf469f74cb23faa18ca49f15ee 344 | 3 f822a81a72c5fcd79028dd61f7c8aaf30ddb86b7557df502a498ff857dc19281 345 | 4 4575c7015eb5fb7cb9053c850f52efda33da45847ff0441c29d207de834cb67d 346 | 347 | 5 091a5c36fb5b98c42b364cd44238edd4feff3a8f08aa3548ca190a7665801fb8 348 | 6 7a467be1abaa2112222a3325ea7733604edabd53c10c6e914dc936d0c6d6efab 349 | 7 8e242644424762774966a18f587d4c7eafcafad258103615e3a66699596c3f56 350 | 8 92b6338f6eddd7baa668e5f49bc7dc9e3ac9a040179da943240b029965736925 351 | 352 | 9 5b53b6dd387f473ff7f83cf075c34aae54c6ef5de372aeeaa0146cc3482a9ee3 353 | 10 b420dc8d802428f176c849ee4037952b1b0f30733546f21f2bdc493f170b8b9f 354 | 11 205b634a80b6ab3b161fce617fe06906ad0827f95ab3e8f60e22f9d19ac0b834 355 | 12 7ccdf1ef1af9afac9e460f457eec362807201aa63a874eb17fc295084a565597 356 | 357 | [...] 358 | 359 | 209 4843cf582cd8d354bee438268aa67f25d3974e63ccf042bf23bc32df6049120e 360 | 210 a2c3d36478198914f8e36903bb5a4de7c65e66510a651cfbb0399b7417ac6cb5 361 | 362 | -- cut -- 363 | 364 | ==> [24/112] text inscribe №110 (text/plain;charset=utf-8 - 4 bytes): 365 | ₿ 366 | 367 | ==> [25/112] text inscribe №111 (text/plain;charset=utf-8 - 3 bytes): 368 | ¥ 369 | 370 | ==> [26/112] text inscribe №112 (text/plain;charset=utf-8 - 2 bytes): 371 | $ 372 | 373 | ==> [27/112] text inscribe №113 (text/plain;charset=utf-8 - 4 bytes): 374 | € 375 | 376 | -- cut -- 377 | 378 | ==> [42/112] text inscribe №138 (text/plain;charset=utf-8 - 5 bytes): 379 | 🙈 380 | 381 | ==> [43/112] text inscribe №139 (text/plain;charset=utf-8 - 5 bytes): 382 | 🙉 383 | 384 | ==> [44/112] text inscribe №141 (text/plain;charset=utf-8 - 5 bytes): 385 | 🙊 386 | 387 | -- cut -- 388 | 389 | ==> [47/112] text inscribe №191 (text/plain;charset=utf-8 - 10497 bytes): 390 | BITCOIN ROCKS 391 | 392 | 100% on-chain rocks. Max supply = 100. 393 | 394 | This message is for provenance. 395 | 396 | Follow @ordrocks on Twitter for details and updates. 397 | 398 | Comprehensive list of Bitcoin rocks & their inscription IDs: 399 | 400 | { 401 | { "rock": "0" "inscription": "e8ce0fcb238b377b3a6b9921333e26fbec5c5724c5bf6e783c3dcc1129794508i0", } 402 | { "rock": "1" "inscription": "87b28e0ccbd2bf4e992674070daa64b8f8546e5c4cb2bf50fe57ac320535d231i0", } 403 | { "rock": "2" "inscription": "2a83b7d3b3626b671b39be88a6c387080df37ca97d01c401d5475cb21bf0c078i0", } 404 | [...] 405 | { "rock": "99" "inscription": "b0553e566a5e20246ac2ca464177be6d8bd192eccc300d11fa6a2b6da72aa731i0" } 406 | } 407 | 408 | -- cut -- 409 | ``` 410 | 411 | See the complete text log in [sub1k.txt](sub1k.txt). 412 | 413 | 414 | Ordinals Triva - Did you know? [Inscription №824](https://ordinals.com/inscription/f1321b21e8d5605c236600a1a69fbb87343f9e9eb57bf3303fff8bd6f77ca520i0) is a text inscription with 0 bytes (yes, that is, empty) AND it's part 415 | of the "Rare Texts" collection (see [Inscription №891](https://ordinals.com/inscription/6b16c15179a41a94465ed99d787804520c028282332f0f725a1efbfa3195cdf6i0)) 416 | and titled "Probably Nothing". 417 | 418 | 419 | 420 | 421 | For more fun let's query for (basic) game inscriptions 422 | and save the html (& js) code / text to play in your web browser: 423 | 424 | 425 | ```ruby 426 | ## get snake game (no. 142) in "The Basics" series - 427 | ## a basic html & js game collection (no. 1147) 428 | inscribe = Inscribe.find_by( num: 142 ) 429 | write_text( "./snake.html", inscribe.text ) 430 | 431 | ## get tetris game (no. 145) in "The Basics" series 432 | inscribe = Inscribe.find_by( num: 145 ) 433 | write_text( "./tetris.html", inscribe.text ) 434 | ``` 435 | 436 | Yes, you can. Play the games in your browser: 437 | - [snake.html](https://ordbase.github.io/ordbase/snake.html) - note: how-to play? length of the snake grows when eating an apple 438 | - [tetris.html](https://ordbase.github.io/ordbase/tetris.html) 439 | 440 | 441 | Or let's query for the original bitcoin whitepaper (9 pages) 442 | by Satoshi Nakamoto: 443 | 444 | ``` ruby 445 | ## get bitcoin whitpaper (no. 54) pdf document 446 | inscribe = Inscribe.find_by( num: 54 ) 447 | write_blob( "./bitcoin.pdf", inscribe.content ) 448 | ``` 449 | 450 | Yes, you can. Learn more about the beginnings of Bitcoin: A Peer-to-Peer Electronic Cash System: 451 | - [bitcoin.pdf (179 kb)](https://ordbase.github.io/ordbase/bitcoin.pdf) 452 | 453 | 454 | 455 | 456 | Ordinals Triva - Did you know? The Shrooms with 208 out of 210 inscriptions¹ (plus one bonus collection metadata inscription, see [№105](https://ordinals.com/inscription/4e0ad05cbbe3cfdbedec9edb37683a8284bc60ec4ced62272703f182d67e5d70i0)) 457 | is the biggest sub 1k collection. 458 | 459 | Note 1: Shroom №186 @ [Inscription №1075](https://ordinals.com/inscription/4af5d25017a5c71d1333925ea29b79a18d36548597fc4f03e6a23f2d740547c7i0) and 460 | Shroom №196 @ [Inscription №1074](https://ordinals.com/inscription/2807ac74213d2e9e4b86b7fc121edf7a94c66bc11a8142f851e5d7162d357333i0). 461 | 462 | 463 | Let's save all shroom .PNGs in the collection for easy access 464 | using `shroom1.png`, `shroom2.png`, `shroom3.png` up to 465 | `shroom210.png`. 466 | 467 | 468 | ``` ruby 469 | ## read inscription №105 converted "by hand" to .csv datafile 470 | recs = read_csv( './shrooms.csv') 471 | 472 | recs.each do |rec| 473 | num = rec['num'].to_i(10) 474 | hash = rec['hash'] ## sha256 content hash 475 | puts "==> saving shroom #{num} with hash #{hash}..." 476 | 477 | ## note: skip shrooms no. 186 & 196 (inscribed as no. 1075 & no. 1074) for now 478 | next if [186,196].include?(num) 479 | 480 | blob = Blob.find_by( sha256: hash ) 481 | write_blob( "./i/shroom#{num}.png", blob.content ) 482 | end 483 | ``` 484 | 485 | resulting in: 486 | 487 | ``` 488 | ==> saving shroom 1 with hash 343eec6884a5be860c0c4b73ae978009f6dd96f82882d56b1fd717da59f64f50... 489 | ==> saving shroom 2 with hash 7fa93ee0c96c70d06ef0321dc1a7f313224b5faf469f74cb23faa18ca49f15ee... 490 | ==> saving shroom 3 with hash f822a81a72c5fcd79028dd61f7c8aaf30ddb86b7557df502a498ff857dc19281... 491 | ==> saving shroom 4 with hash 4575c7015eb5fb7cb9053c850f52efda33da45847ff0441c29d207de834cb67d... 492 | ==> saving shroom 5 with hash 091a5c36fb5b98c42b364cd44238edd4feff3a8f08aa3548ca190a7665801fb8... 493 | ==> saving shroom 6 with hash 7a467be1abaa2112222a3325ea7733604edabd53c10c6e914dc936d0c6d6efab... 494 | ==> saving shroom 7 with hash 8e242644424762774966a18f587d4c7eafcafad258103615e3a66699596c3f56... 495 | ==> saving shroom 8 with hash 92b6338f6eddd7baa668e5f49bc7dc9e3ac9a040179da943240b029965736925... 496 | ==> saving shroom 9 with hash 5b53b6dd387f473ff7f83cf075c34aae54c6ef5de372aeeaa0146cc3482a9ee3... 497 | ==> saving shroom 10 with hash b420dc8d802428f176c849ee4037952b1b0f30733546f21f2bdc493f170b8b9f... 498 | ... 499 | ``` 500 | 501 | and 502 | 503 | ![](i/shroom1.png) 504 | ![](i/shroom2.png) 505 | ![](i/shroom3.png) 506 | ![](i/shroom4.png) 507 | ![](i/shroom5.png) 508 | ![](i/shroom6.png) 509 | 510 | ... 511 | 512 | 513 | 514 | To be continued... 515 | 516 | 517 | 518 | 519 | ## Bonus - Let's export (save as ...) all inscriptions content blobs 520 | 521 | Let's export (save as ...) all inscription content blobs 522 | to local files with (mime) content types mapped 523 | to file extensions (e.g. `image/png` to `.png`, `text/plain` to `.txt`, and so on) 524 | and use the the inscription number as its filename 525 | (for easy sorting padded with eight zeros e.g. `0` to `00000000`, `1` to `00000001`) ... 526 | 527 | 528 | ``` ruby 529 | require 'ordlite' 530 | 531 | OrdDb.open( './ordsub1k.db' ) 532 | 533 | Inscribe.all.each do |rec| 534 | print "==> exporting inscribe №#{rec.num} " 535 | print ">#{rec.content_type}< #{number_to_human_size(rec.bytes)} (#{rec.bytes} bytes) " 536 | print "to >#{rec.export_path}<..." 537 | print "\n" 538 | rec.export ## gets saved to ./tmp/. by default 539 | end 540 | ``` 541 | 542 | resulting in: 543 | 544 | ``` 545 | ==> exporting inscribe №0 >image/png< 793 Bytes (793 bytes) to >./tmp/00000000.png<... 546 | ==> exporting inscribe №1 >image/png< 19.8 KB (20266 bytes) to >./tmp/00000001.png<... 547 | ==> exporting inscribe №2 >image/gif< 9.15 KB (9371 bytes) to >./tmp/00000002.gif<... 548 | ==> exporting inscribe №3 >image/png< 321 Bytes (321 bytes) to >./tmp/00000003.png<... 549 | ==> exporting inscribe №4 >image/png< 208 Bytes (208 bytes) to >./tmp/00000004.png<... 550 | ==> exporting inscribe №5 >text/plain;charset=utf-8< 185 Bytes (185 bytes) to >./tmp/00000005.txt<... 551 | ==> exporting inscribe №6 >image/png< 5.34 KB (5466 bytes) to >./tmp/00000006.png<... 552 | ==> exporting inscribe №7 >text/html;charset=utf-8< 625 Bytes (625 bytes) to >./tmp/00000007.html<... 553 | ==> exporting inscribe №8 >image/png< 27.8 KB (28431 bytes) to >./tmp/00000008.png<... 554 | ==> exporting inscribe №9 >image/webp< 33.3 KB (34140 bytes) to >./tmp/00000009.webp<... 555 | ... 556 | ==> exporting inscribe №998 >text/plain;charset=utf-8< 5 Bytes (5 bytes) to >./tmp/00000998.txt<... 557 | ==> exporting inscribe №999 >image/png< 39.4 KB (40384 bytes) to >./tmp/00000999.png<... 558 | ``` 559 | 560 | 561 | or if you look in your `./tmp` directory (depending on your operating system): 562 | 563 | ![](i/export-preview.png) 564 | 565 | 566 | 567 | 568 | ## Frequently Asked Questions (F.A.Q.s) And Answers 569 | 570 | Q: What's that vanilla SQL about? How can I use vanilla SQL? 571 | 572 | Once you have built the `ordsub1k.db` (SQLite) database (or use / download 573 | a shared copy) you can query the datbase using SQLite (visual) tools (e.g. [SQLite Studio](https://sqlitestudio.pl)) or the classic (command-line) shell. Example: 574 | 575 | ``` 576 | $ sqlite3 ordsub1k.db 577 | SQLite version 3.42.0 578 | Enter ".help" for usage hints. 579 | sqlite> 580 | ``` 581 | 582 | Let's print out the inscribes table schema: 583 | 584 | ``` 585 | sqlite> .schema inscribes 586 | ``` 587 | 588 | resulting in: 589 | 590 | ```sql 591 | CREATE TABLE "inscribes" 592 | ("id" varchar NOT NULL PRIMARY KEY, 593 | "num" integer NOT NULL, 594 | "bytes" integer NOT NULL, 595 | "content_type" varchar NOT NULL, 596 | "date" datetime(6) NOT NULL, 597 | "sat" integer NOT NULL, 598 | "block" integer NOT NULL, 599 | "fee" integer NOT NULL, 600 | "tx" varchar NOT NULL, 601 | "offset" integer NOT NULL, 602 | "address" varchar NOT NULL, 603 | "output" varchar NOT NULL, 604 | "value" integer NOT NULL, 605 | "created_at" datetime(6) NOT NULL, 606 | "updated_at" datetime(6) NOT NULL); 607 | CREATE UNIQUE INDEX "inscribe_nums" ON "inscribes" ("num"); 608 | ``` 609 | 610 | Let's query for the ten biggest inscribes (by bytes): 611 | 612 | ``` 613 | sqlite> SELECT num, bytes 614 | ...> FROM inscribes 615 | ...> ORDER BY bytes DESC 616 | ...> LIMIT 10; 617 | ``` 618 | 619 | resulting in: 620 | 621 | ``` 622 | 652|3915537 623 | 978|394718 624 | 546|394479 625 | 833|394440 626 | 388|389858 627 | 291|388417 628 | 857|386858 629 | 538|383322 630 | 378|375414 631 | 288|373504 632 | ``` 633 | 634 | Let's query for all inscribes grouped by day count: 635 | 636 | ``` 637 | sqlite> SELECT strftime('%Y-%m-%d', date) AS day, COUNT(*) 638 | ...> FROM inscribes 639 | ...> GROUP BY day 640 | ...> ORDER BY day; 641 | ``` 642 | 643 | resulting in: 644 | 645 | ``` 646 | 2022-12-14|1 647 | 2022-12-17|1 648 | 2022-12-19|1 649 | 2023-01-05|1 650 | 2023-01-10|1 651 | 2023-01-12|1 652 | 2023-01-13|2 653 | 2023-01-15|1 654 | 2023-01-16|1 655 | 2023-01-19|5 656 | 2023-01-20|3 657 | 2023-01-21|5 658 | 2023-01-22|34 659 | 2023-01-23|23 660 | 2023-01-24|4 661 | 2023-01-25|9 662 | 2023-01-26|12 663 | 2023-01-27|19 664 | 2023-01-28|16 665 | 2023-01-29|128 666 | 2023-01-30|82 667 | 2023-01-31|98 668 | 2023-02-01|220 669 | 2023-02-02|332 670 | ``` 671 | 672 | 673 | Let's query for all content types and grouped by count (descending): 674 | 675 | ``` 676 | sqlite> SELECT content_type, COUNT(*) 677 | ...> FROM inscribes 678 | ...> GROUP BY content_type 679 | ...> ORDER BY COUNT(*) DESC, content_type; 680 | ``` 681 | 682 | resulting in: 683 | 684 | ``` 685 | image/png|475 686 | image/jpeg|188 687 | image/webp|117 688 | text/plain;charset=utf-8|112 689 | image/svg+xml|62 690 | text/html;charset=utf-8|18 691 | image/gif|11 692 | audio/mpeg|6 693 | application/pdf|2 694 | image/avif|2 695 | video/webm|2 696 | application/epub+zip|1 697 | application/pgp-signature|1 698 | audio/midi|1 699 | audio/mod|1 700 | video/mp4|1 701 | ``` 702 | 703 | and so on. 704 | 705 | 706 | 707 | ## Questions? Comments? 708 | 709 | Join us in the [Ordgen / ORC-721 discord (chat server)](https://discord.gg/dDhvHKjm2t). Yes you can. 710 | Your questions and commetary welcome. 711 | 712 | 713 | Or post them over at the [Help & Support](https://github.com/geraldb/help) page. Thanks. 714 | 715 | -------------------------------------------------------------------------------- /sub1k_build.rb: -------------------------------------------------------------------------------- 1 | ##### 2 | # build ordsub1k.db (sqlite database with first thousand ordinal inscriptions) 3 | 4 | $LOAD_PATH.unshift( "../ordinals/lib" ) 5 | $LOAD_PATH.unshift( "../ordlite/lib" ) 6 | 7 | 8 | require 'ordlite' 9 | 10 | 11 | 12 | OrdDb.open( './ordsub1k.db' ) 13 | 14 | 15 | puts 16 | puts " #{Inscribe.count} inscribe(s)" 17 | puts " #{Blob.count} blob(s)" 18 | #=> 0 inscribe(s) 19 | #=> 0 blob(s) 20 | 21 | 22 | OrdDb.import_csv( "./meta/sub1k_inscriptions.csv" ) 23 | 24 | puts 25 | puts " #{Inscribe.count} inscribe(s)" 26 | puts " #{Blob.count} blob(s)" 27 | #=> 1000 inscribe(s) 28 | #=> 1000 blob(s) 29 | 30 | 31 | puts "bye" -------------------------------------------------------------------------------- /sub1k_debug.rb: -------------------------------------------------------------------------------- 1 | $LOAD_PATH.unshift( "../ordlite/lib" ) 2 | require 'ordlite' 3 | 4 | 5 | 6 | 7 | OrdDb.open( './ordsub1k.db' ) 8 | 9 | 10 | 11 | inscribe = Inscribe.find_by( num: 580 ) 12 | puts inscribe.blob.content 13 | puts 14 | pp inscribe.blob.content 15 | puts 16 | puts inscribe.blob.text 17 | puts 18 | puts inscribe.text 19 | 20 | puts "bye" -------------------------------------------------------------------------------- /sub1k_export.rb: -------------------------------------------------------------------------------- 1 | ##### 2 | # query ordsub1k.db (sqlite database with first thousand ordinal inscriptions) 3 | 4 | $LOAD_PATH.unshift( "../ordlite/lib" ) 5 | require 'ordlite' 6 | 7 | 8 | 9 | 10 | OrdDb.open( './ordsub1k.db' ) 11 | 12 | 13 | puts 14 | puts " #{Inscribe.count} inscribe(s)" 15 | puts " #{Blob.count} blob(s)" 16 | #=> 1000 inscribe(s) 17 | #=> 1000 blob(s) 18 | 19 | 20 | ## try to export inscribes 21 | 22 | Inscribe.all.each do |rec| 23 | print "==> exporting inscribe №#{rec.num} " 24 | print ">#{rec.content_type}< #{number_to_human_size(rec.bytes)} (#{rec.bytes} bytes) " 25 | print "to >#{rec.export_path}<..." 26 | print "\n" 27 | rec.export ## gets saved to ./tmp/. 28 | end 29 | 30 | 31 | puts "bye" -------------------------------------------------------------------------------- /sub1k_games.rb: -------------------------------------------------------------------------------- 1 | ##### 2 | # query ordsub1k.db (sqlite database with first thousand ordinal inscriptions) 3 | 4 | $LOAD_PATH.unshift( "../ordlite/lib" ) 5 | require 'ordlite' 6 | 7 | 8 | OrdDb.open( './ordsub1k.db' ) 9 | 10 | 11 | ## get snake game (no. 142) in "The Basics" series - 12 | ## a basic html & js game collection (no. 1147) 13 | ## 14 | ## how-to play - length of the snake grows when eating an apple 15 | inscribe = Inscribe.find_by( num: 142 ) 16 | write_text( "../docs/snake.html", inscribe.text ) 17 | 18 | ## get tetris game (no. 145) in "The Basics" series - 19 | inscribe = Inscribe.find_by( num: 145 ) 20 | write_text( "../docs/tetris.html", inscribe.text ) 21 | 22 | 23 | 24 | puts "bye" -------------------------------------------------------------------------------- /sub1k_more.rb: -------------------------------------------------------------------------------- 1 | 2 | $LOAD_PATH.unshift( "../ordlite/lib" ) 3 | require 'ordlite' 4 | 5 | 6 | OrdDb.open( './ordsub1k.db' ) 7 | 8 | 9 | ## get bitcoin whitpaper (no. 54) pdf document 10 | inscribe = Inscribe.find_by( num: 54 ) 11 | write_blob( "../docs/bitcoin.pdf", inscribe.content ) 12 | 13 | 14 | 15 | puts "bye" -------------------------------------------------------------------------------- /sub1k_query.rb: -------------------------------------------------------------------------------- 1 | ##### 2 | # query ordsub1k.db (sqlite database with first thousand ordinal inscriptions) 3 | 4 | $LOAD_PATH.unshift( "../ordlite/lib" ) 5 | require 'ordlite' 6 | 7 | 8 | 9 | 10 | OrdDb.open( './ordsub1k.db' ) 11 | 12 | 13 | puts 14 | puts " #{Inscribe.count} inscribe(s)" 15 | puts " #{Blob.count} blob(s)" 16 | #=> 1000 inscribe(s) 17 | #=> 1000 blob(s) 18 | 19 | 20 | 21 | 22 | ###### 23 | ## query for ten biggest (by bytes) inscriptions 24 | 25 | Inscribe.biggest.limit(10).each do |rec| 26 | print "#{number_to_human_size(rec.bytes)} (#{rec.bytes} bytes) - " 27 | print "Inscribe №#{rec.num} (#{rec.content_type}) - " 28 | print "#{rec.date} - #{rec.fee} fee in sats" 29 | print "\n" 30 | end 31 | 32 | ###### 33 | ## query for all content types and group by count (descending) 34 | 35 | puts 36 | pp Inscribe.content_type_counts ## count_by_content_type 37 | 38 | puts 39 | pp Inscribe.date_counts ## count_by_date/day 40 | 41 | puts 42 | pp Inscribe.month_counts ## counts_by_month 43 | 44 | 45 | puts "bye" -------------------------------------------------------------------------------- /sub1k_shrooms.rb: -------------------------------------------------------------------------------- 1 | $LOAD_PATH.unshift( "../ordlite/lib" ) 2 | require 'ordlite' 3 | 4 | 5 | OrdDb.open( './ordsub1k.db' ) 6 | 7 | =begin 8 | class AddHash < ActiveRecord::Migration[7.0] 9 | def up 10 | change_table :blobs do |t| 11 | t.string :sha256 12 | end 13 | end 14 | end 15 | AddHash.new.up 16 | =end 17 | 18 | ### 19 | ### check range - 675 - 1075 20 | ### up-to 1075??? 21 | ## 22 | ### ==> saving shroom 186 with hash 3067fa383c71024fc04614b1524d7f13b408839d8f2b18da47db31437b52edaf... 23 | ## sub1k_shrooms.rb:48:in `block in
': undefined method `inscribe' for nil:NilClass (NoMethodError) 24 | ## shroom 186 not found is not in sub1k?? 25 | ## 26 | ## ==> saving shroom 186 with hash 3067fa383c71024fc04614b1524d7f13b408839d8f2b18da47db31437b52edaf... 27 | ## !! ERROR - no matching hash found 28 | ## is inscribe no. 1075!! 29 | ## 4af5d25017a5c71d1333925ea29b79a18d36548597fc4f03e6a23f2d740547c7i0 30 | ## ==> saving shroom 196 with hash 5cf2abd9fe6f1878ee29f317d54e2ca2e5a46ad0417edf8c7e19a5edf0bcc818... 31 | ## !! ERROR - no matching hash found 32 | ## is inscribe no. 1074!!! 33 | ## 2807ac74213d2e9e4b86b7fc121edf7a94c66bc11a8142f851e5d7162d357333i0 34 | 35 | 36 | =begin 37 | inscribes = Inscribe.png.to_a 38 | puts " #{inscribes.size} .PNG inscribe(s)" 39 | 40 | inscribes.each_with_index do |rec, i| 41 | puts "==> #{i+1}/#{inscribes.size} no.#{rec.num} (#{rec.content_type} - #{rec.bytes} bytes)..." 42 | if rec.bytes != rec.content.bytesize 43 | puts "!! ERROR - bytes mismatch - blob corrupt?" 44 | exit 1 45 | end 46 | hex = Digest::SHA256.hexdigest( rec.content ) 47 | puts hex 48 | rec.blob.sha256 = hex 49 | rec.blob.save 50 | end 51 | =end 52 | 53 | ## read inscription №105 converted "by hand" to .csv datafile 54 | recs = read_csv( './shrooms.csv') 55 | 56 | ## export inscribe ids 57 | meta = [] 58 | recs.each do |rec| 59 | num = rec['num'].to_i(10) 60 | hash = rec['hash'] 61 | 62 | id = if num == 186 63 | '4af5d25017a5c71d1333925ea29b79a18d36548597fc4f03e6a23f2d740547c7i0' 64 | elsif num == 196 65 | '2807ac74213d2e9e4b86b7fc121edf7a94c66bc11a8142f851e5d7162d357333i0' 66 | else 67 | Blob.find_by( sha256: hash ).id 68 | end 69 | 70 | meta << [num.to_s, id] 71 | end 72 | pp meta 73 | 74 | buf = '' 75 | buf << "num,id\n" 76 | meta.each do |values| 77 | buf << values.join(',') 78 | buf << "\n" 79 | end 80 | write_text( "./shrooms_inscriptions.csv", buf ) 81 | 82 | 83 | 84 | recs.each do |rec| 85 | num = rec['num'].to_i(10) 86 | hash = rec['hash'] 87 | puts "==> saving shroom #{num} with hash #{hash}..." 88 | 89 | ## note: shrooms no. 186 and 196 are NOT in sub1k 90 | ## - no. 186 is inscribe no. 1075 @ 4af5d25017a5c71d1333925ea29b79a18d36548597fc4f03e6a23f2d740547c7i0 91 | ## - no. 196 is inscribe no. 1074 @ 2807ac74213d2e9e4b86b7fc121edf7a94c66bc11a8142f851e5d7162d357333i0 92 | blob = if num == 186 93 | blob = Blob.new( content: Ordinals.content( '4af5d25017a5c71d1333925ea29b79a18d36548597fc4f03e6a23f2d740547c7i0' ).data ) 94 | puts hash 95 | puts Digest::SHA256.hexdigest( blob.content ) 96 | blob 97 | elsif num == 196 98 | blob = Blob.new( content: Ordinals.content( '2807ac74213d2e9e4b86b7fc121edf7a94c66bc11a8142f851e5d7162d357333i0' ).data ) 99 | puts hash 100 | puts Digest::SHA256.hexdigest( blob.content ) 101 | blob 102 | else 103 | Blob.find_by( sha256: hash ) 104 | end 105 | 106 | write_blob( "./i/shroom#{num}.png", blob.content ) 107 | end 108 | 109 | -------------------------------------------------------------------------------- /sub1k_sql.rb: -------------------------------------------------------------------------------- 1 | $LOAD_PATH.unshift( "../ordlite/lib" ) 2 | require 'ordlite' 3 | 4 | 5 | OrdDb.open( './ordsub1k.db' ) 6 | 7 | 8 | 9 | puts 10 | puts Inscribe.order( 'bytes DESC' ).limit(10).to_sql 11 | puts 12 | 13 | 14 | puts 15 | puts Inscribe.select('content_type, COUNT(*)') 16 | .group( 'content_type' ) 17 | .order( Arel.sql( 'COUNT(*) DESC, content_type')).to_sql 18 | puts 19 | 20 | 21 | puts 22 | puts Inscribe.select( Arel.sql( "strftime('%Y-%m-%d', date) as day, COUNT(*)")) 23 | .group( Arel.sql( 'day' )) 24 | .order( Arel.sql( 'day' )).to_sql 25 | puts 26 | 27 | 28 | 29 | puts "bye" -------------------------------------------------------------------------------- /sub1k_text.rb: -------------------------------------------------------------------------------- 1 | $LOAD_PATH.unshift( "../ordlite/lib" ) 2 | require 'ordlite' 3 | 4 | 5 | 6 | 7 | OrdDb.open( './ordsub1k.db' ) 8 | 9 | 10 | puts 11 | puts " #{Inscribe.count} inscribe(s)" 12 | puts " #{Blob.count} blob(s)" 13 | #=> 1000 inscribe(s) 14 | #=> 1000 blob(s) 15 | 16 | 17 | 18 | inscribes = Inscribe.text 19 | puts " #{inscribes.size} text inscribe(s)" 20 | #=> 112 text inscribe(s) 21 | 22 | buf = '' 23 | 24 | inscribes.each_with_index do |rec, i| 25 | puts "==> [#{i+1}/#{inscribes.size}] text inscribe №#{rec.num} (#{rec.content_type} - #{rec.bytes} bytes):" 26 | puts rec.text 27 | puts 28 | 29 | ## note: add to buffer to write to disk 30 | buf << "==> [#{i+1}/#{inscribes.size}] text inscribe №#{rec.num} (#{rec.content_type} - #{rec.bytes} bytes):\n" 31 | buf << rec.text 32 | buf << "\n\n" 33 | end 34 | 35 | ## todo/fix: 36 | ## check if write_text has problem with \r 37 | ## \r doubles newlines - why? why not? 38 | 39 | write_text( "./sub1k.txt", buf.gsub(/\r/, '') ) 40 | 41 | puts "bye" 42 | 43 | --------------------------------------------------------------------------------