# Blockbob Rorschach by eBoy

## The work and its context

Blockbob Rorschach is Art Blocks project 188 on the contract at `0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270`, on Ethereum mainnet, credited to eBoy. The public index returns 1,024 invocations against a maximum of 1,024, a declared dependency of `p5@1.0.0`, an aspect ratio of 1, a licence string of `CC BY-SA 4.0` with a null licence link, and a `display_static` value of false [^S02]. The collection page describes it as an Art Blocks 500 release in the Factory category, a fixed edition of 1,024 unique artworks, released on 30 October 2021, and carries a View live control [^S01].

The mint description is one sentence long, the shortest in this batch: "On-chain, generative pixel blot heads." [^S02][^S01]. It is also, unusually, an exact description. Every token is a figure on a sixteen-by-sixteen grid of flat coloured squares: a head occupying the upper half, a two-cell neck, a wide body, and a single square at each side for arms. The head is filled by a binary pattern that is mirrored about the vertical centre line, which is the Rorschach of the title. The blot is a Perlin noise field thresholded at its midpoint, so its shapes are soft and lobed rather than scattered, and the mirroring turns them into faces, masks, insects or nothing at all depending on where the threshold happened to fall.

Three of the description's five words are load-bearing and one is a small overstatement. The work is generative, the heads are blots, and the rendering is pixel art of the kind eBoy has made since the 1990s. It is on chain in the sense that Art Blocks projects are: the artist's program is stored in the project record and returned by the index [^S02], but it does not render without a copy of p5.js version 1.0.0 supplied by the platform at view time.

The index's `display_static` value of false is wrong here, and unambiguously so. The program calls p5's `noLoop` in setup, draws exactly one frame, and stops. At the live renderer the frame counter read 1 and stayed at 1, and the canvas was byte-identical across a four-second interval on the token observed for change [^S06]. There are no key handlers, no mouse handlers and no touch handlers anywhere in the program, so the work has no controls at all [^S02][^S06]. There is no audio: the renderer page contains no audio or video elements and `p5.SoundFile` is undefined in the running instance [^S06].

The most consequential fact for anyone cataloguing this edition is what the trait list does not contain. Three traits are published, `headshape`, `headcolor` and `swatch` [^S03]. The program makes five independent draws. The two that are not published set the horizontal and vertical scale of the noise field, and they are the parameters that determine whether a given token's blot is a fine speckle or two large flat areas. They are, visually, the dominant variable in the edition, and the metadata is silent about them.

## Conception and development

eBoy is a Berlin pixel-art studio that has been working in the idiom since the mid 1990s, and the project needs almost no introduction from the artist because the visual language arrives already formed. The figures here are built the way eBoy figures have always been built: from a small grid of opaque squares, with no antialiasing, no gradients and no outlines, in a palette of flat saturated colours. What the generative system supplies is not the style but the variation.

The indexed `artist_interview` field is null [^S02] and the website of record is not a project page. It is a social media profile, `https://twitter.com/eboyarts` [^S02], which resolves to the X account @eBoyArts. The profile loads in a logged-out view and shows a studio bio of "GODFATHERS OF PIXEL", an account created in October 2010, links to a links page and to eboy.com, and a recent timeline [^S09]. Nothing about this project was visible in that view, and a logged-out timeline shows only the newest posts, so this package treats the profile as confirming the artist's identity and nothing more.

One thing on that profile does belong in a catalogue note, because it bears on how much weight the link of record can carry. A post dated 9 September states that the account had been compromised that night, that a token circulating under the account's name was not the studio's, and that any contract address seen on the account that day was fake [^S09]. Whatever the details, an artist link of record that is a social account which has been taken over at least once is not a stable authority for provenance, and a dossier that cites it should cite what it saw and when.

That leaves the program as the main evidence for how the work was conceived, and the program is unusually legible about it. Unlike every other script in this batch, this one is not minified. Variables are named, functions are named, the palettes are written out as hexadecimal literals with numbered comments, and the head shapes are declared as lists of rectangle dimensions. It reads like working source rather than a build artefact. A `console.log` statement that prints the token hash was left in and is still executed on every render, which was confirmed directly by reading the renderer's console [^S06]. Shipping working source, debug line and all, onto a permanent record is either carelessness or indifference to the distinction, and given that the program is otherwise carefully organised the second reading seems at least as likely as the first.

