{
  "sources": [
    {
      "id": "S01",
      "author": "Art Blocks",
      "title": "Blockbob Rorschach by eBoy, collection page",
      "url": "https://www.artblocks.io/collection/blockbob-rorschach-by-eboy",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "Page rendered in the browser pane and its visible text extracted. The PROJECT DETAILS, COLLECTIONS and MEET THE ARTIST accordions were present but not expanded; their contents were not read and this is recorded as a gap rather than as an absence.",
      "evidenceLocators": [
        "Header block: 'View live', 'Blockbob Rorschach', 'by eBoy', 'An Art Blocks 500 release, in the Factory category', 'Fixed edition of 1,024 unique artworks', 'Released on 30 October 2021'",
        "WHAT TO EXPECT panel carries the entire description as one sentence: 'On-chain, generative pixel blot heads.'",
        "A 'View live' control appears at the head of the page, and no animated or interactive badge appears anywhere in the page chrome",
        "Accordion headings present but not expanded: PROJECT DETAILS, COLLECTIONS FEATURING THIS PROJECT, FROM THE JOURNAL, MEET THE ARTIST",
        "Related-projects rail names Amoeba by last-even, another project in this batch",
        "The displayed release date of 30 October 2021 is the 2021-10-29T19:00:00Z opening rendered in a timezone ahead of UTC"
      ]
    },
    {
      "id": "S02",
      "author": "Art Blocks",
      "title": "Art Blocks public GraphQL index, projects_metadata for project 188",
      "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "Named operation ProjectBySlug executed by HTTP POST with variables {\"slug\":\"blockbob-rorschach-by-eboy\"}. Full query text, variables and timings recorded in evidence.json. The complete returned program, 7,580 bytes of unminified source, was read end to end.",
      "evidenceLocators": [
        "Response field projects_metadata[0].id = 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-188, corroborating contract and project identity",
        "Response fields license = 'CC BY-SA 4.0' and link_to_license = null",
        "Response fields activated_at = 2021-10-23T18:04:15+00:00, start_datetime = 2021-10-29T19:00:00+00:00, completed_at = 2021-10-30T04:51:27+00:00, updated_at = 2021-10-14T17:08:45.316528",
        "Response fields invocations = 1024, max_invocations = 1024, script_count = 1, display_static = false, aspect_ratio = 1, vertical_name = 'factory'",
        "Response fields price_per_token_in_wei = 200000000000000000, artist_address = 0x8869e7b48e33c5f1fffb0f15f6084c7b438d6371, artist_interview = null, website = https://twitter.com/eboyarts",
        "Response field description, in full: 'On-chain, generative pixel blot heads.'",
        "Program: unminified working source with named functions and variables, numbered palette comments, and a console.log statement printing the token hash left in place",
        "Program, seed: parseInt(tokenData.hash.slice(0, 16), 16), a slice that includes the 0x prefix, so fourteen hexadecimal digits are parsed",
        "Program, class Random.random_dec: three-shift xorshift whose output is the absolute value of the state modulo 1000 divided by 1000, identical in construction to the Amoeba project in this batch",
        "Program, setup: six draws in fixed order being a head shape index, a decimal for head colour, a swatch index 1 to 8, a decimal used to permute the swatch, and two decimals selecting the horizontal and vertical noise scales",
        "Program, weightedRandom: head colour weighted {'colored':0.2,'bw':0.8}; noise scales weighted {1:0.4, 2:0.3, 3:0.2, 4:0.1} independently in each axis",
        "Program, headshapes array: six hand-designed silhouettes named block, eater, lenser, doubler, plus and devo, each declared as a stack of two or three rectangle dimensions",
        "Program, swatches array: nine hard-coded hexadecimal lists, the first being the neutral pair #282837 and #f3f2f1 and the other eight being the palettes the swatch trait numbers 1 to 8",
        "Program, randomizeArray: draws a single decimal once and reuses it for every swap, so the permutation is a deterministic function of one number and preserves most of the original ordering; it is not a shuffle",
        "Program, buildHeadSwatch: applies that routine to the selected swatch array in place and truncates it to length two, permanently shortening the entry in the global swatch table; inert because setup runs once",
        "Program, createMatrixBlock and customNoise: each head cell is Math.round(noise(h/noiseScaleH, v/noiseScaleV)) using p5's Perlin noise seeded by noiseSeed(seed), giving a binary index into the two-colour head palette",
        "Program, drawHead: every cell is drawn twice, at its own horizontal offset and at the mirrored offset, which is the Rorschach symmetry",
        "Program, colour roles: on a bw token the head uses the neutral pair and background, body and the two arms come from the selected swatch; on a colored token the head uses two swatch colours and background, body and both arms come from the neutral pair, so both arms are necessarily the same colour",
        "Program, setup: noLoop() is called and draw() runs exactly once; there is no key, mouse or touch handler anywhere in the program and no audio call",
        "Program, geometry: the canvas is square at the smaller window dimension, the cell size is that divided by sixteen and rounded to an integer, and deliberate overhang is added to the body and arms to cover the rounding shortfall"
      ]
    },
    {
      "id": "S03",
      "author": "Art Blocks",
      "title": "Art Blocks public GraphQL index, tokens_metadata for all 1,024 tokens of project 188",
      "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "Named operation TokensByProject executed by HTTP POST with variables {\"pid\":\"0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-188\"}, returning the complete edition. An independent reimplementation of the exact draw order was run against all 1,024 returned hashes.",
      "evidenceLocators": [
        "features.headshape reproduced 1024 of 1024; counts block 186, doubler 182, plus 177, devo 174, lenser 157, eater 148",
        "features.headcolor reproduced 1024 of 1024; counts bw 820 and colored 204, being 19.92 per cent against the program's nominal 0.2 weight",
        "features.swatch reproduced 1024 of 1024 as a direct integer draw in 1 to 8; counts 2:154, 7:138, 5:137, 6:136, 1:129, 4:113, 8:117, 3:100",
        "The two noise-scale draws correspond to no published trait key; across the edition the sixteen combinations distribute as their weights predict, with 1x1 on 141 tokens and 4x4 on 8",
        "Mint timestamps: exactly one token, invocation 0, was minted before the public opening, at 2021-10-18T18:40:26+00:00, five days before the recorded activation",
        "Mint pace anchored on the 2021-10-29T19:00:00Z opening: 357 within one hour, 616 within six hours, 1023 within 24 hours; final mint 2021-10-30T04:51:27+00:00, 9.86 hours after the opening",
        "First public mint 2021-10-29T19:01:27+00:00, 87 seconds after the opening",
        "Ownership across the edition: 527 distinct owner addresses; the artist address holds exactly one token",
        "Exactly one token, 188000737, is held by an address in the refreshed AB5D linked-wallet set"
      ]
    },
    {
      "id": "S04",
      "author": "Art Blocks",
      "title": "Art Blocks public GraphQL index, tokens_metadata for the four example tokens of project 188",
      "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "Named operation TokensByIds executed by HTTP POST with the four exact composite token keys, issued so that every example token's hash, owner and mint timestamp is read from a response rather than from working memory.",
      "evidenceLocators": [
        "Token 188000737: hash 0x9b84999bdd45f3d040633f76e94a41cbb5b62da43d0c1b3c46cc544d14c4266a, owner 0xdd19308a9731cdecb67e0d80ca6823394208c045, minted_at 2021-10-30T02:16:01+00:00, invocation 737, headshape eater, headcolor bw, swatch 2",
        "Token 188000016: hash 0xbce18f6d4845e459b1174381f5438502e566cbefa0d8322c24e704548c73f67e, owner 0x68615cc65127ab1bbe46f2a90428d0957c24a91b, minted_at 2021-10-29T19:01:54+00:00, invocation 16, headshape doubler, headcolor colored, swatch 2",
        "Token 188000044: hash 0xe11e052d638ad6b65e9381412ea1c007ed0c545af7104376a1ce8e540d47cb09, owner 0xc659284cd530f1df076b38a469c4207d731a2710, minted_at 2021-10-29T19:02:19+00:00, invocation 44, headshape devo, headcolor bw, swatch 2",
        "Token 188000023: hash 0x26242c94af55070ffe4d7af10f124327bf97ea5fcfb8e55908c6b2ca70bd01c4, owner 0xf969293ffb9a7a54c9e813fcae79c1de9846e2d5, minted_at 2021-10-29T19:02:07+00:00, invocation 23, headshape eater, headcolor colored, swatch 7"
      ]
    },
    {
      "id": "S05",
      "author": "Art Blocks",
      "title": "Art Blocks public GraphQL index, user_profiles for the AB5D collection",
      "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "Discovery query for the ab5d profile executed by HTTP POST with variables {}, returning the complete linked_accounts set. Refreshed once this session and reused across the batch; no wallet count was assumed in advance.",
      "evidenceLocators": [
        "Response user_profiles[0].linked_accounts returning the complete set of three addresses: 0xce6dc14c5494d8a4325a81d3b257d130fa2039d1, 0x2247247ee0eee59557e6cd14f7e047f6a9309b5c, 0xdd19308a9731cdecb67e0d80ca6823394208c045",
        "The third linked address is the indexed owner of token 188000737, the only match across all 1,024 tokens in this project"
      ]
    },
    {
      "id": "S06",
      "author": "Art Blocks",
      "title": "Art Blocks live renderer for project 188 tokens",
      "url": "https://generator.artblocks.io/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/188000737",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "Four tokens opened in the original renderer in the browser pane on the researcher's computer, with the pane displayed. Each canvas was copied to an offscreen 2D surface and sampled on a fixed 81-point grid and on 8,930 mirrored pixel pairs across the head band. The sketch's own global variables were read alongside each observation, the renderer console was read, and the running p5 instance was probed for noise behaviour. Screenshots captured of three. Canonical token page status checks were issued by fetch from the artblocks.io origin.",
      "evidenceLocators": [
        "All four tokens: head-band mirror test over 8,930 sampled pixel pairs returned 0 mismatches above a per-channel tolerance of 8, establishing exact mirror symmetry of the head to grid-cell granularity",
        "Token 188000737: frame counter read 1 and stayed at 1, and the sampled grid was identical across a four-second interval, confirming the single-frame noLoop render",
        "Token 188000737: window.keyPressed, window.keyTyped and window.mousePressed are all undefined in the running instance, so the work has no controls to exercise",
        "Token 188000737 renderer console carried one log line, 'this hash: 0x9b84999bdd45f3d040633f76e94a41cbb5b62da43d0c1b3c46cc544d14c4266a', emitted by a debug statement shipped with the program",
        "Token 188000737 live globals: headShape 'eater', headColor 'bw', noiseScaleH 3, noiseScaleV 2, headSwatch ['#282837','#f3f2f1'], nonHeadSwatch ['#00ffff','#ff0000','#f3f2f1','#00ff00']",
        "Token 188000016 live globals: headShape 'doubler', headColor 'colored', noiseScaleH 1, noiseScaleV 1, headSwatch ['#ff0000','#00ff00'], nonHeadSwatch ['#f3f2f1','#282837','#282837','#282837'], showing that coloured tokens take all three non-head roles from the neutral pair",
        "Token 188000044 live globals: headShape 'devo', headColor 'bw', noiseScaleH 4, noiseScaleV 4, nonHeadSwatch ['#ff0000','#00ff00','#0000ff','#ffff00']",
        "Token 188000023 live globals: headShape 'eater', headColor 'colored', noiseScaleH 4, noiseScaleV 2, headSwatch ['#fce38a','#fc5185'], which are the second and third entries of swatch 7 in their original relative order",
        "Token 188000023 geometry reading: canvas 662 CSS pixels square, exact cell size 41.375, rounded cell size 41, drawn extent 656 pixels, shortfall 6 pixels",
        "p5 noise probe in the running instance at integer coordinates returned values between 0.135 and 0.753 rather than a constant midpoint, rejecting the hypothesis that a 1 by 1 noise scale would threshold every cell identically; the values cluster near 0.5, which is why the threshold yields balanced soft-edged regions",
        "Audio status: document.querySelectorAll('audio,video') returned 0 and p5.SoundFile is undefined in the running instance",
        "Canonical token page checks by fetch from the artblocks.io origin: 188000737, 188000016, 188000044 and 188000023 each returned HTTP 200 with a final URL of the form https://www.artblocks.io/token/1/<contract>/<tokenId>"
      ]
    },
    {
      "id": "S07",
      "author": "Processing Foundation",
      "title": "p5.js reference: noise",
      "url": "https://p5js.org/reference/p5/noise/",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "Reference page for the noise function that generates every blot in this edition, rendered in the browser pane and read for the documented behaviour and the role of input scaling. The library's own licence terms were not established from this page.",
      "evidenceLocators": [
        "Reference text: 'noise() always returns values between 0 and 1. It returns the same value for a given input while a sketch is running.'",
        "Reference text: 'The noiseSeed() function can be used to generate the same sequence of Perlin noise values each time a sketch runs', which is what makes this work deterministic from its token hash",
        "Reference text: 'The character of the noise can be adjusted in two ways. The first way is to scale the inputs', which is exactly what the two unpublished parameters do",
        "The page does not state the value returned at integer lattice coordinates, which was established instead by probing the running instance"
      ]
    },
    {
      "id": "S08",
      "author": "Creative Commons",
      "title": "Deed: Attribution-ShareAlike 4.0 International",
      "url": "https://creativecommons.org/licenses/by-sa/4.0/",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "The canonical deed for the exact licence identifier recorded against the project, read in full in the browser pane. The full legal code behind the deed was not opened.",
      "evidenceLocators": [
        "Deed heading: 'Attribution-ShareAlike 4.0 International', canonical URL https://creativecommons.org/licenses/by-sa/4.0/",
        "You are free to: 'Share — copy and redistribute the material in any medium or format for any purpose, even commercially' and 'Adapt — remix, transform, and build upon the material for any purpose, even commercially'",
        "Under the following terms: Attribution, and ShareAlike 'If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original'",
        "Under the following terms: 'No additional restrictions'",
        "Notices: 'No warranties are given. The license may not give you all of the permissions necessary for your intended use.'"
      ]
    },
    {
      "id": "S09",
      "author": "eBoy",
      "title": "eBoy (@eBoyArts) on X, the artist link of record",
      "url": "https://x.com/eboyarts",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "The website of record named in the project row resolves to this social profile. Opened in the browser pane and read in a logged-out view, which shows the profile header and only the most recent posts. No login was used and no older posts were retrieved, so nothing about project 188 was reachable. Content on this page is treated as data reported with its access time, not as an authority.",
      "evidenceLocators": [
        "Profile header: 'eBoy', '@eBoyArts', bio 'GODFATHERS OF PIXEL', links eboyarts.github.io/links/ and eboy.com, 'Joined October 2010', 14.7k followers",
        "The logged-out view showed posts dated 4 to 9 September and no material relating to project 188",
        "A post dated 9 September states that the account had been compromised that night and that a token circulating under its name was not the studio's, which bears on how much authority this link of record can carry for provenance",
        "The project row records this URL in its twitter.com form; it resolves to the x.com host"
      ]
    }
  ]
}
