{
  "schema": "ab5d-series-essay/1",
  "identity": {
    "chainId": 1,
    "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
    "projectId": 248,
    "slug": "hashcrash-by-beervangeer",
    "title": "HashCrash",
    "artistCredit": "Beervangeer",
    "artistDossierUrls": [
      "https://ab5d.xyz/artists/beervangeer/"
    ]
  },
  "revision": 2,
  "researchCutoff": "2026-09-18",
  "status": "published-with-research-limitations",
  "sections": [
    {
      "id": "work-context",
      "heading": "The work and its context",
      "bodyMarkdown": "HashCrash turns a small square grid into an unstable field of attention. The cells remain in place, but their changing colours make different structures appear to advance and recede. A broad cross can dominate one view and dissolve into four neighbouring panels in the next. Fine checks compete with apparently larger squares assembled from several cells. Across the five originals examined here, bilateral order is immediately evident. What that order contains becomes harder to settle with prolonged attention. [^S05] [^S06] [^S07] [^S08] [^S09]\n\nBeervangeer's project is an animated Art Blocks Playground release with 369 minted works. Its official public release date is 28 January 2022. The description connects it to Neal Stephenson's Snow Crash and presents the work as a sardonic analogy between a fictional digital drug and the attractions of NFT culture. That analogy belongs to the artist's framing. It supplies neither a physiological explanation of the images nor evidence for a guaranteed psychological effect. [^S01]\n\nThe work is more particular than a general appeal to sensory overload. Its colours are related through one short sequence of numbers, folded across both dimensions of the picture. It converts a token's input into visible relations and then changes those relations over time. The result can resemble woven checks, a tiled surface or an electronic test pattern. Those are readings of the sampled originals, rather than subjects that the program has been instructed to depict. [^S02] [^S05] [^S09]"
    },
    {
      "id": "conception",
      "heading": "Conception and development",
      "bodyMarkdown": "The artist's current studio site describes a practice concerned with consciousness, computational art and interactive environments. HashCrash makes sense within that declared field of interest, although its script does not take measurements from the viewer's body. There is no pulse sensor, physiological input or response loop from a participant in the inspected program. Its changing stimulus is generated by the stored input and its own drawing procedure. The connection to the broader practice is conceptual rather than evidence of a biofeedback mechanism here. [^S03] [^S02]\n\nThe release description stresses a direct translation of hash information and says the project has no specially designed rarity categories. The indexed features for the five sampled tokens are empty objects. That observation agrees with the absence of a visible trait vocabulary in this sample, but it is not an independent census of every token's history. Formal comparison therefore proceeds through the pictures and their procedure, without treating a rarity table as an explanation of quality. [^S01] [^S02] [^S05] [^S06] [^S07] [^S08] [^S09]\n\nThe project website recorded in the metadata no longer returned its content during research. No earlier sketches, development versions or detailed project interview were recovered. It would be easy to fill that gap with a story about how the artist arrived at the final grid, but the deployed script cannot establish the chronology of its invention. What it does establish is a remarkably economical finished proposition: thirty-two starting values, a rule for their evolution and a repeated mapping from numbers to colour. [^S01] [^S02]"
    },
    {
      "id": "construction",
      "heading": "How the work was constructed",
      "bodyMarkdown": "The entire indexed artist script, 3,002 bytes as retrieved, was read for this essay. It declares p5.js 1.0.0 as its environment and uses a WebGL canvas. The canvas is square, sized to the smaller browser dimension. In a wide window, the empty space beside that square belongs to the viewing environment; it is not an additional white border designed into the coloured composition. The program contains no resize handler, so a fresh load provides a clearer basis for comparing different window sizes. [^S02] [^S04]\n\nThe initial procedure splits the hash into thirty-two pairs of hexadecimal characters and converts each pair to a number. There is no separate pseudorandom generator that goes on drawing new values during the animation. Instead, the stored numbers themselves evolve. On each frame, a value is compared with its predecessor, with the first value referring back to the last. A small fraction of their difference is added to the current value. [^S02]\n\nThe direction of this operation is important. It increases a difference rather than averaging two neighbours into agreement. It is also performed in place: later positions in the loop can encounter a predecessor that has already been updated during the same frame. Describing the operation as ordinary smoothing would therefore reverse its meaning. The initial hash supplies a starting condition for a changing sequence, not a permanent list of colours to be replayed unchanged. [^S02]\n\nA shader maps the image coordinates into that sequence. It folds the horizontal and vertical coordinates around the halfway point, then uses the resulting positions to select values. The same sequence serves both axes. Two selected values are combined for each location. This explains more than the familiar left-right reflection: exchanging the horizontal and vertical positions also preserves the relationship used to calculate colour. The apparent decorative symmetry is a consequence of the lookup structure. [^S02]\n\nThat structure gives the eye a stable spatial scaffold. A narrow band at one side is paired elsewhere, and a conspicuous interval along one direction has a corresponding relation along the other. Adjacent cells can temporarily share enough colour to be read as a larger square or bar. As their colours diverge, the larger shape breaks apart again. The program does not need to move a rectangle across the canvas to make the organisation of the picture seem to change. [^S02] [^S05] [^S06]\n\nThe selected values are converted into hue, with saturation and brightness set to their full values at that stage. A time term is added and wrapped through the fractional part of the result. Colour movement therefore combines two processes: changes to the evolving array and a clock-driven movement through hue. One is advanced by drawing frames; the other refers to elapsed time. A machine drawing fewer frames need not pass through precisely the same internal state at a given elapsed second as a faster machine. [^S02]\n\nThe final colour calculation introduces a longer development. It blends the calculated RGB values toward white using elapsed milliseconds divided by 600,000. At that threshold, the expression yields white. The program does not call a stopping function or reset its timer there. This ten-minute threshold is a deduction from the inspected arithmetic, not an event observed for ten uninterrupted minutes in this review. Extended rendering would be needed to document the endpoint and later behaviour on a specified device. [^S02]\n\nSeveral declared quantities do not contribute to the final colour expression. Their names should not be treated as proof of additional effects. More broadly, the shortness of the program does not mean that an isolated screenshot contains an adequate account of it. The frame-dependent evolution and clock-dependent colouring give a still a particular position within a running process. The originals were inspected in successive states to distinguish that process from the apparent rigidity of the grid. [^S02] [^S05] [^S06] [^S07] [^S08] [^S09]"
    },
    {
      "id": "mint",
      "heading": "The mint",
      "bodyMarkdown": "The fresh index reports 369 invocations and a current maximum of 369. Its first recorded mint is on 17 January 2022, followed by the second on 25 January. The scheduled public start is 28 January at 17:00, and the completion field is 17:25:56 that day. These are separately named events. The first mint date belongs in the header, while the public release date belongs in an account of the sale. They need not be forced into one interchangeable notion of launch. [^S01]\n\nThe sales notes explicitly mention minting for MU token holders before the official drop. This gives a documented reason to distinguish the earlier mint activity from the public sale. It does not classify every transaction or prove which category any particular recipient belonged to. The record's activation timestamp is another administrative field, not an adequate substitute for the mint chronology. [^S01]\n\nThe stated auction has three price tiers: 0.0963, 0.0693 and 0.0369 ETH, with five minutes allocated to each tier. The current price setting is 0.0369 ETH. The notes establish the described sale mechanism; the current setting does not establish all realised purchase prices. No transaction-level reconstruction of proceeds, allocations or exact public sellout duration has been completed here. An independent launch-era statement of the original maximum also remains to be recovered. [^S01]"
    },
    {
      "id": "rights",
      "heading": "Copyright and licensing",
      "bodyMarkdown": "The indexed artwork label is NFT License 2.0, with no terms URL supplied. The named public template at nftlicense.org retains creator ownership of the art and sets out specified owner uses, including personal use and limited commercial merchandise rights. Those rights have conditions and are tied to continued ownership. The template is linked as the reference corresponding to the reported label; a separately customised project agreement and the history of earlier terms were not recovered. The label should not be expanded into public-domain status. [^S01] [^S10]\n\nThe p5.js 1.0.0 repository supplies LGPL 2.1 terms for the library. That record does not establish a separate licence for Beervangeer's artist script. No comprehensive artist-code reuse grant was found in the inspected material. The original essay prose is CC0, while the artwork and its software remain distinct rights subjects. [^S02] [^S04]"
    },
    {
      "id": "examples",
      "heading": "Close reading of five outputs",
      "bodyMarkdown": "The comparison uses editions 0, 1, 10 and 20, selected as an early-edition group before viewing, plus the verified AB5D-held #361. Each official live renderer was examined in successive temporal states. These observations concern the pictures at those moments. They do not establish a complete animation cycle or the distribution of appearances across the edition. [^S05] [^S06] [^S07] [^S08] [^S09]\n\nIn #0, one state makes a broad purple and magenta cross prominent in the middle. Cyan and green blocks occupy more peripheral regions, with finer checks near the corners. The middle appears comparatively heavy because several neighbouring cells agree enough to form a larger unit. Yet its edges remain interrupted by the smaller grid. The eye can alternate between seeing a central emblem and seeing the many separate coloured decisions from which that emblem is assembled. [^S05]\n\nA later state gives four central panels a yellow-green emphasis, with orange and red around them and saturated blue at finer crossings. The earlier purple cross no longer supplies the same figure. This is a consequential change even though the cell boundaries have stayed put. What counted as a background interval becomes a structure worth following. The work makes a distinction between spatial placement and perceptual grouping visible through time. [^S05]\n\nIn #1, a vertical sequence of orange-red, roughly rounded pixel medallions commands the first inspected view. Blue and purple surround them, while cyan-green areas articulate the neighbouring quadrants. Fine horizontal and vertical bands divide the larger regions. The medallions are not drawn as smooth circles; their suggestion of rounding comes from stepped colour relationships within square cells. This makes them legible both as figures and as temporary coalitions of pixels. [^S06]\n\nIn the second state, cyan and green take over those emphatic regions while warmer colours spread around them. The vertical organisation persists, but its apparent depth changes. The centre can seem to open where it previously seemed filled. Compared with #0, this output offers a stronger sequence along the middle axis, making colour's ability to alter a repeated motif particularly easy to follow. Neither state deserves to be treated as the token's one definitive picture. [^S06]\n\nIn #10, large corner fields are occupied by a finer checker texture. A strong central strip crosses a horizontal bar, giving the middle a more immediate axial emphasis than those busy surroundings. In a later state, an orange central square stands out against pink and green neighbours. The change does not eliminate the difference between the fine peripheral field and the comparatively broad middle. That contrast supplies an identity that can survive substantial chromatic revision. [^S07]\n\nIn #20, four warm checked panels sit near the centre, separated by forceful blue and green divisions. Cyan-framed cells sit farther out. A subsequent view makes the central panels cooler, with smaller blue checks and warm points visible elsewhere. Beside #10, this example reads through broader areas of agreement, despite using the same underlying grid procedure. Apparent coarseness is therefore a relationship among colours, not necessarily a different pixel resolution. [^S08]\n\nThe collection's #361 initially presents cyan and blue nested square regions cut by pink, red, orange and yellow bands. In a later state, green-cyan squares come forward and larger red-blue regions change the balance near the corners. Its repeated enclosures make the comparison with a woven check especially tempting. Movement interrupts that analogy: the structures do not settle into a fabric's fixed distribution of threads. They remain relations that the next state can reorganise. [^S09]"
    },
    {
      "id": "significance",
      "heading": "Significance and limitations",
      "bodyMarkdown": "HashCrash extracts substantial perceptual variation from a spare procedure. Its symmetry establishes a promise of order, while changing colour repeatedly alters the units through which that order is read. The result is not only a loud surface. It is a demonstration that a fixed grid can support unstable figures, and that a token's identity can reside in a process rather than a single stable arrangement. The five sampled works make that proposition legible through different balances of broad panels, narrow crossings and fine checks. [^S02] [^S05] [^S06] [^S07] [^S08] [^S09]\n\nFurther work should recover the missing project-page history, pin the script against a chain retrieval, reconstruct the sale transactions and observe the full timed development on identified devices. Those gaps are material to preservation and historical precision. The present account rests on the complete indexed script, named records and the originals actually viewed, while leaving the artist's claims about altered perception as claims rather than experimental findings."
    }
  ],
  "codeInspection": {
    "source": "projects_metadata.script",
    "endpoint": "https://artblocks-mainnet.hasura.app/v1/graphql",
    "query": "query { projects_metadata(where:{slug:{_eq:\"hashcrash-by-beervangeer\"}}){id name artist_name project_id description website script script_type_and_version license link_to_license invocations max_invocations first_token_minted_at second_token_minted_at activated_at start_datetime completed_at price_per_token_in_wei sales_notes} }",
    "retrievedAt": "2026-09-18T12:17:40.870352+00:00",
    "byteLength": 3002,
    "sha256": "e35ae6bbc855940379a701769d55cc21e96948aacba03eb208bb383f2964ce37",
    "runtime": "p5@1.0.0",
    "executed": false,
    "chainBlock": null,
    "coverage": "Complete 3002-byte script read: 32 hash bytes, in-place difference update, mirrored coordinate lookup, HSB shader, time-driven hue and whitening expression, unused declarations, absent audio and input handlers. Official originals inspected separately; ten-minute endpoint is arithmetic deduction, not observed duration."
  },
  "examples": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "248000000",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000000",
      "sourceIds": [
        "S01",
        "S05"
      ],
      "selectionNote": "Early-edition group selected before viewing",
      "observationNote": "Broad purple-magenta central cross shifts into yellow-green four-panel emphasis."
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "248000001",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000001",
      "sourceIds": [
        "S01",
        "S06"
      ],
      "selectionNote": "Early-edition group selected before viewing",
      "observationNote": "Orange-red central pixel medallions change to cyan-green, warm surrounding field."
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "248000010",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000010",
      "sourceIds": [
        "S01",
        "S07"
      ],
      "selectionNote": "Early-edition group selected before viewing",
      "observationNote": "Fine checker fields around stronger central cross, later orange central square."
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "248000020",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000020",
      "sourceIds": [
        "S01",
        "S08"
      ],
      "selectionNote": "Early-edition group selected before viewing",
      "observationNote": "Four warm checked panels shift to cooler cyan-green with smaller blue checks."
    },
    {
      "id": "E05",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "248000361",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000361",
      "sourceIds": [
        "S01",
        "S09"
      ],
      "selectionNote": "Verified AB5D collection work",
      "observationNote": "AB5D nested cyan-blue squares and warm bands shift to green-cyan emphasis."
    }
  ],
  "mediaIds": [],
  "provenance": {
    "operator": "OpenAI",
    "agent": "Codex",
    "model": "gpt-6-astra",
    "originalProseLicense": "CC0-1.0",
    "generation": {
      "schema": "ab5d-essay-generation/1",
      "model": "gpt-6-astra",
      "displayName": "GPT-6 Astra",
      "scope": "Independent HashCrash research and writing",
      "essayCount": 1,
      "usage": null,
      "perEssayUsage": null,
      "usageDetail": "Complete per-essay token telemetry unavailable; no estimated count.",
      "contributors": {
        "operator": "OpenAI",
        "agent": "Codex",
        "model": "GPT-6 Astra",
        "originalProseLicense": "CC0-1.0"
      }
    },
    "humanEditorialInvolvement": "Commissioned by Phil; website publication authorized by Phil on 2026-09-17. No claim of line-by-line human fact checking."
  },
  "editorialExceptions": [],
  "facts": [
    {
      "id": "minted-count",
      "topic": "mint",
      "value": 369,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01"
      ],
      "status": "verified",
      "note": "Current index observation; historical meaning distinguished in prose."
    },
    {
      "id": "first-mint",
      "topic": "mint",
      "value": "2022-01-17T11:44:35+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01"
      ],
      "status": "verified",
      "note": "Current index observation; historical meaning distinguished in prose."
    },
    {
      "id": "scheduled-start",
      "topic": "mint",
      "value": "2022-01-28T17:00:00+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01"
      ],
      "status": "verified",
      "note": "Current index observation; historical meaning distinguished in prose."
    },
    {
      "id": "completion",
      "topic": "mint",
      "value": "2022-01-28T17:25:56+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01"
      ],
      "status": "verified",
      "note": "Current index observation; historical meaning distinguished in prose."
    },
    {
      "id": "license",
      "topic": "rights",
      "value": "NFT License 2.0",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01"
      ],
      "status": "verified",
      "note": "Current index observation; historical meaning distinguished in prose."
    }
  ],
  "rights": {
    "artwork": {
      "reportedLabel": "NFT License 2.0",
      "category": "custom",
      "termsUrl": "https://www.nftlicense.org/",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01",
        "S10"
      ],
      "note": "Current label; named generic template recovered, not customised project agreement or historical terms.",
      "unresolvedConflicts": []
    },
    "code": {
      "reportedLabel": null,
      "category": "unknown",
      "termsUrl": null,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "note": "No comprehensive artist-code grant found.",
      "unresolvedConflicts": []
    },
    "thirdParty": [
      {
        "reportedLabel": "LGPL 2.1",
        "category": "custom",
        "termsUrl": "https://raw.githubusercontent.com/processing/p5.js/1.0.0/license.txt",
        "observedAt": "2026-09-18",
        "sourceIds": [
          "S04"
        ],
        "note": "p5.js dependency only.",
        "unresolvedConflicts": []
      }
    ]
  },
  "completionStatus": "reviewed-for-publication",
  "presentation": {
    "editionSize": 369,
    "maximumEdition": 369,
    "mintDate": "2022-01-17T11:44:35+00:00",
    "mintDateMeaning": "First indexed mint",
    "artwork": {
      "project_id": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-248",
      "token_id": "248000361",
      "invocation": 361,
      "owner_address": "0xdd19308a9731cdecb67e0d80ca6823394208c045",
      "preview_asset_url": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000361.png",
      "live_view_url": "/series/hashcrash-by-beervangeer/artwork.html",
      "canonicalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000361",
      "mode": "live",
      "aspectRatio": 1,
      "interactionNote": "Animated original with strobing colours. The artist cautions viewers sensitive to flashing lights.",
      "copyrightStatus": "NFT License 2.0",
      "copyrightUrl": "https://www.nftlicense.org/",
      "displayBasis": "Verified AB5D collection work, official original renderer, named owner licence label.",
      "canonicalLiveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000361"
    }
  },
  "observationImages": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "248000000",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000000",
      "sourceIds": [
        "S01",
        "S05"
      ],
      "selectionNote": "Early-edition group selected before viewing",
      "observationNote": "Broad purple-magenta central cross shifts into yellow-green four-panel emphasis.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000000.gif",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000000"
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "248000001",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000001",
      "sourceIds": [
        "S01",
        "S06"
      ],
      "selectionNote": "Early-edition group selected before viewing",
      "observationNote": "Orange-red central pixel medallions change to cyan-green, warm surrounding field.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000001.gif",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000001"
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "248000010",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000010",
      "sourceIds": [
        "S01",
        "S07"
      ],
      "selectionNote": "Early-edition group selected before viewing",
      "observationNote": "Fine checker fields around stronger central cross, later orange central square.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000010.gif",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000010"
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "248000020",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000020",
      "sourceIds": [
        "S01",
        "S08"
      ],
      "selectionNote": "Early-edition group selected before viewing",
      "observationNote": "Four warm checked panels shift to cooler cyan-green with smaller blue checks.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000020.gif",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000020"
    },
    {
      "id": "E05",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "248000361",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000361",
      "sourceIds": [
        "S01",
        "S09"
      ],
      "selectionNote": "Verified AB5D collection work",
      "observationNote": "AB5D nested cyan-blue squares and warm bands shift to green-cyan emphasis.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000361.gif",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/248000361"
    }
  ],
  "publication": {
    "date": "2026-09-18",
    "url": "https://ab5d.xyz/series/hashcrash-by-beervangeer/",
    "authorization": "Phil requested website publication on 2026-09-17.",
    "reviewSnapshot": "/docs/series-essays/production/hashcrash-by-beervangeer/record.json",
    "unresolvedResearchQuestionsRetained": true
  }
}