The six head shapes are hand-designed, not generated. Each is a stack of two or three rectangles of specified width and height, named block, eater, lenser, doubler, plus and devo [^S02]. Those names are the artist's and they describe silhouettes: a plain rectangle, a wide-mouthed shape, its inverse, a two-lobed form, a cross, and a stepped profile. The generative part of the work operates inside a silhouette that a person drew.

## How the work was constructed

The script was retrieved as the `script` field of the `projects_metadata` row for `0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-188`, from the Art Blocks public GraphQL index, on 2026-09-18 at 07:47:47Z [^S02]. It is 7,580 bytes and its SHA-256 digest, computed in the browser over the exact returned bytes using the Web Crypto API, is `e9c9317b2250de3ed0f0cc8ae73cf278386a6aafc37c422f81ec2bebce22c8eb` [^S06]. The row reports `script_count` of 1 and the declared runtime is `p5@1.0.0` [^S02]. Because the program is unminified it can be read as ordinary source. No artist code is reproduced here.

Two independent sources of randomness are used, and keeping them apart is the key to understanding the work. The first is an xorshift generator seeded from the token hash, and it chooses the five discrete parameters. The second is p5's own Perlin noise, seeded from the same number, and it paints the blot.

The xorshift generator is the same construction that appears in the Amoeba project elsewhere in this batch, down to the output step: it returns the absolute value of the 32-bit state modulo 1,000, divided by 1,000. Every discrete choice in this work is therefore made from a menu of exactly 1,000 possible fractions. The seed is likewise taken the same way, as `parseInt(hash.slice(0, 16), 16)`, a slice that includes the `0x` prefix and so parses fourteen hexadecimal digits. Fifty-six bits exceeds the fifty-three that a double-precision float represents exactly, so the seed is rounded before the generator ever runs, and the first shift then coerces it to a signed 32-bit integer. Two different artists, two different projects in the same batch, the same idiom and the same two defects, which suggests a template circulating among Art Blocks contributors in 2021 rather than independent invention.

Six draws are made in a fixed order: a head shape index, a decimal used to decide whether the head is coloured, a swatch index between 1 and 8, a decimal used to permute the chosen swatch, and two decimals that select the horizontal and vertical noise scales. An independent reimplementation of that exact order was run against all 1,024 token hashes and reproduced every published trait: `headshape` on 1,024 of 1,024, `headcolor` on 1,024 of 1,024 and `swatch` on 1,024 of 1,024 [^S03].

The head-colour decision is a weighted choice at 0.2 for coloured and 0.8 for black and white, and the edition matches the weights almost exactly: 204 coloured and 820 black and white, or 19.92 per cent against a nominal 20 [^S03]. It also switches the entire colour logic. On a black-and-white token the head is drawn in the two neutral tones, a near-black and a near-white, and the background, body and two arms are taken from the selected colour swatch, so the figure is a monochrome blot standing in a coloured world with arms that can be two different colours. On a coloured token the relationship inverts: the head is drawn in two colours from the swatch and the background, body and both arms are taken from the neutral pair, so the figure is a coloured blot in a neutral world with both arms necessarily the same colour. Reading the live globals on two coloured and two black-and-white tokens confirmed both arrangements [^S06].

The nine swatches are hard-coded lists of hexadecimal colours, the first of which is the neutral pair and the other eight of which are the palettes the `swatch` trait names 1 through 8 [^S02]. Before use, a swatch is passed through a routine the program calls a randomiser. It is not one. A correct shuffle draws a fresh random index for each position; this routine draws a single decimal once and reuses it for every swap, so the permutation it produces is a deterministic function of that one number and preserves most of the original ordering. Live readings bear this out: token 188000023 drew swatch 7 and its head colours came out as the second and third entries of that swatch in their original relative order [^S06]. The rarity structure of colour in this edition is therefore coarser than it looks, because the permutation cannot reach most orderings.

The same routine contains a second defect with no visible consequence. For coloured heads it is applied to the selected swatch array in place and the result is then truncated to length two, which permanently shortens the entry in the global swatch table. Because setup runs once per page load, nothing downstream ever reads the truncated entry, so the bug is real and inert. It is recorded here because a reader of the source would otherwise have to work it out for themselves.

