{
  "sources": [
    {
      "id": "S01",
      "author": "Art Blocks",
      "title": "CryptoNewYorker by QianQian, collection page",
      "url": "https://www.artblocks.io/collection/cryptonewyorker-by-qian-qian",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "Page rendered in the browser pane and its visible text extracted. The PROJECT DETAILS accordion was present but not expanded; its contents were not read and this is recorded as a gap rather than as an absence.",
      "evidenceLocators": [
        "Header block: 'View live', 'CryptoNewYorker', 'by QianQian', 'An Art Blocks 500 release, in the Factory category', 'Fixed edition of 1,000 unique artworks', 'Released on 16 October 2021'",
        "The page credits 'QianQian' without a space while the index returns artist_name 'Qian Qian' with one",
        "WHAT TO EXPECT panel reproduces the mint description including 'Available only to visitors of the Bright Moments physical NFT gallery' and 'Holders of CryptoNewYorkers are granted CryptoCitizenship'",
        "A 'More from QianQian' rail names CryptoLondoner, CryptoGalactican and CryptoBerliner, which is what makes the single-valued City trait intelligible",
        "Accordion headings present but not expanded: PROJECT DETAILS, COLLECTIONS FEATURING THIS PROJECT, FROM THE JOURNAL",
        "No SALES NOTES accordion appears for this project, unlike several others in this batch"
      ]
    },
    {
      "id": "S02",
      "author": "Art Blocks",
      "title": "Art Blocks public GraphQL index, projects_metadata for project 189",
      "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\":\"cryptonewyorker-by-qian-qian\"}. Full query text, variables and timings recorded in evidence.json. The complete returned program, 42,482 bytes across five stored fragments, was read end to end.",
      "evidenceLocators": [
        "Response field projects_metadata[0].id = 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-189, corroborating contract and project identity",
        "Response fields license = 'NIFTY' and link_to_license = null; the value names no version, no jurisdiction and no document",
        "Response fields activated_at = 2021-10-16T18:54:12+00:00 and start_datetime = 2021-10-16T02:00:00+00:00, so activation falls almost seventeen hours after the recorded opening",
        "Response field completed_at = 2022-01-01T04:27:08+00:00",
        "Response fields invocations = 1000, max_invocations = 1000, script_count = 5, display_static = false, aspect_ratio = 1, vertical_name = 'factory'",
        "Response fields price_per_token_in_wei = 1000000000000000000, artist_name = 'Qian Qian', artist_address = 0x18b7511938fbe2ee08adf3d4a24edb00a5c9b783, artist_interview = null, website = https://www.brightmoments.io/",
        "Response field script_type_and_version = 'js@na', declaring no library",
        "Response field scripts: five fragments of 10,001, 2,478, 10,001, 10,001 and 10,001 bytes, a storage chunking artefact rather than a structural division",
        "Program: the seed line calls parseInt on a sixteen-character slice of the hash with no radix argument, relying on the retained 0x prefix for hexadecimal inference",
        "Program: a three-shift xorshift whose output is the absolute value of the state modulo 1000 taken as an integer, identical in construction to the Amoeba, Blockbob Rorschach, Mental pathways and THE SOURCE CoDE projects in this batch",
        "Program, selector: walks a weighted list accumulating ten times each entry's percentage until it passes the drawn integer, and returns that entry's rectangle list",
        "Program: six weighted selections in fixed order with list lengths 9, 3, 9, 34, 9 and 28",
        "Program: the first entry of the first list is an empty rectangle list, so a token landing on it gets no accessory drawn and no Accessory key",
        "Program: the background is chosen by branching on the token's invocation number at 250, 500 and 750, not from the hash, and each branch also applies a set of colour substitutions to the base figure's skin and hair ramps",
        "Program: some entries are not rectangle lists but a palette-replacement instruction that re-emits an earlier entry with one colour globally substituted, which is how the three skin tones derive from a single drawn body",
        "Program, drawing: a style element sizes the artwork by viewport orientation; an SVG element is created with viewBox 0 0 1800 1800 and shape-rendering crispEdges; layers are appended in the order accessory, skin, footwear, bodywear, facewear, headwear; all geometry is axis-aligned rectangles expressed as indices into shared coordinate and palette tables",
        "Program: no draw loop, no timer, no key, mouse or touch handler, no audio call and no external fetch"
      ]
    },
    {
      "id": "S03",
      "author": "Art Blocks",
      "title": "Art Blocks public GraphQL index, tokens_metadata for all 1,000 tokens of project 189",
      "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-189\"}, returning the complete edition. An independent reimplementation of the seed, the generator and the six-selection order was run against all 1,000 returned hashes, and the weighted lists were parsed programmatically from the retrieved script rather than counted by eye.",
      "evidenceLocators": [
        "All six hash-driven selections map onto published traits as an exact bijection across 1,000 tokens: every list index carries one published value and no published value appears under two indices, with zero conflicts in any of the six lists",
        "List of 9 maps to Accessory, of 3 to Skin Tone, of 9 to Footwear, of 34 to Bodywear, of 9 to Facewear, of 28 to Headwear",
        "Index 0 of the accessory list corresponds to no Accessory key at all on exactly 119 of the 1,000 tokens; the eight published accessory values sum to 881",
        "All 34 bodywear indices occur in the edition but only 31 distinct published names exist: Streaker covers indices 1 and 2, Puffy Jacket covers 5 and 6, and Red Stripe Tee covers 7 and 8",
        "features.Background is a function of the invocation number, not the hash: invocations 0 to 249 are Spring, 250 to 499 Summer, 500 to 749 Fall and 750 to 999 Winter, 250 tokens each with no exceptions",
        "features.City carries the single value 'New York' on all 1,000 tokens",
        "Mint timestamps: no token was minted before the recorded opening, and the artist address holds no tokens in the edition",
        "Mint pace anchored on the 2021-10-16T02:00:00Z opening: 1 within the first hour, still 1 at six hours, 59 within 24 hours, 154 within seven days, 673 within thirty days, 1000 in total; final mint 2022-01-01T04:27:08+00:00, 77.10 days after the opening",
        "First mint 2021-10-16T02:01:02+00:00, one minute after the opening and about sixteen hours before the recorded activation",
        "Ownership across the edition: 745 distinct owner addresses, the widest distribution in this batch",
        "Exactly one token, 189000704, 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 189",
      "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 189000704: hash 0x82d6ac896baa4c61d079857de9bbf027ed89429989bf8f0adb21e708c684ebf6, owner 0xdd19308a9731cdecb67e0d80ca6823394208c045, minted_at 2021-11-20T20:34:53+00:00, invocation 704, Background Fall, Bodywear 'Santa's Helper', and no Accessory key",
        "Token 189000018: hash 0x60392b01c25e2074f6fa2d166443caa572637f0e282d7f4243fae46a9a74c1e5, owner 0x8bac6ec6d29cd7bf1ef2d5148000a2b17c3048d7, minted_at 2021-10-16T22:36:20+00:00, invocation 18, Bodywear 'Streaker', Accessory 'Green Skateboard'",
        "Token 189000031: hash 0xe13c2268b464d33487f5f94b280f9b3083bc2dfb72c5685d4acbaeb0adf15d73, owner 0xab283f9a0b4781a6b85ee961540568a77ca2613d, minted_at 2021-10-16T23:29:53+00:00, invocation 31, Bodywear 'Streaker', Accessory 'Shiba'",
        "Token 189000006: hash 0x7836ba0a5a31198b5ccb3dea93079c544066f90f805e0067aabc7f0f009da28a, owner 0xc1c78da6dbc0d7631b14c8b6a3d905fcb0c3457f, minted_at 2021-10-16T22:17:40+00:00, invocation 6, Bodywear 'Purple Cross Bra', and no Accessory key",
        "Tokens 189000018 and 189000031 carry the same published Bodywear value while the reimplementation places them on program entries 1 and 2 respectively"
      ]
    },
    {
      "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 189000704, the only match across all 1,000 tokens in this project"
      ]
    },
    {
      "id": "S06",
      "author": "Art Blocks",
      "title": "Art Blocks live renderer for project 189 tokens",
      "url": "https://generator.artblocks.io/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/189000704",
      "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. Because the artwork is an SVG document rather than a canvas, observation was by reading the DOM: element counts, attribute values, fill census and markup stability, alongside screenshots. Canonical token page status checks were issued by fetch from the artblocks.io origin.",
      "evidenceLocators": [
        "Token 189000704: a single svg element with id 'newyorker', viewBox '0 0 1800 1800' and shape-rendering 'crispEdges', holding 236 rect elements in 31 distinct fill values",
        "Token 189000704: document.querySelectorAll('script[src]') returned an empty list, so the page loads no external scripts at all, consistent with the declared js@na",
        "Token 189000704: the invocation variable in the running document read 704, and the published Background value is Fall, which is the third invocation quarter",
        "Token 189000006: 271 rect elements, and the svg markup was byte-identical when re-read four seconds later, establishing that nothing changes after load",
        "Token 189000018 rendered as a nude figure in a long red scarf, backwards white cap and red shoes on a green skateboard, against a spring street of pale blue sky, hedges in pink blossom and grey pavement",
        "Token 189000031 rendered as a nude figure in a long black scarf, backwards white cap and green sneakers, with a Shiba beside it, against the same spring street; the scarf colour is the whole visible difference between the two program entries published under the same Bodywear name",
        "Token 189000704 rendered as an autumn street with an ochre skyline, brown pavement scattered with leaves, lamp post, traffic light, fire hydrant and green street sign, with a figure in a blue bun, purple lips, green tunic, yellow legs and red boots, carrying nothing",
        "Display note: the injected style rule sizes the square SVG to the full viewport width in portrait orientation without centring it vertically, so the artwork sits at the top of the pane with empty space below",
        "Audio status: document.querySelectorAll('audio,video') returned 0; the artwork defines no key, mouse or touch handler",
        "Canonical token page checks by fetch from the artblocks.io origin: 189000704, 189000006, 189000018 and 189000031 each returned HTTP 200 with a final URL of the form https://www.artblocks.io/token/1/<contract>/<tokenId>"
      ]
    },
    {
      "id": "S07",
      "author": "Bright Moments",
      "title": "Bright Moments, the website of record",
      "url": "https://www.brightmoments.io/",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "The website recorded against the project in the index. It is the gallery's site rather than the artist's, and it now presents a retrospective of a concluded programme rather than a page about this project. Read in full in the browser pane.",
      "evidenceLocators": [
        "Page heading 'BRIGHT MOMENTS' with the dates '2021 - 2024'",
        "Body text: 'What began as a Venice Beach storefront in summer 2021 became a three-year journey across the world.'",
        "Body text: 'From Venice Beach to New York, Berlin to London, Mexico City to Tokyo, Buenos Aires to Paris, and finally Venice, Italy'",
        "Body text: '150 artists. 10,000 CryptoCitizens. Nearly 20,000 generative and AI artworks minted on-chain.'",
        "Body text: 'Every mint was choreographed, every reveal unforgettable.'",
        "The page contains no mention of CryptoNewYorker and no project-specific material; a cataloguer following this link in 2021 and in 2026 would find different things"
      ]
    },
    {
      "id": "S08",
      "author": "Mozilla",
      "title": "MDN Web Docs: parseInt()",
      "url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "Reference page for the function this project uses to derive its seed, consulted because the call omits the radix argument, which no other project in this batch does. Read in the browser pane for the documented behaviour when the radix is absent.",
      "evidenceLocators": [
        "Parameters section, radix: 'If 0 or not provided, the radix will be inferred based on string's value. Be careful — this does not always default to 10!'",
        "Parameters section: the radix is described as optional, 'an integer between 2 and 36 that represents the radix'",
        "Description: 'The parseInt function converts its first argument to a string, parses that string, then returns an integer or NaN.'",
        "The documented inference is what makes this project's seed line work: the sliced hash retains its 0x prefix, so hexadecimal is inferred"
      ]
    }
  ]
}
