{
  "sources": [
    {
      "id": "S01",
      "author": "Art Blocks",
      "title": "Beatboxes by Zeblocks, collection page",
      "url": "https://www.artblocks.io/collection/beatboxes-by-zeblocks",
      "publisher": "Art Blocks",
      "publicationDate": null,
      "accessedAt": "2026-09-20",
      "accessOutcome": "inspected",
      "accessMethod": "browser pane; PROJECT DETAILS expanded",
      "archiveUrl": null,
      "inspectionScope": "Header, WHAT TO EXPECT and PROJECT DETAILS read in full on 2026-09-20; other accordions not expanded.",
      "evidenceLocators": [
        "Header: 'Beatboxes', 'by Zeblocks', 'An Art Blocks 500 release, in the Playground category', 'Fixed edition of 841 unique artworks', 'Released on 29 August 2021'",
        "The displayed 29 August 2021 is the 2021-08-28T19:00:00Z start rendered in a UTC+10 browser",
        "WHAT TO EXPECT: mint description including 'In live view use arrows to move around and spacebar to start the music and animation'",
        "PROJECT DETAILS: EDITION SIZE 841; WEBSITE https://zeblocks.com/; LIBRARY aframe@1.2.0; ASPECT RATIO 1.77; ATTRIBUTES Tempo, Bass, Lead, Bass boosted, Background Sound, Palette, Bordered, Shape dominance, Rotation, Size, Size Ratio, Light; no licence field",
        "BROWSE ARTWORKS: '32 listings available, starting from 0.0424 ETH', a current market observation, not mint history"
      ]
    },
    {
      "id": "S02",
      "author": "Art Blocks",
      "title": "Art Blocks public GraphQL index, projects_metadata for project 145, including the complete program",
      "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
      "publisher": "Art Blocks",
      "publicationDate": null,
      "accessedAt": "2026-09-20",
      "accessOutcome": "inspected",
      "accessMethod": "HTTP POST from the artblocks.io origin in the browser pane",
      "archiveUrl": null,
      "inspectionScope": "ProjectBySlug with variables {\"slug\":\"beatboxes-by-zeblocks\"} (G02). The complete 29,709-byte program read end to end.",
      "evidenceLocators": [
        "Response id 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-145; artist_name 'Zeblocks'; artist_address 0xb033daedca113b0386eb3e8f4c72c79fc50ae32e",
        "Response invocations 841, max_invocations 841, script_count 1, aspect_ratio 1.77, display_static false, vertical_name 'playground', license 'NFT License', link_to_license null",
        "Response activated_at 2021-08-28T02:58:07+00:00, start_datetime 2021-08-28T19:00:00+00:00, completed_at 2021-08-28T19:18:14+00:00, price_per_token_in_wei 4200000000000000000, artist_interview null",
        "Response description: 'fully immersive, virtual reality, audiovisual generative art'; 'escape your reality for a moment'; 'use arrows to move around and spacebar to start the music and animation'; 'not optimized for ios mobile and safari browser'",
        "Program, class Z: seed parseInt(hash.slice(0,16)) without radix; random(): three-shift xorshift 13/17/5, abs, mod 1000 / 1000 times range; percent, range, rangeFloat, item helpers",
        "Program: g = new Z(hash) for audio and a second $ = new Z(hash) for the scene, both seeded from the same hash",
        "Program, audio setup: AudioContext({sampleRate:32e3}); analyser fftSize 256 (128 bins); two compressors and a waveshaper distortion",
        "Program: tempo y = range(100,180); beat length 60000/y ms; root note 440 x 2^(range(-10,-2)/12); bass set from k, lead set from U; percussion scale A, pad scale N",
        "Program, class B: 2-channel buffer of 3 x sampleRate samples filled with rangeFloat(-1,1) from the audio generator",
        "Program: kick = class I, or on percent(50) class j (three oscillators) with kick-variation probability D changed from 35 to 8; hat = class T (noise) or class O (oscillator click) on percent(50)",
        "Program, class X: 8-step sequencer; variate() redraws hat 33%, kick D%, perc 15%, lead 20% per step; setTimeout scheduling",
        "Program, scene: palette table of 10 with chances 7.5,5,7.5,13,7.5,13,13,13,13,7.5; Fisher-Yates shuffle of 3 colour pairs; border kept with probability 0.2",
        "Program, scene: shape-weight rows [20,20,20,20,20], [45,10,15,15,15], [15,10,45,15,15], [15,10,15,45,15], [15,10,15,15,45] for sphere, box, cylinder, hexagon, pyramid",
        "Program, scene: rotation scheme (o<.4 per-shape, <.8 shared, else random), size divisor be 2/1.5/1, size-ratio scheme; 128 objects placed by Ce() on a 10x10 floor grid (0-99) or ceiling grid (100-199, rotated 180) with nearest-free-cell search",
        "Program, beatbox tick(): getByteFrequencyData into 128 bins; sphere and box keep one decaying value; bar and hexagon shift a 50-step history; pyramid shifts every second frame",
        "Program: moving-light (30%) bounces within the room; static-light otherwise; either may take intensity from overall loudness (33.33% or 42.85%)",
        "Program: window.onkeypress toggles playback when e.code is 'Space'; screens under 1024 px toggle on click; VR controller buttondown toggles; thumbstick moves the rig; position clamped to +/-49",
        "Program: no audio files, no network requests; all sound synthesised"
      ]
    },
    {
      "id": "S03",
      "author": "Art Blocks",
      "title": "Art Blocks public GraphQL index, tokens_metadata for all 841 tokens of project 145",
      "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
      "publisher": "Art Blocks",
      "publicationDate": null,
      "accessedAt": "2026-09-20",
      "accessOutcome": "inspected",
      "accessMethod": "HTTP POST from the artblocks.io origin in the browser pane",
      "archiveUrl": null,
      "inspectionScope": "TokensByProject with variables {\"pid\":\"0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-145\"} (G03). Independent reimplementations of the audio and scene derivations run in the browser against all 841 hashes.",
      "evidenceLocators": [
        "Audio traits reproduced at a 32,000 Hz context: Tempo, Bass, Lead, Bass boosted, Background Sound each 841 of 841",
        "Scene traits reproduced: Palette, Bordered, Shape dominance, Rotation, Size, Size Ratio, Light each 841 of 841",
        "Sample-rate sensitivity: Bass boosted / Background Sound match 443 / 397 at 44,100 Hz and 431 / 427 at 48,000 Hz",
        "Size mapping: divisor 2 = Small, 1.5 = Medium, 1 = Large",
        "Palette vs lead octave (same first draw): Northernlight 110 all octave 1; Nightsky 120 all octave 1; Candyland 57/33 across octaves 1/0; Sincity 64/49 across 1/2; no palette spans more than two octaves",
        "Ceiling-hung objects per room: minimum 28, maximum 73, mean 43.9 of 128",
        "Predicted shape counts for invocation 294 (24 box, 27 cylinder, 23 hexagon, 28 pyramid, 26 sphere) and 89 (12, 24, 56, 20, 16) and 325 (56 hexagons) match live DOM counts",
        "Mint: invocation 0 at 2021-08-18T16:08:31+00:00; invocation 1 at 2021-08-28T19:00:42+00:00; 32 within 10 minutes of 19:00:00Z, 840 within one hour; last 2021-08-28T19:18:14+00:00, 18.23 minutes after the start",
        "Invocation order and timestamp order agree; 31 shared timestamps; 435 distinct owners; exactly one token, 145000126, held by an AB5D linked address"
      ]
    },
    {
      "id": "S04",
      "author": "Art Blocks",
      "title": "Art Blocks public GraphQL index, tokens_metadata for the four example tokens of project 145",
      "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
      "publisher": "Art Blocks",
      "publicationDate": null,
      "accessedAt": "2026-09-20",
      "accessOutcome": "inspected",
      "accessMethod": "HTTP POST from the artblocks.io origin in the browser pane",
      "archiveUrl": null,
      "inspectionScope": "TokensByIds with the four exact composite keys (G04).",
      "evidenceLocators": [
        "Token 145000126: invocation 126, hash 0xd7a394be3a492ad122a0cecbcbb30c341c27b09329220a552cc99aa1719fa443, owner 0xdd19308a9731cdecb67e0d80ca6823394208c045, minted_at 2021-08-28T19:15:55+00:00, features {\"Bass\": \"Regular\", \"Lead\": \"Medium\", \"Size\": \"Medium\", \"Light\": \"Static variable intensity\", \"Tempo\": \"Allegro\", \"Palette\": \"Blackwhite\", \"Bordered\": \"False\", \"Rotation\": \"Same shape, same rotation\", \"Size Ratio\": \"Same shape same ratio\", \"Bass boosted\": \"False\", \"Shape dominance\": \"Pyramid\", \"Background Sound\": \"Hat\"}",
        "Token 145000325: invocation 325, hash 0x8ccd2bfda4dcc9a9a750c3b6c5acf8a5636876aabcf4defe935ced46aa172de8, owner 0x9519c3713b994cee86cc0375b0b32b606f5f734c, minted_at 2021-08-28T19:16:40+00:00, features {\"Bass\": \"Regular\", \"Lead\": \"Club\", \"Size\": \"Small\", \"Light\": \"Light ball variable intensity\", \"Tempo\": \"Vivace\", \"Palette\": \"Nightsky\", \"Bordered\": \"True\", \"Rotation\": \"Same shape, same rotation\", \"Size Ratio\": \"Same shape same ratio\", \"Bass boosted\": \"True\", \"Shape dominance\": \"Hexagon\", \"Background Sound\": \"Click\"}",
        "Token 145000294: invocation 294, hash 0x2dccbe927088a67f8cd38177608341218a514d240ea3a4c925914018d32c43d7, owner 0x3cda30bd84db976bfabb64b622d74d38e78edfd3, minted_at 2021-08-28T19:16:24+00:00, features {\"Bass\": \"Funky\", \"Lead\": \"Medium\", \"Size\": \"Large\", \"Light\": \"Static\", \"Tempo\": \"Andantino\", \"Palette\": \"Candyland\", \"Bordered\": \"False\", \"Rotation\": \"Same shape, same rotation\", \"Size Ratio\": \"All random\", \"Bass boosted\": \"True\", \"Shape dominance\": \"None\", \"Background Sound\": \"Hat\"}",
        "Token 145000089: invocation 89, hash 0x8cadbca37d9a7530fc5a3ee372341f167c1b85b66a87339c0fbb5b2eda646917, owner 0xb91ac9981eb3dd949fc793bc58114fd37c480d55, minted_at 2021-08-28T19:12:33+00:00, features {\"Bass\": \"Regular\", \"Lead\": \"Club\", \"Size\": \"Medium\", \"Light\": \"Static variable intensity\", \"Tempo\": \"Vivace\", \"Palette\": \"Blacklight\", \"Bordered\": \"False\", \"Rotation\": \"All the same\", \"Size Ratio\": \"Same shape same ratio\", \"Bass boosted\": \"True\", \"Shape dominance\": \"Hexagon\", \"Background Sound\": \"Hat\"}"
      ]
    },
    {
      "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",
      "publisher": "Art Blocks",
      "publicationDate": null,
      "accessedAt": "2026-09-20",
      "accessOutcome": "inspected",
      "accessMethod": "HTTP POST from the artblocks.io origin in the browser pane",
      "archiveUrl": null,
      "inspectionScope": "Discovery query for the ab5d profile (G01), refreshed once this session.",
      "evidenceLocators": [
        "linked_accounts returned three addresses: 0xce6dc14c5494d8a4325a81d3b257d130fa2039d1, 0x2247247ee0eee59557e6cd14f7e047f6a9309b5c, 0xdd19308a9731cdecb67e0d80ca6823394208c045",
        "The third address owns token 145000126, the only match across 841 tokens"
      ]
    },
    {
      "id": "S06",
      "author": "Art Blocks",
      "title": "Art Blocks live renderer for project 145 tokens",
      "url": "https://generator.artblocks.io/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/145000126",
      "publisher": "Art Blocks",
      "publicationDate": null,
      "accessedAt": "2026-09-20",
      "accessOutcome": "inspected",
      "accessMethod": "original renderer in the browser pane, pane displayed; canvas signatures on animation frames, analyser reads, DOM and component reads, key events",
      "archiveUrl": null,
      "inspectionScope": "Four tokens observed (V01 to V04 in evidence.json).",
      "evidenceLocators": [
        "All four pages: aframe 1.2.0 from cdnjs, three.js REVISION '125'; inline script 29,709 bytes with SHA-256 99873a69797130ec0ec189317870118a79e73759d5e02fe7ec4034eb03e93080",
        "Audio context state 'running' at load, sampleRate 32000, on all four",
        "Token 145000126: pre-play signature identical over 14 s, analyser sum 18; native key press from the tool arrived with empty key and code and did not toggle; a keypress with code 'Space' started playback",
        "Token 145000126 playing: 53 of 53 samples distinct over 52 s; analyser sum 336 to 12,362; light intensity 0.008 to 0.406; tempo 142",
        "Token 145000126: W held 1.5 s moved camera z to -15.47; ArrowLeft 1 s moved x to -9.66; stop returned analyser to 18 and froze the signature",
        "Token 145000325: tempo 178; moving light; 56 hexagonal cylinders; 43 of 43 samples distinct over 42 s; analyser 18 to 13,133; light positions (22,15,42.7), (20.2,39.9,-46.1), (-33.7,3.9,47.5), (-9.5,44.5,-43.8), (44.3,11.3,40.2)",
        "Token 145000294: tempo 118; static light; DOM counts 24 box, 27 cylinder, 23 hexagon, 28 tetrahedron, 26 sphere",
        "Token 145000089: tempo 171; static light; DOM counts 12 box, 24 cylinder, 56 hexagon, 20 tetrahedron, 16 sphere",
        "Canvas 1324 x 1820 in the pane: the scene fills the window and does not enforce the 1.77 aspect ratio",
        "Canonical token page checks from the artblocks.io origin: 145000126, 145000325, 145000294, 145000089 each HTTP 200"
      ]
    },
    {
      "id": "S07",
      "author": "Zeblocks",
      "title": "Zeblocks, home page and Beatboxes project page",
      "url": "https://zeblocks.com/beatboxes.html",
      "publisher": "Zeblocks",
      "publicationDate": null,
      "accessedAt": "2026-09-20",
      "accessOutcome": "inspected",
      "accessMethod": "browser pane; home page read; beatboxes.html fetched from the same origin and its full text extracted",
      "archiveUrl": null,
      "inspectionScope": "Full text of https://zeblocks.com/ and https://zeblocks.com/beatboxes.html.",
      "evidenceLocators": [
        "Home: links to Unigrids, Beatboxes, Sensthesia; 'UNIGRIDS FEATURED @ SOTHEBY'S'; 'UNIGRIDS X CHRISTIE'S'; footer 'Copyright © Zeblocks 2022.'",
        "Beatboxes, What are Beatboxes?: 'Beatboxes are the first fully immersive, virtual reality, audiovisual generative art on the Ethereum blockchain'",
        "The Story: 'Back in January 2021, we launched our very first NFT project, Unigrids'; 'It was just after Guillaume was looking at Oculus VR devices for his son's birthday'; 'would not be that suitable for conventional media like canvas or prints'; 'definitely challenging'",
        "The Technology: 'Beatboxes utilize Aframe'; 'among the first to build a generative art project with it'; 'more advanced beats'; 'Web Audio Api'; 'All the beats are once again 100% on-chain'"
      ]
    },
    {
      "id": "S08",
      "author": "Zeblocks",
      "title": "Zeblocks, About us",
      "url": "https://zeblocks.com/about.html",
      "publisher": "Zeblocks",
      "publicationDate": null,
      "accessedAt": "2026-09-20",
      "accessOutcome": "inspected",
      "accessMethod": "fetched from the zeblocks.com origin in the browser pane; full text extracted",
      "archiveUrl": null,
      "inspectionScope": "Full text.",
      "evidenceLocators": [
        "'We are Guillaume & Sebastian - blockchain enthusiasts'",
        "Guillaume: 'went to college in Arts & Multimedia'; created a Web & Marketing agency",
        "Sebastian: 'Sebastian is the brain behind Zeblocks and without him there would be no interactive experience'"
      ]
    },
    {
      "id": "S09",
      "author": "Supermedium",
      "title": "wasd-controls, A-Frame 1.2.0 documentation",
      "url": "https://aframe.io/docs/1.2.0/components/wasd-controls.html",
      "publisher": "A-Frame",
      "publicationDate": null,
      "accessedAt": "2026-09-20",
      "accessOutcome": "inspected",
      "accessMethod": "browser pane, page read in full",
      "archiveUrl": null,
      "inspectionScope": "Documentation page for the exact library version the work declares.",
      "evidenceLocators": [
        "'The wasd-controls component controls an entity with the WASD or arrow keyboard keys'",
        "Properties table: acceleration default 65; fly default false",
        "Footer: 'The A-Frame project and content on this site are licensed under the MIT License'; 'Project maintained by Supermedium'"
      ]
    },
    {
      "id": "S10",
      "author": "Dapper Labs",
      "title": "NFT License, introduction page",
      "url": "https://www.nftlicense.org/",
      "publisher": "Dapper Labs",
      "publicationDate": null,
      "accessedAt": "2026-09-20",
      "accessOutcome": "inspected",
      "accessMethod": "browser pane, Intro page read in full; the separate License text tab was not opened",
      "archiveUrl": null,
      "inspectionScope": "The public summary of the licence whose name matches the project's unlinked label. Association with the project is not established by the record.",
      "evidenceLocators": [
        "'Any NFT project can use this license'",
        "Allowed: personal non-commercial use; marketplace and third-party display with cryptographic ownership verification; merchandise 'provided that you aren't earning more than $100,000 in revenue each year'",
        "Not allowed: 'Modifying the art'; marketing third-party products; images of hatred or violence; trying to trademark the art",
        "Footer: 'Made with 😻 by Dapper Labs'"
      ]
    }
  ]
}