The blot itself is the interesting part. The head silhouette is assembled from the two or three rectangles that define the selected shape, and each cell of that silhouette is filled by sampling p5's Perlin noise at the cell's coordinates divided by the two noise scales, then rounding to 0 or 1. The result indexes the two-colour head palette. The drawing routine then places every cell twice, once at its own horizontal offset from the centre and once at the mirrored offset, which produces the inkblot.

That symmetry was measured rather than assumed. On each of the four observed tokens, 8,930 pixel pairs were sampled across the head band and compared against their mirror images; the mismatch count was zero on all four [^S06]. The head is exactly symmetric. The rest of the figure is not, and on black-and-white tokens the two arms are routinely different colours, so a description of this work as symmetric should say that only the head is.

The two noise scales are weighted 0.4, 0.3, 0.2 and 0.1 for values 1, 2, 3 and 4, independently in each axis, and neither is published. Across the edition the sixteen combinations distribute as the weights predict, with the coarsest setting of 1 by 1 on 141 tokens and the finest of 4 by 4 on 8 [^S03]. Visually the difference is not subtle. At 1 by 1 the noise is sampled at unit spacing and the blot becomes a fine speckle of alternating cells; at 4 by 4 the field is stretched over four cells in each direction and the blot becomes two or three large flat regions. Token 188000016 and token 188000044 sit at those two extremes and look like works from different projects [^S06].

One hypothesis was tested and rejected in the course of this reading. Because the noise is sampled at integer coordinates when both scales are 1, and because classic Perlin noise returns exactly its midpoint at integer lattice points, it seemed possible that the coarsest setting would threshold every cell the same way and produce a solid head. Probing the running p5 instance at those coordinates returned values spread between 0.135 and 0.753 rather than a constant [^S06], because p5's implementation sums octaves of value noise rather than evaluating classic Perlin. The prediction was wrong and the observation stands. What the probe does show is that the values cluster near the midpoint, which is why the threshold produces balanced, soft-edged regions rather than a sparse scatter. The p5 reference describes the intended smoothness of the function and the role of input scaling, which is exactly the property the two unpublished parameters exploit [^S07].

Finally, the geometry has a rounding artefact that is visible if you look for it. The canvas is made square at the smaller of the window's two dimensions, and the cell size is that divided by sixteen, rounded to an integer. In the pane used for these observations the canvas was 662 CSS pixels, the exact cell size was 41.375, the rounded cell size was 41, and sixteen cells therefore spanned 656 pixels rather than 662 [^S06]. The six-pixel shortfall is why the program adds a deliberate overhang to the body and the arms so they run off the bottom edge rather than stopping short of it. The figure sits very slightly off centre in its own canvas, by construction.

## The mint

The index records activation at 2021-10-23T18:04:15Z, a public opening at 2021-10-29T19:00:00Z, and completion at 2021-10-30T04:51:27Z [^S02]. The collection page states 30 October 2021 [^S01], which is the opening instant rendered in a timezone ahead of UTC.

The first mint again precedes activation. Token 188000000 was minted at 2021-10-18T18:40:26Z [^S03], five days before the recorded activation and eleven days before the public opening. It is the only token minted before the opening, and the index's artist address holds exactly one token in the edition [^S02][^S03]. The same pattern, a single artist proof timestamped before `activated_at`, appears on the LIA and Amoeba projects in this batch, so the field plainly does not mark the first acceptance of a mint anywhere in this contract.

This was the fastest sale in the batch by a wide margin. The price is recorded as 200000000000000000 wei, or 0.2 ETH [^S02], and the description states no auction schedule, so this package does not assert a mechanism. Taking the opening as the start endpoint and the final mint as the end endpoint, the public phase ran from 2021-10-29T19:00:00Z to 2021-10-30T04:51:27Z, a span of 9.86 hours, and covered 1,023 mints [^S03]. The first public mint came at 2021-10-29T19:01:27Z, 87 seconds after the opening. Anchored on the opening, 357 tokens were minted in the first hour, 616 within six hours and 1,023 within a day [^S03]. An edition four times the size of the LIA project sold out in the time that project took to reach its median mint.

The pace is worth holding next to the other projects here. Amoeba, released the day before by an artist with no established audience outside this space, took 844 days to sell 213 tokens. Blockbob Rorschach sold 1,024 in under ten hours. The work is not obviously more elaborate; the difference is a studio with a thirty-year reputation and a visual language collectors already recognised.

Across the 1,024 tokens the index reports 527 distinct owner addresses [^S03], so the edition is broadly held, with an average of roughly two tokens per holder.

