{
  "schema": "ab5d-series-evidence/2",
  "slug": "chroma-theory-by-pawel-dudko",
  "chainId": 1,
  "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
  "projectId": 170,
  "timezoneNote": "Every timestamp is UTC with an explicit offset or trailing Z, as the source returned it.",
  "codeSha256": "af5637d607606dc4d6deedebc53e453e9815e41dc8832e6b9fa2b056cb9aa6af",
  "graphqlRetrievals": [
    {
      "id": "G01",
      "endpoint": "https://artblocks-mainnet.hasura.app/v1/graphql",
      "method": "HTTP POST",
      "operation": "ab5d-linked-wallets",
      "query": "query { user_profiles(where: {username: {_eq: \"ab5d\"}}) { username name linked_accounts { public_address } } }",
      "variables": {},
      "identityFilter": "user_profiles where username _eq \"ab5d\" (inline filter, no variables sent)",
      "requestedAt": "2026-09-18T06:28:13.140Z",
      "respondedAt": "2026-09-18T06:28:13.402Z",
      "httpStatus": 200,
      "outcome": "ok",
      "result": {
        "username": "ab5d",
        "name": "AB5D",
        "linkedAccounts": [
          "0xce6dc14c5494d8a4325a81d3b257d130fa2039d1",
          "0x2247247ee0eee59557e6cd14f7e047f6a9309b5c",
          "0xdd19308a9731cdecb67e0d80ca6823394208c045"
        ],
        "count": 3
      },
      "dataClass": "indexed data, not a direct chain call",
      "chainBlock": null,
      "note": "The same query was executed twice earlier in this session and returned the same three addresses each time."
    },
    {
      "id": "G02",
      "endpoint": "https://artblocks-mainnet.hasura.app/v1/graphql",
      "method": "HTTP POST",
      "operation": "ProjectBySlug",
      "query": "query ProjectBySlug($slug: String!) {\n  projects_metadata(where: {slug: {_eq: $slug}}) {\n    id project_id contract_address slug name artist_name artist_address description\n    invocations max_invocations complete paused\n    activated_at completed_at start_datetime updated_at\n    license link_to_license script_type_and_version aspect_ratio display_static\n    price_per_token_in_wei currency_symbol vertical_name website artist_interview\n    script_count script scripts { index script }\n  }\n}",
      "variables": {
        "slug": "chroma-theory-by-pawel-dudko"
      },
      "identityFilter": "projects_metadata where slug _eq \"chroma-theory-by-pawel-dudko\"; identity corroborated by the returned composite id",
      "compositeKeyNote": "Project identity is the composite key 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-170, joining lowercase contract address and on-chain project ID.",
      "requestedAt": "2026-09-18T06:28:13.403Z",
      "respondedAt": "2026-09-18T06:28:13.690Z",
      "httpStatus": 200,
      "outcome": "ok",
      "returnedFieldsUsed": [
        "id",
        "project_id",
        "name",
        "artist_name",
        "artist_address",
        "invocations",
        "max_invocations",
        "activated_at",
        "start_datetime",
        "completed_at",
        "updated_at",
        "license",
        "link_to_license",
        "script_type_and_version",
        "aspect_ratio",
        "display_static",
        "price_per_token_in_wei",
        "vertical_name",
        "website",
        "artist_interview",
        "script_count",
        "script",
        "description"
      ],
      "dataClass": "indexed data, not a direct chain call",
      "chainBlock": null
    },
    {
      "id": "G03",
      "endpoint": "https://artblocks-mainnet.hasura.app/v1/graphql",
      "method": "HTTP POST",
      "operation": "TokensByProject",
      "query": "query TokensByProject($pid: String!) {\n  tokens_metadata(where: {project_id: {_eq: $pid}}, order_by: {invocation: asc}) {\n    id token_id invocation hash owner_address minted_at features\n  }\n}",
      "variables": {
        "pid": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-170"
      },
      "identityFilter": "tokens_metadata where project_id _eq the composite project key, ordered by invocation ascending",
      "requestedAt": "2026-09-18T06:28:13.691Z",
      "respondedAt": "2026-09-18T06:28:13.980Z",
      "httpStatus": 200,
      "outcome": "ok",
      "rowsReturned": 106,
      "dataClass": "indexed data, not a direct chain call",
      "chainBlock": null
    },
    {
      "id": "G04",
      "endpoint": "https://artblocks-mainnet.hasura.app/v1/graphql",
      "method": "HTTP POST",
      "operation": "TokensByIds",
      "query": "query TokensByIds($ids: [String!]) {\n  tokens_metadata(where: {id: {_in: $ids}}) {\n    id token_id invocation hash owner_address minted_at features\n  }\n}",
      "variables": {
        "ids": [
          "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-170000004",
          "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-170000000",
          "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-170000013",
          "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-170000010"
        ]
      },
      "identityFilter": "tokens_metadata where id _in the four exact composite token keys for the example tokens",
      "requestedAt": "2026-09-18T06:34:00.590Z",
      "respondedAt": "2026-09-18T06:34:00.860Z",
      "httpStatus": 200,
      "outcome": "ok",
      "rowsReturned": 4,
      "dataClass": "indexed data, not a direct chain call",
      "chainBlock": null,
      "note": "Issued so that every example token's hash, owner and mint timestamp is read from a response rather than from working memory."
    }
  ],
  "codeInspection": {
    "retrievalId": "G02",
    "sourceField": "projects_metadata.script",
    "storedBytes": 2495,
    "sha256": "af5637d607606dc4d6deedebc53e453e9815e41dc8832e6b9fa2b056cb9aa6af",
    "digestScope": "The digest is over the stored bytes, which are the packed form as published on chain.",
    "digestMethod": "SHA-256 over the UTF-8 bytes of the returned script field, computed with the Web Crypto API in the browser pane",
    "retrievedAt": "2026-09-18T06:28:13.690Z",
    "runtime": "p5@1.0.0 as declared; the renderer page loads only https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.0.0/p5.min.js",
    "scriptCount": 1,
    "packing": {
      "form": "Dean Edwards style base-62 packer output, beginning eval(function(p,a,c,k,e,r)",
      "parameters": {
        "base": 62,
        "tokenCount": 128,
        "keywordTableEntries": 128
      },
      "unpackMethod": "The substitution was reimplemented as pure string work: the template, base, token count and keyword table were extracted by regular expression, the template's escaping undone, and each base-62 token replaced with its keyword. The packed code was not executed.",
      "unpackedCharacters": 2651
    },
    "fullReadCoverage": {
      "seedHandling": "parseInt of a sixteen-character slice of the hash string that includes the 0x prefix, so fourteen hexadecimal digits are parsed into a 56-bit value beyond exact integer range. Separately, 32 hash byte pairs from offset 2 are each reduced modulo 10.",
      "parameterSelection": "Byte-derived values supply main hue, saturation and brightness, the spot count, the centre radius and two brightness values. The xorshift generator supplies each spot's radius, noise coordinate, x, y and hue, five draws per spot.",
      "renderingSequence": "Three WEBGL buffers at one fifth pixel density. Spots and the centre circle are drawn into the first; a vertex and fragment shader pair blurs it into the second; the same pair blurs again into the third; the third is drawn to the visible canvas.",
      "timeAndInteraction": "No interaction handlers of any kind. Two quantities advance per frame: a counter by 0.04 feeding Perlin noise to set the blur radius, and each spot's noise coordinate by a fresh generator draw, so the generator state is consumed continuously and never resets.",
      "externalDependencies": "p5 only. The GLSL vertex and fragment shaders are strings inside the program, compiled at runtime. No network fetches, no external assets, no audio."
    },
    "executed": true,
    "executionDisclosure": "The unpacked program was read as text; the packed form was never executed by the researcher. Separately the program was executed by the official Art Blocks renderer during the token observations, where its internal variables were read. Reading and execution are recorded as separate activities."
  },
  "tokenPageChecks": [
    {
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/170000004",
      "status": 200,
      "observedAt": "2026-09-18T06:33:59.341Z",
      "method": "GET via fetch from the artblocks.io origin in the browser pane",
      "outcome": "fetched",
      "finalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/170000004"
    },
    {
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/170000000",
      "status": 200,
      "observedAt": "2026-09-18T06:33:59.909Z",
      "method": "GET via fetch from the artblocks.io origin in the browser pane",
      "outcome": "fetched",
      "finalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/170000000"
    },
    {
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/170000013",
      "status": 200,
      "observedAt": "2026-09-18T06:34:00.245Z",
      "method": "GET via fetch from the artblocks.io origin in the browser pane",
      "outcome": "fetched",
      "finalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/170000013"
    },
    {
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/170000010",
      "status": 200,
      "observedAt": "2026-09-18T06:34:00.586Z",
      "method": "GET via fetch from the artblocks.io origin in the browser pane",
      "outcome": "fetched",
      "finalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/170000010"
    }
  ],
  "tokenObservations": [
    {
      "token_id": "170000004",
      "invocation": 4,
      "hash": "0x36cebde04f556fd45b614d96692dc65a1c8d804923dbd0dc25d6568017f4fcaa",
      "owner_address": "0xdd19308a9731cdecb67e0d80ca6823394208c045",
      "minted_at": "2021-10-28T16:48:19+00:00",
      "identitySource": "G04",
      "canonicalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/170000004",
      "inspectedMediaUrl": "https://generator.artblocks.io/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/170000004",
      "mediaType": "text/html, original live renderer",
      "publishedFeatures": {
        "Spots": 5,
        "BackgroundColor": 153,
        "CenterColor": 181,
        "CenterRadius": 47,
        "ColorDeviation": 117
      }
    },
    {
      "token_id": "170000000",
      "invocation": 0,
      "hash": "0xc05354390b823ea840295d3b8a938de6c2a4942b9c1150f03d77d77fc5642f81",
      "owner_address": "0x7d8d846f24ce0d2c69fcf557edb92f4f8f9aebc1",
      "minted_at": "2021-10-09T11:41:28+00:00",
      "identitySource": "G04",
      "ownerNote": "Identical to the indexed artist_address, so the artist proof is still held.",
      "canonicalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/170000000",
      "inspectedMediaUrl": "https://generator.artblocks.io/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/170000000",
      "mediaType": "text/html, original live renderer",
      "publishedFeatures": {
        "Spots": 5,
        "BackgroundColor": 183,
        "CenterColor": 328,
        "CenterRadius": 36,
        "ColorDeviation": 127
      }
    },
    {
      "token_id": "170000013",
      "invocation": 13,
      "hash": "0x09eda166414fc93e7dc5138e78f250414ddb42345ad260d750a897134b76912b",
      "owner_address": "0x26d39fc7341567c8b0bb96382fc54f367f4298ea",
      "minted_at": "2021-10-28T16:59:44+00:00",
      "identitySource": "G04",
      "canonicalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/170000013",
      "inspectedMediaUrl": "https://generator.artblocks.io/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/170000013",
      "mediaType": "text/html, original live renderer",
      "publishedFeatures": {
        "Spots": 7,
        "BackgroundColor": 206,
        "CenterColor": 71,
        "CenterRadius": 44,
        "ColorDeviation": 121
      }
    },
    {
      "token_id": "170000010",
      "invocation": 10,
      "hash": "0x99fe896c25bd634f21e5992750f1193064262f3d44b66391dc08ecb0b32274e8",
      "owner_address": "0xc896866e927e6f8a416ba209976115e79fa0a66f",
      "minted_at": "2021-10-28T16:52:15+00:00",
      "identitySource": "G04",
      "canonicalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/170000010",
      "inspectedMediaUrl": "https://generator.artblocks.io/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/170000010",
      "mediaType": "text/html, original live renderer",
      "publishedFeatures": {
        "Spots": 5,
        "BackgroundColor": 331,
        "CenterColor": 51,
        "CenterRadius": 25,
        "ColorDeviation": 49
      }
    }
  ],
  "visualObservations": [
    {
      "observationId": "V01",
      "kind": "sustained",
      "token_id": "170000004",
      "exampleId": "E01",
      "observer": "Claude (claude-opus-5), running in Cowork mode on the coordinator's computer; no coordinator or third-party observation is incorporated",
      "method": "Original Art Blocks renderer opened in the browser pane. The artwork renders to a WebGL context, so the canvas was copied to a 2D surface for pixel sampling. The sketch's own frameCount, noise counter, blur radius, spot count, centre radius, main hue and per-spot hue array were read alongside each sample. Screenshot captured.",
      "canvas": "1324 by 1324",
      "workingDimension": 662,
      "observationWindowUtc": [
        "2026-09-18T06:34:24.796Z",
        "2026-09-18T06:34:37.366Z"
      ],
      "elapsedObservedSeconds": 15.1,
      "states": [
        {
          "atMs": 0,
          "wallClock": "2026-09-18T06:34:24.796Z",
          "frameCount": 776,
          "noiseCounter": 32.04,
          "blurRadius": 100.89,
          "signature": 3286421146
        },
        {
          "atMs": 2520,
          "wallClock": "2026-09-18T06:34:27.316Z",
          "frameCount": 927,
          "noiseCounter": 38.08,
          "blurRadius": 101.08,
          "signature": 4066193303
        },
        {
          "atMs": 5033,
          "wallClock": "2026-09-18T06:34:29.829Z",
          "frameCount": 1077,
          "noiseCounter": 44.08,
          "blurRadius": 116.2,
          "signature": 3017633451
        },
        {
          "atMs": 7547,
          "wallClock": "2026-09-18T06:34:32.344Z",
          "frameCount": 1228,
          "noiseCounter": 50.12,
          "blurRadius": 102.35,
          "signature": 3790381819
        },
        {
          "atMs": 10056,
          "wallClock": "2026-09-18T06:34:34.852Z",
          "frameCount": 1378,
          "noiseCounter": 56.12,
          "blurRadius": 124.59,
          "signature": 1847721447
        },
        {
          "atMs": 12570,
          "wallClock": "2026-09-18T06:34:37.366Z",
          "frameCount": 1529,
          "noiseCounter": 62.16,
          "blurRadius": 143.74,
          "signature": 4046578313
        }
      ],
      "sketchValues": {
        "spotsDrawn": 5,
        "centerRadiusPct": 47.22,
        "mainColorH": 0,
        "mainColorS": 67.78,
        "mainColorB": 95.56,
        "perSpotHues": [
          320.04,
          101.88,
          352.08,
          337.68
        ],
        "computedBackgroundHue": 333.96
      },
      "traitComparison": {
        "Spots": {
          "published": 5,
          "observed": 5,
          "agrees": true
        },
        "CenterRadius": {
          "published": 47,
          "observed": 47.22,
          "agrees": true,
          "note": "truncated"
        },
        "BackgroundColor": {
          "published": 153,
          "computedFromSketch": 333.96,
          "agrees": false
        }
      },
      "motionStatus": "observed across changing states; six distinct signatures with no repetition and no end state",
      "concreteObservation": "Soft magenta and rose across the upper half, an olive-green passage at the right, a warm cream void low and left, dissolving to near-white at the left edge. No hard edge anywhere in the image and no nameable shape.",
      "controlsTested": [],
      "controlsNote": "None attempted: the program defines no key or mouse handler and the project page carries no interactive badge.",
      "audioStatus": "not auditioned because no audio path exists: zero audio or video elements, only p5 1.0.0 with no sound add-on, and no audio call in the unpacked program. Nothing was heard.",
      "limitations": "The first sample was taken at frame 776, so the opening of this token's animation was not observed."
    },
    {
      "observationId": "V02",
      "kind": "sustained",
      "token_id": "170000000",
      "exampleId": "E02",
      "observer": "Claude (claude-opus-5), as V01",
      "method": "As V01, plus a pixel sample of the finished canvas and a read of the complete per-spot hue array for reproduction checking",
      "canvas": "1324 by 1324",
      "workingDimension": 662,
      "observationWindowUtc": [
        "2026-09-18T06:33:14.849Z",
        "2026-09-18T06:33:27.423Z"
      ],
      "elapsedObservedSeconds": 15.1,
      "states": [
        {
          "atMs": 0,
          "wallClock": "2026-09-18T06:33:14.849Z",
          "frameCount": 3703,
          "noiseCounter": 149.12,
          "blurRadius": 140.03,
          "signature": 1884217992
        },
        {
          "atMs": 2521,
          "wallClock": "2026-09-18T06:33:17.370Z",
          "frameCount": 3853,
          "noiseCounter": 155.12,
          "blurRadius": 124.53,
          "signature": 2363921432
        },
        {
          "atMs": 5033,
          "wallClock": "2026-09-18T06:33:19.882Z",
          "frameCount": 4004,
          "noiseCounter": 161.16,
          "blurRadius": 115.46,
          "signature": 459822830
        },
        {
          "atMs": 7544,
          "wallClock": "2026-09-18T06:33:22.393Z",
          "frameCount": 4155,
          "noiseCounter": 167.2,
          "blurRadius": 144.79,
          "signature": 186300537
        },
        {
          "atMs": 10056,
          "wallClock": "2026-09-18T06:33:24.905Z",
          "frameCount": 4306,
          "noiseCounter": 173.24,
          "blurRadius": 105.26,
          "signature": 3720663049
        },
        {
          "atMs": 12573,
          "wallClock": "2026-09-18T06:33:27.423Z",
          "frameCount": 4457,
          "noiseCounter": 179.28,
          "blurRadius": 129.41,
          "signature": 701896434
        }
      ],
      "sketchValues": {
        "spots": 3.4444,
        "spotsDrawn": 5,
        "centerRadiusPx": 239.06,
        "centerRadiusPct": 36.11,
        "mainColorH": 360,
        "perSpotHues": [
          59.04,
          41.76,
          161.28,
          137.88
        ],
        "computedBackgroundHue": 83.04,
        "computedCentreHue": 340.92
      },
      "reproductionCheck": "The independent reimplementation produced a background hue of 83.04 and a centre hue of 340.92 for this token before the sketch was read, and the sketch reports the same values. The reimplementation is therefore correct against the running artwork.",
      "renderedPixelSample": {
        "corner": {
          "rgb": [
            244,
            181,
            38
          ],
          "hue": 42
        },
        "centre": {
          "rgb": [
            217,
            216,
            185
          ],
          "hue": 58
        }
      },
      "traitComparison": {
        "Spots": {
          "published": 5,
          "observed": 5,
          "agrees": true
        },
        "CenterRadius": {
          "published": 36,
          "observed": 36.11,
          "agrees": true
        },
        "BackgroundColor": {
          "published": 183,
          "computedFromSketch": 83.04,
          "renderedCornerHue": 42,
          "agrees": false
        },
        "CenterColor": {
          "published": 328,
          "computedFromSketch": 340.92,
          "renderedCentreHue": 58,
          "agrees": false
        }
      },
      "motionStatus": "observed across changing states; six distinct signatures, noise counter advancing exactly 0.04 per frame across 754 frames",
      "concreteObservation": "A large warm amber mass upper left, a green and yellow passage across the lower right, cool grey-white between them, all edges dissolved.",
      "controlsTested": [],
      "audioStatus": "not auditioned; no audio path exists, as V01",
      "limitations": "The first sample was taken at frame 3703, so the opening of this token's animation was not observed."
    },
    {
      "observationId": "V03",
      "kind": "focused",
      "token_id": "170000013",
      "exampleId": "E03",
      "observer": "Claude (claude-opus-5), as V01",
      "method": "As V01, with two samples five seconds apart rather than a six-sample series",
      "canvas": "1324 by 1324",
      "observationWindowUtc": [
        "2026-09-18T06:35:05.117Z",
        "2026-09-18T06:35:10.136Z"
      ],
      "elapsedObservedSeconds": 5.0,
      "states": [
        {
          "atMs": 0,
          "wallClock": "2026-09-18T06:35:05.117Z",
          "frameCount": 647,
          "noiseCounter": 26.88,
          "blurRadius": 144.9,
          "signature": 3448487615
        },
        {
          "atMs": 5019,
          "wallClock": "2026-09-18T06:35:10.136Z",
          "frameCount": 948,
          "noiseCounter": 38.92,
          "blurRadius": 130.5,
          "signature": 356807831
        }
      ],
      "sketchValues": {
        "spotsDrawn": 7,
        "centerRadiusPct": 44.44
      },
      "traitComparison": {
        "Spots": {
          "published": 7,
          "observed": 7,
          "agrees": true
        },
        "CenterRadius": {
          "published": 44,
          "observed": 44.44,
          "agrees": true
        }
      },
      "motionStatus": "observed at two moments five seconds apart; the signature changed and the frame counter advanced 301 frames",
      "concreteObservation": "Pale lilac and periwinkle across the centre and lower left, a mint and aqua passage upper right, a soft lemon mass at the lower left corner, against near-white. The coolest of the four observed.",
      "controlsTested": [],
      "audioStatus": "not auditioned; no audio path exists, as V01",
      "limitations": "Two samples only; no extended series."
    },
    {
      "observationId": "V04",
      "kind": "focused",
      "token_id": "170000010",
      "exampleId": "E04",
      "observer": "Claude (claude-opus-5), as V01",
      "method": "As V03",
      "canvas": "1324 by 1324",
      "observationWindowUtc": [
        "2026-09-18T06:35:30.848Z",
        "2026-09-18T06:35:35.867Z"
      ],
      "elapsedObservedSeconds": 5.0,
      "states": [
        {
          "atMs": 0,
          "wallClock": "2026-09-18T06:35:30.848Z",
          "frameCount": 572,
          "blurRadius": 110.8,
          "signature": 1265763098
        },
        {
          "atMs": 5019,
          "wallClock": "2026-09-18T06:35:35.867Z",
          "frameCount": 873,
          "blurRadius": 121.5,
          "signature": 4076717396
        }
      ],
      "sketchValues": {
        "spotsDrawn": 5,
        "centerRadiusPct": 25.0
      },
      "traitComparison": {
        "Spots": {
          "published": 5,
          "observed": 5,
          "agrees": true
        },
        "CenterRadius": {
          "published": 25,
          "observed": 25.0,
          "agrees": true
        }
      },
      "motionStatus": "observed at two moments five seconds apart; the signature changed and the frame counter advanced 301 frames",
      "concreteObservation": "A broad rose-pink mass filling the upper two thirds with a paler flushed centre, and a pale green passage across the lower third, against near-white.",
      "controlsTested": [],
      "audioStatus": "not auditioned; no audio path exists, as V01",
      "limitations": "Two samples only; no extended series."
    }
  ],
  "traitReproduction": {
    "method": "The trait mapping read from the unpacked program was reimplemented independently and run against the hashes of all 106 tokens returned by G03, then compared with the published features. The reimplementation was additionally validated against the running sketch on token 170000000, where every internal value it predicts was read back and matched.",
    "editionSize": 106,
    "results": [
      {
        "trait": "Spots",
        "matches": 106,
        "of": 106,
        "rule": "The spot loop draws four to six ellipses from a fractional count between 3 and 5; the centre ellipse is drawn separately. The published value is the sum of both, giving 5, 6 or 7.",
        "distribution": {
          "5": 52,
          "6": 39,
          "7": 15
        }
      },
      {
        "trait": "CenterRadius",
        "matches": 106,
        "of": 106,
        "rule": "Centre circle diameter as a percentage of the working dimension, truncated rather than rounded. Ten distinct values, matching the ten possible byte-modulo-10 inputs."
      },
      {
        "trait": "BackgroundColor",
        "matches": 0,
        "of": 106,
        "status": "unresolved"
      },
      {
        "trait": "CenterColor",
        "matches": 0,
        "of": 106,
        "status": "unresolved"
      },
      {
        "trait": "ColorDeviation",
        "matches": 0,
        "of": 106,
        "status": "unresolved",
        "note": "67 distinct values across 106 tokens, which rules out the byte-modulo-10 quantities that supply every other parameter."
      }
    ],
    "unresolvedColourTraits": {
      "whatTheProgramDoes": "Background hue is (mainColorH + c[1] + c[2] - 120) modulo 360; centre hue is the absolute sum of c[1], c[2] and c[3] modulo 360, where c is the per-spot hue array from the generator.",
      "verificationThatTheReadingIsCorrect": "On token 170000000 the reimplementation predicted a background hue of 83.04 and a centre hue of 340.92, and reading those variables out of the running sketch returned the same values.",
      "publishedValuesForThatToken": {
        "BackgroundColor": 183,
        "CenterColor": 328
      },
      "renderedPixelsForThatToken": {
        "cornerHue": 42,
        "centreHue": 58
      },
      "hypothesesTestedAndRejected": [
        "Each trait as a direct function of a single hash byte scaled to 0-360, tested at all 32 byte positions with rounding, truncation and a 256-denominator variant",
        "Seeding the generator from the full hash",
        "Seeding from the hash with its 0x prefix removed, sixteen digits",
        "Seeding from the first eight hexadecimal digits",
        "Sampling the rendered canvas and converting to hue"
      ],
      "conclusion": "No feature-generating code exists anywhere in the retrieved program. Whatever produced these three values is separate software that was not located. Reported as a divergence rather than covered by an invented rule."
    }
  },
  "mintChronology": {
    "firstTokenMintedAt": "2021-10-09T11:41:28+00:00",
    "activatedAt": "2021-10-23T18:04:15+00:00",
    "publicOpeningAt": "2021-10-28T16:00:00+00:00",
    "projectPageDisplayedRelease": "29 October 2021",
    "projectPageDisplayedReleaseNote": "The page renders the public opening instant in a timezone ahead of UTC. Same event, not a separate date.",
    "completedAt": "2022-03-21T07:15:20+00:00",
    "preOpeningMints": [
      {
        "invocation": 0,
        "minted_at": "2021-10-09T11:41:28+00:00",
        "note": "Artist proof, still held by the indexed artist address."
      }
    ],
    "dutchAuction": {
      "source": "project page SALES NOTES panel",
      "startPriceEth": 2,
      "restingPriceEth": 0.1,
      "stepMinutes": 5,
      "rungs": [
        2,
        1.75,
        1.5,
        1.25,
        1,
        0.75,
        0.5,
        0.25,
        0.1
      ],
      "computedRungStartsUtc": [
        "2021-10-28T16:00:00Z",
        "2021-10-28T16:05:00Z",
        "2021-10-28T16:10:00Z",
        "2021-10-28T16:15:00Z",
        "2021-10-28T16:20:00Z",
        "2021-10-28T16:25:00Z",
        "2021-10-28T16:30:00Z",
        "2021-10-28T16:35:00Z",
        "2021-10-28T16:40:00Z"
      ],
      "restingPriceReachedAt": "2021-10-28T16:40:00Z",
      "mintsDuringDescent": 2,
      "descentDetail": [
        {
          "invocation": 1,
          "minted_at": "2021-10-28T16:28:44+00:00",
          "rungPriceEth": 0.75
        },
        {
          "invocation": 2,
          "minted_at": "2021-10-28T16:39:28+00:00",
          "rungPriceEth": 0.25
        }
      ],
      "note": "Rung start times are computed from the published opening instant and the published five-minute step. They are a derived schedule, not a separately sourced record of on-chain price changes."
    },
    "paceFromOpening": {
      "beforeOpening": 1,
      "firstHour": 13,
      "restOfFirstDay": 16,
      "days2to7": 17,
      "days8to30": 19,
      "remainder": 40
    },
    "longestGaps": [
      {
        "fromInvocation": 99,
        "toInvocation": 100,
        "days": 27.57
      },
      {
        "fromInvocation": 0,
        "toInvocation": 1,
        "days": 19.2
      },
      {
        "fromInvocation": 82,
        "toInvocation": 83,
        "days": 12.62
      }
    ],
    "saleDuration": {
      "days": 143.6,
      "endpoints": [
        "public opening 2021-10-28T16:00:00+00:00",
        "final mint 2022-03-21T07:15:20+00:00"
      ],
      "calculation": "(Date.parse('2022-03-21T07:15:20+00:00') - Date.parse('2021-10-28T16:00:00+00:00')) / 86400000"
    },
    "currentIndexPrice": {
      "wei": "100000000000000000",
      "eth": 0.1,
      "observedAt": "2026-09-18T06:28:13.690Z",
      "note": "Equal to the published auction resting price. A current observation of the index field, not evidence of a later repricing."
    },
    "updatedAtNote": "The index also returns updated_at = 2021-09-21T16:51:42.619045 with no timezone offset. Reproduced exactly as returned and not converted."
  },
  "headerVerification": {
    "walletSetRefreshedAt": "2026-09-18T06:28:13.402Z",
    "walletSetSource": "user_profiles discovery query G01 at the official Hasura endpoint, with the public profile page also opened in the browser pane",
    "walletSetComplete": true,
    "walletCount": 3,
    "wallets": [
      "0xce6dc14c5494d8a4325a81d3b257d130fa2039d1",
      "0x2247247ee0eee59557e6cd14f7e047f6a9309b5c",
      "0xdd19308a9731cdecb67e0d80ca6823394208c045"
    ],
    "walletCountAssumed": false,
    "method": "Every one of the 106 token owner addresses returned by G03 was compared against all three returned wallet addresses. Exactly one match.",
    "tokenId": "170000004",
    "invocation": 4,
    "ownerAddress": "0xdd19308a9731cdecb67e0d80ca6823394208c045",
    "matchedWalletIndex": 2,
    "held": true,
    "collectionGap": false,
    "canonicalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/170000004",
    "inspectedMediaUrl": "https://generator.artblocks.io/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/170000004",
    "ownershipObservedAt": "2026-09-18T06:28:13.980Z",
    "displayBasis": "No display note is published for this project and the artist's page gives no display instruction. The work is a continuous non-repeating animation, so any still is one arbitrary moment; the artist's own instruction is to 'give it time'."
  },
  "rightsEvidence": {
    "artworkLabel": {
      "value": "NFT License",
      "field": "projects_metadata.license",
      "retrievalId": "G02"
    },
    "artworkLinkOfRecord": {
      "value": null,
      "field": "projects_metadata.link_to_license",
      "retrievalId": "G02",
      "status": "null; the index supplies no link and the project page publishes no licence field at all"
    },
    "namedDocumentInspected": {
      "url": "https://www.nftlicense.org/",
      "sourceId": "S09",
      "caveat": "Inspected because it shares the name the index reports. Nothing in the project record points to it, so the association is an inference from the name and is not treated as established."
    },
    "codeNotice": "None. No licence statement or copyright notice appears anywhere in the program, packed or unpacked.",
    "packingNote": "The published form is packed, which is an obfuscation as well as a compression. It creates no legal protection, but the readable form of the work exists only after a transformation the artist did not publish, which is a further reason to describe rather than reproduce the program.",
    "artistSiteFooter": "The artist's site footer reads 'Copyright all rights reserved', but it is the site theme's default footer appearing identically on every page including the index, so it is recorded as a site-wide notice rather than a statement about this artwork.",
    "dependencyRights": "p5@1.0.0 upstream licensing not inspected; recorded separately as unknown. The GLSL shaders are the artist's own source inside the program and carry no separate notice."
  },
  "failedAttemptsAndLimits": [
    {
      "attempt": "Reading the artist website of record at https://www.pdudko.com/p/chroma-theory.html",
      "outcome": "Rendered a 404 page titled 'Page not found'.",
      "resolution": "Searched the artist's own site for the project name and found the working page at a different path."
    },
    {
      "attempt": "Finding the project through the artist site's navigation and its NFT and generative art category",
      "outcome": "Neither listed it. Concluding at that point that the artist had removed the project would have been wrong.",
      "resolution": "Used the site's search, which returned both the project page and a later revision page in one step. Recorded because the near-miss is instructive."
    },
    {
      "attempt": "Reproducing BackgroundColor, CenterColor and ColorDeviation",
      "outcome": "Failed against the program's own formulas, against every single-byte mapping at all 32 positions, against three alternative seedings, and against sampled rendered pixels.",
      "resolution": "Verified the reimplementation against the running sketch to establish that the reading is correct, then reported the divergence as unresolved rather than fitting a rule."
    },
    {
      "attempt": "Reading an HTTP status code for the pdudko.com origin by scripted fetch",
      "outcome": "Not obtained; the access outcome is recorded by the rendered result instead.",
      "resolution": "Explicitly did not claim a status code for that origin."
    },
    {
      "attempt": "Sampling the rendered canvas directly from the WebGL context",
      "outcome": "Pixel reads are not available the same way as for a 2D context.",
      "resolution": "Copied the canvas to an offscreen 2D surface and sampled that, which is recorded in the observation method."
    }
  ]
}
