{
  "schema": "ab5d-series-essay/1",
  "identity": {
    "chainId": 1,
    "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
    "projectId": 12,
    "slug": "unigrids-by-zeblocks",
    "title": "Unigrids",
    "artistCredit": "Zeblocks",
    "artistDossierUrls": [
      "https://ab5d.xyz/artists/zeblocks/"
    ]
  },
  "revision": 2,
  "researchCutoff": "2026-09-20",
  "status": "published-with-research-limitations",
  "facts": [],
  "rights": {
    "artwork": {
      "reportedLabel": "NFT License",
      "category": "custom",
      "termsUrl": null,
      "observedAt": "2026-09-17",
      "sourceIds": [],
      "note": "Observed current label; earlier licence history not independently recovered.",
      "unresolvedConflicts": []
    },
    "code": {
      "reportedLabel": null,
      "category": "unknown",
      "termsUrl": null,
      "observedAt": "2026-09-17",
      "sourceIds": [],
      "note": "Separate artist-code reuse grant not established.",
      "unresolvedConflicts": []
    },
    "thirdParty": [
      {
        "reportedLabel": null,
        "category": "unknown",
        "termsUrl": null,
        "observedAt": "2026-09-17",
        "sourceIds": [],
        "note": "Built-in browser SVG/Web Audio facilities; external hosted renderer separately recorded, not copied.",
        "unresolvedConflicts": []
      }
    ]
  },
  "sections": [
    {
      "id": "the-work-and-its-context",
      "heading": "The work and its context",
      "bodyMarkdown": "Unigrids is Art Blocks project 12 on the contract `0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270`. The index records 421 invocations against a maximum of 421, the runtime `svg@na`, a square aspect ratio, a price field of 0.1 ETH and the licence label \"NFT License\" with no link [^S01]. The runtime label reflects its method: the script builds SVG shapes directly in the browser, with no drawing library, and it makes sound [^S01].\n\nEach output is a square grid of 5, 10, 15 or 20 cells a side. Every cell is a coloured square with either a right triangle or a quarter-curved \"leaf\" laid over half of it. Neighbouring cells of the same colour merge, so the grid dissolves into zigzags, S-bends and stepped blocks. The project text sets out three layers: \"a static image for printing, an animation, and companion beat - all generated and stored on the blockchain\" [^S01]. It adds the line that best describes the work: \"You truly need to play around with Unigrids to understand the essence of them\" [^S01][^S02].\n\nThere is a fourth layer that the project text does not name. Three cells in the bottom-right corner of every Unigrid are lids. Clicking each one hides it and reveals a capital letter underneath (code reading) [^S01]. The Zeblocks site unigrids.com lists \"Letters\" as a property of each token alongside palette, grid and beat [^S03]."
    },
    {
      "id": "conception-and-development",
      "heading": "Conception and development",
      "bodyMarkdown": "Zeblocks is a two-person team. Guillaume, who works as Arsonic, studied Arts and Multimedia, ran a web and marketing agency and moved into blockchain development. Sebastian is described as a full-stack developer whose earlier startup was acquired by TripAdvisor in early 2020 [^S04][^S05]. Art Blocks' artist page describes Sebastian as making \"experimental works of art with audiovisual components\" [^S05].\n\nIn his Art Blocks interview with Jeff Davis, Guillaume traces the route in. \"Back in 2017, I met Erick (Snowfro) on a project\", he says, and it was Calderon who first showed him NFTs and CryptoPunks [^S02]. In a Discord community he came across a project by Natealex called *Squiggly*, and there he made his first on-chain piece, *Everything is Better with a Bag of Weed*, an animated SVG later bought by FlamingoDAO [^S02]. \"Creating that piece gave me the idea to create a full generative set based on a similar aesthetic\", he says [^S02]. He also sets out the team's priorities: \"Our art is not just about the aesthetic, the technical aspect is very important for us too\" [^S02].\n\nThe project page on the Zeblocks site repeats the claim that the whole work, \"SVG for the visual / animation and Web Audio Api for the generative music\", lives on chain [^S06]. It also promises \"interactive easter eggs for art owners, giveaways, and other engagement with the community\" [^S06][^S01]. Zeblocks followed Unigrids in August 2021 with *Beatboxes*, 841 VR \"rooms\" with generative audio [^S07]."
    },
    {
      "id": "how-the-work-was-constructed",
      "heading": "How the work was constructed",
      "bodyMarkdown": "The program is a single script of 13,305 bytes, SHA-256 `7201ca4be560c96c7112ab513baea865fcc8fa9d2d43824c6aca99b14af83c48`. It was retrieved from the Art Blocks index on 20 September 2026 and read in full. No code is reproduced here [^S01]. To test the reading, the whole program was re-implemented in Python, including JavaScript's 32-bit integer arithmetic, and run on all 421 token hashes. It reproduces every published Palette, Shape, Grid size, \"# of colors\" and Beat value, with no mismatches (own computation) [^S01].\n\nThe script seeds a small xorshift generator from the token hash. It shuffles the five colours inside each of 14 palettes, then draws a palette, a colour count, a grid size and a shape mode [^S01]. It then walks the grid row by row. Each cell gets a background square, then a triangle or a curved leaf in another colour drawn from the same palette, each with a coin-flip orientation [^S01]. Colour count means the first two to five colours of the shuffled palette; which of those appear depends on the shuffle.\n\n| Trait | Rule in the code | Published count of 421 |\n| --- | --- | --- |\n| Grid size | 5x5 30%, 10x10 25%, 15x15 25%, 20x20 20% | 128, 95, 110, 88 |\n| # of colors | 2 10%, 3 20%, 4 20%, 5 50% | 36, 93, 88, 204 |\n| Shape: Wave | 7.5%, every cell a curve | 35 |\n| Shape: Angled | 7.5%, every cell a triangle | 30 |\n| Shape: Fifty-Fifty | 50%, curves and triangles evenly mixed | 209 |\n| Shape: Wavy-up | 17.5%, three curves to one triangle | 69 |\n| Shape: Angled-up | 17.5%, three triangles to one curve | 78 |\n| Beat | eight equal settings, 12.5% each | 47 to 62 each |\n\nThe palettes carry gemstone names in the published traits. The program itself names none of them; the mapping below comes from matching its palette index to the trait on every token (own computation) [^S01].\n\n| Palette (program weight) | Colours | Count |\n| --- | --- | --- |\n| CMYK (3%) | near-black, hot pink, yellow, turquoise, white | 11 |\n| Obsidian (5%) | black and four dark greys | 22 |\n| Diamond (5%) | white and four pale greys | 22 |\n| Emerald, Ruby, Blue Amber (about 7% each), Fluorite (6.8%) | greens; reds with slate; red, white and blues; magenta to cyan | 28, 27, 22, 24 |\n| Ocean Jasper, Turquoise, Labradorite, Sunset sodalite, Amazonite, Ammolite, CMYK night (8.5% each) | navy to yellow; navies to aqua; blues and gold; black, navy, orange, grey, white; lime and deep blue; brown, orange, cream, teal; navy, white, teal, red, orange | 33, 43, 39, 32, 31, 40, 47 |\n\n**The animation.** Clicking the image starts every tile, background and shape alike, drifting to another colour from the token's palette. Each change takes a random time of up to two seconds and then triggers the next, so the pattern re-colours itself continuously without any shape moving [^S01]. A second click stops it.\n\n**The beat.** On a desktop screen the space bar starts and stops the sound; on screens narrower than 1,024 pixels a tap starts sound and animation together [^S01]. The audio is synthesised live with the Web Audio API from four voices (code reading) [^S01]:\n\n- a 50 Hz sine kick, twice per cycle\n- a noise \"snare\", once per cycle\n- two looping melodies, one from each of the two lists in the chosen Beat, played a step every eighth of a second\n\nThe published Beat trait picks one of eight melody pairs. Two further settings never appear in the metadata. A tempo factor between 0.75 and 1.25 sets the kick at between about 96 and 160 beats per minute, and a note length of a quarter, a fifth or a sixth of a second sets how legato the melody sounds (own computation) [^S01]. #217, for example, runs at about 121 beats per minute with sixth-of-a-second notes."
    },
    {
      "id": "quirks-in-the-algorithm",
      "heading": "Quirks in the algorithm",
      "bodyMarkdown": "A full read of the script, checked against a re-implementation run on all 421 hashes, found the following.\n\n1. **Only eight characters of the hash matter.** The seed is read as the first sixteen characters of the hash, \"0x\" included, which JavaScript parses as a 56-bit hexadecimal number. That is more precision than a JavaScript number holds, so the lowest bits are rounded away. The generator then keeps only the lowest 32 bits. Every visual and musical choice therefore depends on hash characters 9 to 16 plus the size of the first digit. Randomising the other 56 characters, while keeping those, changed no output in a test on all 421 hashes (own computation) [^S01].\n2. **The letters never include Z.** Each hidden letter is drawn by scaling a random number to 25 steps above \"A\", so the alphabet stops at Y (code reading). Across the edition all 25 letters A to Y appear between 38 and 60 times each, and Z never does (own computation) [^S01].\n3. **Three triple letters, and a few words.** Three tokens hide the same letter three times: #78 (CCC), #189 (GGG) and #239 (JJJ). Some triples read as English words, among them PEN (#38), EYE (#146), WAX (#187), KID (#372) and OWN (#217, AB5D's token) (own computation) [^S01]. The letters are not in the published metadata, and nothing in the program treats a word differently.\n4. **Colours at the ends of the palette are half as common.** A colour is chosen by rounding a random number scaled to the colour count. The first and last colours of the shuffled palette therefore come up half as often as the middle ones. With five colours the split is one eighth, a quarter, a quarter, a quarter and one eighth (code reading) [^S01]. Every token that claims n colours does use all n, however (own computation) [^S01].\n5. **Near-duplicate colours.** Diamond includes #e3e3e3 and #e5e5e5, and Obsidian #000000 and #111111. On screen these read as one colour, so a five-colour Diamond can look like a four-colour one (code reading) [^S01].\n6. **A silent oscillator and inaudible notes.** The snare builds a triangle oscillator and then holds its volume at zero, so only the noise is heard. The noise is drawn with the browser's own unseeded random function, the one part of the work that differs on every play. Its values are all positive rather than centred on zero (code reading) [^S01]. The melody lists use note 0 as a rest. The pitch formula is tuned to each Beat's own reference frequency rather than 440 Hz, so note 0 plays at about 3 to 4 Hz and note 22 in Beats 3 and 4 at about 6 to 7 Hz. Both are below hearing, so they act as rests (own computation) [^S01].\n7. **Four tunes and their mirror images.** Beat2 is Beat1 played backwards, with a slightly shifted pitch reference, and the same holds for Beat4 and Beat3, Beat6 and Beat5, and Beat8 and Beat7. The eight Beats are four melodies, each with its retrograde (code reading) [^S01].\n8. **A condition that is always true.** In the curve-drawing routine, whether to randomise the curve's orientation is decided by testing the routine's own name. A function is always truthy, so the test never fails; it is harmless (code reading) [^S01].\n9. **Sound in current browsers.** Three of the audio contexts are created when the page loads, before any click or key press, and the script never resumes them. Current browser autoplay rules start such contexts suspended. If so, the kick, the snare and the first melody may stay silent today, while the second melody, whose context is created after the key press, plays (code reading; not tested in a browser) [^S01][^S08]. Each restart of the sound also creates a new audio context without closing the last.\n10. **A shared background under the letters.** The three lid cells all sit on one background colour drawn at the start. The letter's colour is chosen once and re-drawn only if it matches that background, so the three letters share a colour (code reading) [^S01]. The colour animation can later change the background to match the letter and make it vanish."
    },
    {
      "id": "the-most-coveted-variants",
      "heading": "The most coveted variants",
      "bodyMarkdown": "No collector guide to Unigrids traits was found in the sources inspected. The families below are those the trait counts and the program make scarce (own computation) [^S01].\n\n**CMYK (11 of 421).** The lowest-weighted palette is also the loudest: pink, yellow and turquoise on black and white. Only two CMYK tokens use the all-triangle Angled mode, #22 and #199 [^S01].\n\n![Unigrids #22: a dense 15 by 15 grid of pink, yellow, turquoise, black and white triangles](https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/12000022.png)\n*Unigrids #22, CMYK Angled with five colours, one of two such tokens. Render: Art Blocks media proxy.*\n\n**The pure modes, Wave (35) and Angled (30).** In these every cell takes the same kind of shape. Wave works read as continuous flowing ribbons, as in #8, and Angled works as crystalline diagonals. Only six tokens combine a pure mode with two colours: #16, #143, #216 and #282 (Wave) and #285 and #353 (Angled) [^S01].\n\n**Two colours (36).** With two colours the figure and ground swap constantly. #10, in dark brown and cream Ammolite, is an example [^S01].\n\n![Unigrids #10: a two-colour 15 by 15 grid in dark brown and cream](https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/12000010.png)\n*Unigrids #10, Ammolite with two colours. Render: Art Blocks media proxy.*\n\n**Letters.** Letters are not in the metadata, but they appear on unigrids.com as a token property [^S03]. The three triple-letter tokens (#78, #189, #239) are the obvious letter rarities, at 3 of 421. #239 (JJJ), a 20x20 Turquoise Fifty-Fifty, was also chosen for Sotheby's Grails sale (see below) [^S01][^S09].\n\n![Unigrids #239: a 20 by 20 grid of aqua, slate and navy curves and triangles](https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/12000239.png)\n*Unigrids #239, whose hidden letters read JJJ, sold at Sotheby's in June 2023. Render: Art Blocks media proxy.*\n\n**Invocation 0.** #0, a 15x15 CMYK night Wavy-up, was minted a day before the public sale and is still in the artist's address [^S01]."
    },
    {
      "id": "notable-collectors-and-sales",
      "heading": "Notable collectors and sales",
      "bodyMarkdown": "- **The Art Blocks founders.** Unigrids #311 was one of 19 early Art Blocks works in lot 4 of Sotheby's \"Natively Digital: A Curated NFT Sale\" in June 2021, consigned by Erick Calderon and Jeff Davis. The price realised was not visible [^S10].\n- **Three Arrows Capital's \"Grails\".** Sotheby's sold #239 as lot 26 of \"Grails: Property from an Iconic Digital Art Collection Part II\", on 15 June 2023 in New York, with an estimate of $5,000 to $7,000 [^S09]. Artnet reported that the Grails sales were the NFT collection of the bankrupt hedge fund Three Arrows Capital, and that Part II made nearly $11 million in total [^S11][^S12]. #366 followed in the online Part IV, which closed on 16 August 2023, with an estimate of $3,000 to $4,000 [^S13]. Artnet's price database lists both lots, without prices [^S14].\n- **Market figures.** VERSE reported total Unigrids sales of $622,618 and a highest single sale of $29,755, without naming the token or date [^S15].\n- **Concentration.** At retrieval the 421 tokens sat in 175 addresses, and 126 of them held a single token. The largest wallets held 44, 32 and 28. No source inspected names them [^S01].\n\n![Unigrids #311: a 15 by 15 grid of aqua and navy triangles](https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/12000311.png)\n*Unigrids #311, Turquoise Angled, from the Art Blocks lot at Sotheby's in June 2021. Render: Art Blocks media proxy.*"
    },
    {
      "id": "unigrids-in-print",
      "heading": "Unigrids in print",
      "bodyMarkdown": "The project was designed with printing in mind, and its text calls the still image \"for printing\" [^S01]. In August 2021 Zeblocks wrote that \"Owners of Unigrids have printed up apparel and custom phone cases\" [^S07]. No official print programme or ledger was found. The one video located is a buyer's guide rather than a discussion of the work [^S16]."
    },
    {
      "id": "the-mint",
      "heading": "The mint",
      "bodyMarkdown": "Invocation 0 was minted on 25 January 2021 at 19:17:24 UTC to the artist address. The index records activation on 26 January at 15:32:10 UTC and the start of the public sale at 23:00:31 UTC [^S01]. The remaining 420 were minted between 23:00:31 and 23:03:23 UTC: 43 in the first partial minute, 162 in the next, 160 in the one after, and 55 in the last. The edition sold out in under three minutes (own computation) [^S01]. The indexed price is 0.1 ETH [^S01]. Zeblocks later called the launch \"successful\", and wrote that they \"were blown away by the reaction from the NFT community\" [^S07]."
    },
    {
      "id": "copyright-and-licensing",
      "heading": "Copyright and licensing",
      "bodyMarkdown": "The index records \"NFT License\" without a link [^S01]. The operative terms were not found in the sources inspected, and the earlier AB5D essay also left them open [^S08]. The program has no separate code licence. It depends only on the browser's own SVG and Web Audio features and loads no outside code [^S01]. Owners have made apparel and phone cases from their tokens [^S07]; whether that is licensed use is not stated."
    },
    {
      "id": "significance-and-limitations",
      "heading": "Significance and limitations",
      "bodyMarkdown": "Unigrids was an early statement that an Art Blocks work could be more than an image. It is a pattern that plays, re-colours itself and hides a message, all from one 13 KB script with no library [^S01]. Its visual system is compact: 14 palettes and five mixes of two tiles produce 396 distinct trait combinations across 421 tokens (own computation) [^S01]. Its interest lies in the interaction and the sound, which the metadata only half records. The tempo, note length and hidden letters are all absent from the traits. Its limitations are also in the code: most of the hash is ignored, and modern browsers may now silence part of the beat.\n\nUnresolved research questions:\n\n1. What did #239, #366 and the 19-work Art Blocks lot (including #311) sell for? Sotheby's results pages need a login.\n2. Were the promised \"interactive easter eggs for art owners\" ever delivered, and were the hidden letters used in a game or giveaway? Posts by @Ze_blocks on X are the lead.\n3. How much of the beat plays in current Chrome, Safari and Firefox? A recorded test of #217 would settle quirk 9.\n4. The #366 provenance (\"Minted by 50BF12; subsequently acquired by Arsonic\") and the interview quotations came from automated WebFetch extraction and need checking against the pages.\n5. Which token made VERSE's highest sale of $29,755, and when?"
    }
  ],
  "examples": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "12000000",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/12000000",
      "sourceIds": [],
      "selectionNote": "Preselected editions 0, 1, 10 and 20; small early-edition comparison, not representative sampling.",
      "observationNote": "Official static preview visually inspected; no listening-based claims.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/12000000.png",
      "indexedFeatures": {
        "Beat": "Beat3",
        "Shape": "Wavy-up",
        "Palette": "CMYK night",
        "Grid size": "15x15",
        "# of colors": 4
      },
      "mintedAt": "2021-01-25T19:17:24+00:00",
      "mintTransactionHash": "0xd6cfe45593bae3a8557c9c5fa9cd0aea01aaddbd2f8448aa60ff39140739dd32"
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "12000001",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/12000001",
      "sourceIds": [],
      "selectionNote": "Preselected editions 0, 1, 10 and 20; small early-edition comparison, not representative sampling.",
      "observationNote": "Official static preview visually inspected; no listening-based claims.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/12000001.png",
      "indexedFeatures": {
        "Beat": "Beat8",
        "Shape": "Fifty-Fifty",
        "Palette": "Ammolite",
        "Grid size": "5x5",
        "# of colors": 5
      },
      "mintedAt": "2021-01-26T23:00:31+00:00",
      "mintTransactionHash": "0xfbf1e1e52100200369fa5f49949003e162ed6e88c591dfe94f0104c08804a3c9"
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "12000010",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/12000010",
      "sourceIds": [],
      "selectionNote": "Preselected editions 0, 1, 10 and 20; small early-edition comparison, not representative sampling.",
      "observationNote": "Official static preview visually inspected; no listening-based claims.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/12000010.png",
      "indexedFeatures": {
        "Beat": "Beat2",
        "Shape": "Wavy-up",
        "Palette": "Ammolite",
        "Grid size": "15x15",
        "# of colors": 2
      },
      "mintedAt": "2021-01-26T23:00:31+00:00",
      "mintTransactionHash": "0x0895a197e84117b993eff1b7f4113cf1a1fa03c97912e1f9826b5868265f04fa"
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "12000020",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/12000020",
      "sourceIds": [],
      "selectionNote": "Preselected editions 0, 1, 10 and 20; small early-edition comparison, not representative sampling.",
      "observationNote": "Official static preview visually inspected; no listening-based claims.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/12000020.png",
      "indexedFeatures": {
        "Beat": "Beat1",
        "Shape": "Wave",
        "Palette": "Amazonite",
        "Grid size": "10x10",
        "# of colors": 4
      },
      "mintedAt": "2021-01-26T23:00:45+00:00",
      "mintTransactionHash": "0x47a2a902a751b52224aff2c2e10975d67da858fb35e575ba65f8451b46cd6d28"
    }
  ],
  "mediaIds": [],
  "provenance": {
    "operator": "Phil (@maxand98), commissioning user",
    "agent": "OpenAI Codex",
    "model": null,
    "modelVersion": null,
    "tools": [
      "Art Blocks Hasura GraphQL",
      "Web source reading",
      "Static original-script inspection",
      "Official preview visual inspection"
    ],
    "humanEditorialInvolvement": "Supplied prose preserved and published at Phil’s request. Sources not independently reinspected during import.",
    "originalProseLicense": "CC0-1.0",
    "generation": null
  },
  "codeInspection": {
    "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
    "locator": "projects_metadata.script filtered by slug unigrids-by-zeblocks",
    "sha256": "7201ca4be560c96c7112ab513baea865fcc8fa9d2d43824c6aca99b14af83c48",
    "retrievedAt": "2026-09-17",
    "method": "Indexed script static inspection",
    "executed": false,
    "chainBlock": null
  },
  "editorialExceptions": [
    {
      "id": "historical-evidence",
      "status": "pending",
      "reviewer": "Phil",
      "reason": "Historical price, allocation and rights gaps explicitly qualified; indexed script not pinned to chain block."
    }
  ],
  "manuscriptFormat": "supplied-markdown",
  "manuscriptPreamble": "# Unigrids by Zeblocks\n\n*Art Blocks Curated, project 12 · 421 outputs · minted 26 January 2021 · NFT License*\n\n![Unigrids #217: a 15 by 15 grid of triangles and quarter-curves in navy, red, orange, yellow and cream](https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/12000217.png)\n*Unigrids #217, held by AB5D: Ocean Jasper, five colours, 15x15, Angled-up, Beat5. Its three hidden corner letters spell OWN. Render: Art Blocks media proxy.*\n\n",
  "bibliographyMarkdown": "\n### Primary\n\n[^S01]: Art Blocks public GraphQL index, `projects_metadata` for project 12 (including the full program) and `tokens_metadata` for all 421 tokens. Retrieved 20 September 2026 via https://artblocks-mainnet.hasura.app/v1/graphql. Collection page: https://www.artblocks.io/collection/unigrids-by-zeblocks. Simulation and counts are AB5D's own computation on this data.\n[^S02]: Jeff Davis, \"In Conversation with Guillaume (Arsonic) of Zeblocks\", Art Blocks Spectrum. https://www.artblocks.io/info/spectrum/in-conversation-with-guillaume-arsonic-of-zeblocks\n[^S03]: Zeblocks, Unigrids site (token properties including \"Letters\"). https://unigrids.com/ and https://unigrids.com/about\n[^S04]: Zeblocks, \"About\". https://zeblocks.com/about.html\n[^S05]: Art Blocks, artist page for Zeblocks. https://www.artblocks.io/artists/zeblocks\n[^S06]: Zeblocks, \"Unigrids\". https://zeblocks.com/unigrids.html\n[^S07]: Zeblocks, \"Beatboxes Overview and FAQ\", Medium, 25 August 2021. https://medium.com/@zeblocks/beatboxes-overview-and-faq-b759cf4346bd\n[^S08]: AB5D, earlier essay on Unigrids by Zeblocks. https://ab5d.xyz/series/unigrids-by-zeblocks/\n\n### Video and audio\n\n[^S16]: \"How and Where To Buy Unigrids by Zeblocks NFTs - Detailed Guide\", NFTandTEA, YouTube (title and channel confirmed via YouTube oEmbed on 20 September 2026; not watched). https://www.youtube.com/watch?v=P7ARABZd7Lo\n\n### Criticism, collecting and market\n\n[^S10]: Sotheby's, \"Art Blocks | 19 works\", lot 4, \"Natively Digital: A Curated NFT Sale\", New York, 3 to 10 June 2021. https://www.sothebys.com/en/buy/auction/2021/natively-digital-a-curated-nft-sale-2/19-works\n[^S09]: Sotheby's, \"Zeblocks, Unigrids #239\", lot 26, \"Grails: Property from an Iconic Digital Art Collection Part II\", New York, 15 June 2023. https://www.sothebys.com/en/buy/auction/2023/grails-part-ii/unigrids-239\n[^S13]: Sotheby's, \"Zeblocks, Unigrids #366\", lot 21, \"Grails: Property from an Iconic Digital Art Collection Part IV\", online, 8 to 16 August 2023. https://www.sothebys.com/en/buy/auction/2023/grails-property-from-an-iconic-digital-art-collection-part-iv/unigrids-366\n[^S11]: Richard Whiddington, \"Sotheby's Is Selling a Mother Lode of 37 More NFTs From the Collection of Bankrupt Hedge Fund Three Arrows Capital\", Artnet News, 31 May 2023. https://news.artnet.com/market/grails-nft-sothebys-largest-ever-live-digital-art-sale-three-arrows-capital-2312378\n[^S12]: Richard Whiddington, \"A Crypto Spring? Sotheby's $11 Million NFT Sale Renews Hope for the Battered Market\", Artnet News, 16 June 2023. https://news.artnet.com/market/sothebys-grails-sale-part-two-nfts-2322721\n[^S14]: Artnet, \"Zeblocks\", auction results. https://www.artnet.com/artists/zeblocks/\n[^S15]: VERSE, Unigrids by Zeblocks series page, read 20 September 2026. https://verse.works/series/unigrids-by-zeblocks\n\n### Further reading\n\n- gmBlockchain, \"What is Unigrids by Zeblocks NFT? [All You Need to Know 2022]\". https://gmblockchain.io/nfts/nft-projects/what-is-unigrids-by-zeblocks/\n- Art Blocks, project page. https://www.artblocks.io/project/12\n- OpenSea, Unigrids by Zeblocks collection. https://opensea.io/collection/unigrids-by-zeblocks\n",
  "suppliedRevision": {
    "batch": "ab500-essays-batch-03",
    "date": "2026-09-21",
    "sourceFile": "unigrids-by-zeblocks.md",
    "sourceSha256": "f83079467196c12f9b5ff1d11697a2853e0ca42916e11e3f2cef5888efea1c1d",
    "sourceCount": 16,
    "imageCount": 5,
    "headerLine": "Art Blocks Curated, project 12 · 421 outputs · minted 26 January 2021 · NFT License",
    "author": null,
    "usage": null,
    "draftNoticeRemoved": true,
    "importMode": "Supplied prose preserved; footnote labels normalized for site compatibility."
  },
  "referenceOrder": [
    "S01",
    "S02",
    "S03",
    "S04",
    "S05",
    "S06",
    "S07",
    "S08",
    "S16",
    "S10",
    "S09",
    "S13",
    "S11",
    "S12",
    "S14",
    "S15"
  ],
  "presentation": {
    "editionSize": 421,
    "maximumEdition": 421,
    "mintDate": "2021-01-25T19:17:24+00:00",
    "mintDateMeaning": "First indexed mint",
    "artwork": {
      "project_id": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-12",
      "token_id": "12000217",
      "invocation": 217,
      "owner_address": "0xdd19308a9731cdecb67e0d80ca6823394208c045",
      "preview_asset_url": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/12000217.png",
      "live_view_url": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/12000217",
      "primary_asset_url": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/12000217",
      "minted_at": "2021-01-26T23:02:05+00:00",
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "chainId": 1,
      "canonicalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/12000217",
      "mode": "artist-hosted",
      "copyrightStatus": "NFT License (reported; terms unverified)",
      "copyrightUrl": null,
      "displayBasis": "Artist-hosted code referenced remotely inside isolated frame at publisher request; verified owned token hash supplied; existing click control activated on load. No artist code copied to repository.",
      "embedUrl": "/series/unigrids-by-zeblocks/artwork.html",
      "hostedScriptUrl": "https://unigrids.com/assets/js/imggen.js",
      "hash": "0x35d74d106afd69d60bcae971550feacd1ebdf964fe4bccc579beae84b9f64c42",
      "initialInteraction": "Existing SVG click control activated on load; audio remains subject to browser policy."
    }
  },
  "observationImages": [],
  "publication": {
    "date": "2026-09-17",
    "url": "https://ab5d.xyz/series/unigrids-by-zeblocks/",
    "authorization": "Phil requested publication of the supplied essays on 2026-09-21.",
    "reviewSnapshot": "/docs/series-essays/production/unigrids-by-zeblocks/record.json",
    "unresolvedResearchQuestionsRetained": true,
    "revisionDate": "2026-09-21"
  }
}