The Art Blocks 500 wallet set was refreshed once this session from the platform's own profile index, by querying the `ab5d` user profile for its linked accounts. The query returned three linked addresses and all three were checked against every one of the 1,024 token rows [^S05][^S03]. Exactly one token in this edition sits in that set: token 188000737, invocation 737, held by `0xdd19308a9731cdecb67e0d80ca6823394208c045` and minted at 2021-10-30T02:16:01Z [^S04][^S05], a little over seven hours into the sale.

## Copyright and licensing

The index records a licence string of `CC BY-SA 4.0` for this project and a `link_to_license` of null [^S02]. Unlike the bare `CC BY` on the Amoeba project in this batch, this identifier is fully specified: it names a licence, a version and an international scope, and it resolves unambiguously to one deed even though the record does not link to it.

Read against that deed, Attribution-ShareAlike 4.0 International permits sharing and adaptation in any medium and for any purpose including commercially, subject to attribution and to a ShareAlike obligation requiring that adaptations be distributed under the same licence, with a prohibition only on applying additional legal or technological restrictions [^S08]. That is a notably permissive position for a studio with a long commercial practice, and it is the most permissive licence in this batch after the unversioned Attribution string on Amoeba.

The ShareAlike term has a practical consequence for cataloguing that the Attribution-only projects do not carry. A crop, a recolour, a composite plate or an adjusted still is an adaptation, and distributing one obliges the distributor to release it under CC BY-SA 4.0 as well. That is not a prohibition, but it is a commitment, and a publication that reproduces altered versions of these images without adopting the licence for those versions would be out of compliance. This package accordingly records a derivative note rather than a derivative ban.

Three rights domains should be kept apart, as elsewhere in this batch.

The first is the artwork, covered above, with the caveat that the record states no terms of sale and no terms for holders, and that ownership of a token confers no permission over the artwork beyond what the licence gives everyone.

The second is the artist's code, and here the situation is more interesting than usual. The program is unminified, readable working source, retrievable from the index by anyone. Retrievability is not a grant, and no licence statement or copyright notice appears anywhere in the program text. It is tempting to reason that a project licensed CC BY-SA must intend the same for its code, but the licence is recorded on the project and nothing in the record says it extends to the program as a program. Accordingly no artist code is reproduced in this package; what is returned instead is a description of the mechanism, the byte count, the digest, and reproductions of the published traits that can be independently checked against the index.

The third is the dependency. The work declares `p5@1.0.0` and does not render without it, and it relies on the library not merely for drawing primitives but for the noise function that generates every blot in the edition. The library carries its own licence, which is not the project's licence and is not stated in the project record. This session consulted the p5.js reference for the documented behaviour of the noise function [^S07] and did not establish the library's licence terms.

One further note belongs here. The artist link of record is a social media account rather than a site the artist controls end to end, and that account has publicly stated that it was compromised at least once [^S09]. Rights and provenance questions about this project should not be resolved by reference to posts on that account without independent corroboration.

## Close reading of examples

Four tokens were examined at the live renderer at `generator.artblocks.io`, each identified first by a `TokensByIds` query against the index so that hash, owner, mint time and published traits came from a response rather than from memory [^S04], and each opened at its canonical Art Blocks token page, all four of which returned HTTP 200 on a real fetch from the artblocks.io origin [^S06]. All four were observed with the browser pane displayed. In each case the sketch's own global variables were read alongside the pixel sampling, and the head's mirror symmetry was measured on 8,930 pixel pairs per token.

Token 188000737 is the Art Blocks 500 holding and was the first sustained observation. Its hash begins `0x9b84999b` and it was minted at 2021-10-30T02:16:01Z to `0xdd19308a9731cdecb67e0d80ca6823394208c045` [^S04]. Its published traits are the eater head shape, black-and-white head colour and swatch 2 [^S04]. On screen it is a cyan field holding a near-black and off-white blot head above a red body, with an off-white square for the left arm and a bright green square for the right. The blot has resolved into something legible: a dark band across the brow, a pale face with two dark vertical marks where eyes would be, a short dark bar at the mouth, and a heavy dark jaw. Nothing in the program knows about faces.

The live globals read the eater shape, the black-and-white head colour, noise scales of 3 horizontally and 2 vertically, a head palette of the two neutrals, and a non-head palette of cyan, red, off-white and green [^S06]. That last list is the mechanism in plain sight: swatch 2 is the six saturated primaries and secondaries, the neutral pair is appended to it, the whole eight-entry list is passed through the broken permutation, and the first four survivors become background, body, left arm and right arm. The off-white left arm is an entry from the neutral pair that the permutation happened to carry into the first four.

This token also supplied the static and control evidence. The frame counter read 1 and stayed at 1, and the sampled grid was identical across four seconds [^S06]. The program's `keyPressed`, `keyTyped` and `mousePressed` globals are all undefined in the running instance, so there is nothing to test [^S06]. This is a work with no controls, and unlike several others in this batch that is not a documentation gap but the actual design. The renderer's console carried a single log line printing the token hash, emitted by a debug statement that was shipped with the program [^S06].

Token 188000016 is the second sustained observation and sits at the coarse extreme of the unpublished parameter. Its hash begins `0xbce18f6d` and it was minted at 2021-10-29T19:01:54Z to `0x68615cc65127ab1bbe46f2a90428d0957c24a91b` [^S04]. Its published traits are the doubler head shape, coloured head colour and swatch 2 [^S04]. The live globals read noise scales of 1 and 1, the coarsest available, with a head palette of pure red and pure green and a non-head palette of off-white repeated for body and both arms [^S06].

The result is the loudest image of the four: an off-white field, a tall two-lobed head filled edge to edge with a fine interleave of red and green cells, and a dark navy body below. At unit noise scale the field changes sign almost every cell, so the blot never coheres into regions; it reads as dazzle. The two arms are the same colour here, necessarily, because the coloured branch assigns all three non-head roles from the neutral pair. Mirror symmetry measured zero mismatches in 8,930 pairs, which at this granularity is far more visible than on the smoother tokens, because each speckle has an exact partner.

Token 188000044 is the same edition at the opposite extreme. Its hash begins `0xe11e052d` and it was minted at 2021-10-29T19:02:19Z to `0xc659284cd530f1df076b38a469c4207d731a2710` [^S04]. Its published traits are the devo head shape, black-and-white head colour and swatch 2, the same swatch as the two tokens above [^S04]. The live globals read noise scales of 4 and 4, the finest available in the sense of stretching the field furthest [^S06].

On screen it is a red field, a stepped dark navy silhouette, and two large off-white rectangles inside it, one at the crown and one across the middle. There is no speckle at all. Two tokens drawn from the same swatch, three trait values apart in only one field, look nothing like each other, and the entire difference is the parameter the metadata does not record. The body is green and the arms are blue and yellow, which is swatch 2 again with a different four survivors from the permutation.

Token 188000023 was observed to check the coloured branch a second time and to measure the grid rounding. Its hash begins `0x26242c94` and it was minted at 2021-10-29T19:02:07Z to `0xf969293ffb9a7a54c9e813fcae79c1de9846e2d5` [^S04]. Its published traits are the eater head shape, coloured head colour and swatch 7 [^S04]. The live globals read a head palette of a pale yellow and a pink, which are the second and third entries of swatch 7 in their original relative order, and a non-head palette of the dark neutral for the background with the pale neutral repeated for body and both arms [^S06]. In the same reading the canvas measured 662 CSS pixels, the exact cell size 41.375, the rounded cell size 41, and the drawn extent 656 pixels, a shortfall of 6 [^S06]. Mirror symmetry again measured zero mismatches in 8,930 pairs.

## Significance and limitations

The clearest thing this project demonstrates is how badly a trait list can describe an edition. Three traits are published and all three reproduce perfectly from the hash, so by the usual standard the metadata is complete and correct. It is also nearly useless as a guide to what a token looks like. Two tokens sharing a swatch and differing in one trait can be a red-and-green dazzle pattern and a flat two-tone silhouette, because the parameter that separates them is not published. Anyone building rarity tables, filters or a catalogue from the Art Blocks metadata for project 188 is working with a description that omits the edition's dominant visual variable.

The second contribution is a small piece of comparative evidence about how these programs were written. The xorshift generator here, its 1,000-value output step, and the seed taken from a sixteen-character slice that includes the `0x` prefix are identical in construction to the Amoeba project released the previous day by a different artist. Two artists arriving independently at the same generator with the same two quirks is unlikely; a shared snippet circulating among Art Blocks contributors in 2021 is not. This package does not claim to have found the source of that snippet, but it does record the match as a fact that a wider survey could test across the platform.

The third is about what "on chain" carries. The program stored for this project is unminified working source, with named functions, commented palette tables and a debug statement that still prints the token hash to the console on every render. That is a more honest artefact than a minified build, and it is also a reminder that the thing preserved on a permanent record is whatever the artist happened to hand over, including the parts that were never meant to be read. The permutation routine that does not permute, and the swatch truncation that mutates a global table to no effect, survive in the same way.

The limitations of this package should be stated as plainly as the findings. The four visual observations cover four tokens out of 1,024, chosen to bracket the unpublished noise parameter and to cover both colour branches rather than sampled at random, so nothing here supports a claim about the typical appearance of the edition. The claim that the two noise scales are unpublished rests on the absence of a matching trait key across 1,024 tokens, which is strong but is an argument from absence. The mirror-symmetry measurement samples 8,930 pixel pairs per token at a stride, not every pixel, so it establishes symmetry to the granularity of a grid cell rather than bit-exactly. The grid-rounding figures were measured in one pane at one size and will differ at other window sizes. No artist statement informs any part of this package beyond one sentence of mint text; the website of record is a social account whose timeline was read in a logged-out view showing only recent posts. No on-chain transaction values were read, so nothing here measures what buyers paid. No contact was made with the artist.

Several questions remain open, and this package records them as open rather than filling them.

Why were the noise scales not published as traits? They are drawn in the same block as the three that were, by the same generator, and they matter more visually than the swatch index. Obtaining the feature-extraction script for project 188 would show whether they were considered and dropped or never offered.

Is the shared generator idiom a template? The construction here matches the Amoeba project exactly, including two defects. A survey of Art Blocks scripts from 2021 for the same sixteen-character slice and the same modulo-1000 output step would establish whether this is a common ancestor and, if so, how many editions inherit its quantisation.

Does the broken permutation measurably distort colour rarity? Because a single decimal drives every swap, the routine can only reach a small subset of orderings, so some colour roles are systematically more likely than a fair shuffle would make them. Quantifying that across all 1,024 tokens would turn a structural observation into a distribution, and this package did not do it.

What does `activated_at` denote in this index? The first mint precedes it by five days here, by two days on the LIA project and by eight on Amoeba. Three projects in one batch is enough to say the field does not mean what a catalogue would assume, and not enough to say what it does mean.

Does the CC BY-SA licence extend to the program? The record attaches a licence to the project and says nothing about the code as a program, and the code is unusually readable and therefore unusually reusable. A clarifying statement from the artist or the platform would settle a question that currently keeps a legible, well-organised piece of source out of circulation.

Finally, what happened with the compromised account, and does anything on it need to be treated as unreliable for provenance purposes? The account itself says it was taken over on at least one occasion. Any dossier that uses the artist's social posts as a source should establish which posts predate that.

[^S01]: Art Blocks. [Blockbob Rorschach by eBoy, collection page](https://www.artblocks.io/collection/blockbob-rorschach-by-eboy). Accessed 2026-09-18.
[^S02]: Art Blocks. [Art Blocks public GraphQL index, projects_metadata for project 188](https://artblocks-mainnet.hasura.app/v1/graphql). Accessed 2026-09-18.
[^S03]: Art Blocks. [Art Blocks public GraphQL index, tokens_metadata for all 1,024 tokens of project 188](https://artblocks-mainnet.hasura.app/v1/graphql). Accessed 2026-09-18.
[^S04]: Art Blocks. [Art Blocks public GraphQL index, tokens_metadata for the four example tokens of project 188](https://artblocks-mainnet.hasura.app/v1/graphql). Accessed 2026-09-18.
[^S05]: Art Blocks. [Art Blocks public GraphQL index, user_profiles for the AB5D collection](https://artblocks-mainnet.hasura.app/v1/graphql). Accessed 2026-09-18.
[^S06]: Art Blocks. [Art Blocks live renderer for project 188 tokens](https://generator.artblocks.io/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/188000737). Accessed 2026-09-18.
[^S07]: Processing Foundation. [p5.js reference: noise](https://p5js.org/reference/p5/noise/). Accessed 2026-09-18.
[^S08]: Creative Commons. [Deed: Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Accessed 2026-09-18.
[^S09]: eBoy. [eBoy (@eBoyArts) on X, the artist link of record](https://x.com/eboyarts). Accessed 2026-09-18.
