{
  "schema": "ab5d-series-essay/1",
  "identity": {
    "chainId": 1,
    "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
    "projectId": 154,
    "slug": "warp-by-espina",
    "title": "Warp",
    "artistCredit": "espina",
    "artistDossierUrls": [
      "https://ab5d.xyz/artists/espina/"
    ]
  },
  "revision": 2,
  "researchCutoff": "2026-09-17",
  "status": "published-with-research-limitations",
  "mediaIds": [],
  "provenance": {
    "operator": "AB5D commissioned research agent",
    "agent": "radiance_fresh, Warp assignment",
    "model": "gpt-6-astra",
    "modelVersion": null,
    "tools": [
      "Python urllib official GraphQL and page retrieval",
      "web search and body reading",
      "CUA Chrome original renderer screenshots and controls",
      "local package validator"
    ],
    "humanEditorialInvolvement": "Commissioned by Phil; website publication authorized by Phil on 2026-09-17. No claim of line-by-line human fact checking.",
    "originalProseLicense": "CC0-1.0",
    "usage": {
      "inputTokens": 3157586,
      "cachedInputTokens": 3103744,
      "outputTokens": 5991,
      "reasoningOutputTokens": 451,
      "totalTokens": 3163577,
      "model": "gpt-6-astra",
      "status": "measured",
      "scope": "Warp measured delegated research and drafting through the last usage event before handoff; final handoff, editorial integration and publication excluded.",
      "generationRecord": "/data/series-generation-expansion-106.json"
    },
    "generation": {
      "schema": "ab5d-essay-generation/1",
      "model": "gpt-6-astra",
      "displayName": "GPT-6 Astra",
      "scope": "Warp measured delegated research and drafting through the last usage event before handoff; final handoff, editorial integration and publication excluded.",
      "essayCount": 1,
      "perEssayUsage": {
        "inputTokens": 3157586,
        "cachedInputTokens": 3103744,
        "outputTokens": 5991,
        "reasoningOutputTokens": 451,
        "totalTokens": 3163577
      },
      "usage": {
        "inputTokens": 3157586,
        "cachedInputTokens": 3103744,
        "outputTokens": 5991,
        "reasoningOutputTokens": 451,
        "totalTokens": 3163577
      },
      "usageSummary": "across the Warp measured delegated research and drafting through the last usage event before handoff.",
      "usageDetail": "Measured usage of the dedicated research session, including cached input. Coordinator review and publication excluded.",
      "accounting": "Cached input is included in input; reasoning output in output. Total is input plus output.",
      "source": "Measured difference between completed assignments in delegated Codex session",
      "measurementStart": "2026-09-17T23:22:55.854Z",
      "recordedAt": "2026-09-17T23:27:47.404Z"
    }
  },
  "sections": [
    {
      "id": "work-context",
      "heading": "Cloth made of discrete marks",
      "bodyMarkdown": "Warp makes a textile surface out of rectangles, ellipses and typographic signs. Its small units gather into bands, crossings and repeated fields, but they remain distinguishable as individual marks. In some outputs, the image resembles an orderly sample of woven material; in others, parts of the pattern seem to loosen and drift away from the grid.[^S08][^S12]\n\nEspina calls the project generative textiles and explicitly connects the histories of looms and computers. The artist describes modulation of forms as a way to extend the loom metaphor, rather than presenting the work as a simulation of actual fibres.[^S01] The [AB5D artist dossier](https://ab5d.xyz/artists/espina/) provides a broader route into the artist's work.\n\nWarp is an Art Blocks Factory edition of 444 works. Its exact identity is Ethereum project 154 on contract `0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270`; 152 is its Atlas position, not its project number.[^S02] Its September 2021 release follows espina's earlier Art Blocks project, Sigils. The Sphere's contributor biography identifies both works and describes a practice concerned with patterns, ecology and emergence.[^S03]"
    },
    {
      "id": "conception",
      "heading": "A loom as a way of thinking",
      "bodyMarkdown": "The official statement opens with a quotation attributed to Shohaku Okumura and places human lives within a fabric of time and space. It then joins that image to the shared binary logic of weaving and computing.[^S01] The quotation supplies a philosophical frame; the source does not provide its original publication, and it should not be treated as independently authenticated here.\n\nThere is a concrete technical history behind the loom comparison. National Museums Scotland explains how the Jacquard mechanism used linked punched cards, with rows of holes corresponding to rows of a textile pattern. The museum also describes the influence of that system on Babbage's plan to program the Analytical Engine with cards.[^S04] This historical context supports the artist's stated connection without establishing that Warp reproduces a particular Jacquard design.\n\nThe project also pledges twenty-five percent of the artist's proceeds to Alianza Arkana, described in the statement as supporting the Peruvian Amazon and Shipibo-Konibo peoples.[^S01] That is a specific charitable commitment. It does not by itself establish that the generated motifs reproduce Shipibo-Konibo designs, that community members collaborated on the algorithm, or that the contribution was paid. No such stronger claims are made by the inspected evidence.\n\nThe available conception account remains brief. The Sphere situates espina's work among interests in cybernetics, animism, decentralised systems and Zen, but it is a biographical profile rather than a development diary.[^S03] No dated sequence of Warp sketches, parameter revisions or artist interviews was recovered. The released program can explain how the work operates; it cannot fill those historical gaps with an invented story of discovery."
    },
    {
      "id": "construction",
      "heading": "Two patterns crossing, then another",
      "bodyMarkdown": "Warp's complete artist script is only 4,650 characters. It was retrieved through the official Art Blocks index, read in full and hashed. The runtime is p5.js 1.0.0. The inspection therefore concerns the indexed source, not a direct chain retrieval pinned to a historical block.[^S02]\n\nThe generator begins with four unsigned thirty-two-bit words parsed from the first half of the token hash. A xorshift recurrence updates that state and returns values between zero and one. The remaining half of the hash and the token number are not separately read by this artist script. The random sequence selects both the structural pattern and the way its cells are drawn.[^S02]\n\nEach pattern begins as four numbers within an eight-value vocabulary. Operations then extend the sequence: it can append a reversed copy, repeat itself, add a shifted version, double values modulo eight, change only odd values, or append a specially repeated section. A flattening operation, available under a selected condition, appends a constant-valued segment. These are small transformations of lists, rather than hand-positioned individual motifs.[^S02]\n\nTwo such sequences form the principal crossing structure. A selected lookup table decides whether the value assigned to a row connects with the value assigned to a column. Each crossing receives an on or off state. Because both sequences end by appending their reversals, the underlying arrangement has mirrored organisation even when the rendered marks later complicate it.[^S02]\n\nThe chosen number of extension rounds produces grids with thirty-two, 128 or 256 positions on each axis. This is the central scale change within the edition: the same portrait field can carry large separated marks or tens of thousands of tiny potential crossings. The program also checks the number of active cells. If it is below 192 or exactly 1,024, it runs setup and drawing again, continuing the random sequence rather than accepting that result.[^S02]\n\nA second independently generated pair of sequences and lookup table creates a modulation mask. Where a crossing is active in both systems, the mark may change colour, fill state, shape, symbol, rotation or position. This second pattern does not simply replace the first. It acts selectively within it, allowing a stable overall structure to carry another level of variation.[^S02]\n\nThe visible units come from a deliberately restricted vocabulary. Shape mode uses ellipses or rectangles. Symbol mode draws characters selected from braces, a plus sign, slash, parenthesis, a right-angle-like sign and an asterisk. The script requests a generic sans-serif font rather than packaging a particular typeface, so the exact outlines of symbolic marks can depend on the viewing environment.[^S02]\n\nFive four-colour arrays supply the palette families. Background, active marks, inactive marks and modulation receive colours by selection without replacement. Inactive cells can remain empty or appear in another colour. Outline and filled versions create further differences between an airy diagram and a more continuous field.[^S02]\n\nSeeded noise can displace marks from their assigned crossings. The coordinates vary smoothly across neighbouring cells, so the disturbance can resemble folds, loose threads or a ripple passing through fabric. These are readings of the resulting arrangement, not calculated cloth mechanics. Rotation likewise alters individual marks without introducing a camera or a three-dimensional surface.[^S02]\n\nThe canvas keeps a 5:6 portrait ratio, fitted within the browser window. On ordinary smaller displays, drawing coordinates are calculated against an internal 1,800 by 2,160 reference and then scaled to the visible canvas. The script calls noLoop, and it defines no click, keyboard, resize or audio handler. The sampled originals appeared as completed stills. Clicking and pressing Space on held #99 produced no visible change.[^S12] Terms such as fray and wrinkle describe spatial variation within the picture, not continuing animation."
    },
    {
      "id": "mint",
      "heading": "What the mint record establishes",
      "bodyMarkdown": "The first indexed mint, #0, occurred on September 4, 2021 at 06:12:28+00:00. The second followed at 06:15:59. Activation came on September 8 at 13:14:43, while the indexed start is September 9 at 19:00:00.[^S02] The two early tokens therefore cannot be used as proof that public minting opened on September 4. Their original allocation and payment conditions remain unresolved.\n\nSampled #10 was minted on September 9 at 20:05:45, #20 at 20:05:53, and held #99 at 20:07:06. The final invocation, #443, matches the completion time of 20:23:21. The indexed start-to-completion interval is one hour, twenty-three minutes and twenty-one seconds. This is a calculation between reported fields, not an independently reconstructed public sellout duration.[^S02]\n\nThe collection's calendar date also depends on the display's timezone. The indexed start is September 9 in UTC, while the inspected browser rendered the official page's release label as September 10 in the local Australian environment.[^S01][^S02] Those labels should not be turned into two separate launches.\n\nCurrent minted supply and maximum both read 444, and the current price field is 0.25 ETH. A contemporary original auction schedule was not recovered, so that price is not presented as proof of the starting price or every minter's payment. The artist's twenty-five-percent donation pledge is preserved as a pledge; no project-specific recipient receipt or completed transfer was verified.[^S01][^S02]"
    },
    {
      "id": "rights",
      "heading": "Rights travel with conditions",
      "bodyMarkdown": "The official index reports CC BY-NC 4.0. Its corresponding terms permit noncommercial sharing and adaptation with attribution, a licence link, indication of changes and the other applicable conditions. They prohibit added restrictions that would prevent recipients from exercising the licensed rights. The label is not a transfer of copyright to a token holder and does not provide unrestricted commercial reuse.[^S02][^S05]\n\nThe index contains no separate licence link, and no distinct grant for the artist's source code was identified. The scope of the artwork label in relation to that source therefore remains unresolved. The p5.js 1.0.0 dependency carries GNU LGPL 2.1 terms; those terms do not automatically govern espina's artwork or script.[^S06]\n\nFreshly checked ownership places #99 in a wallet linked by the current AB5D profile.[^S02][^S07] That establishes why this edition represents the collection here. The reported Creative Commons licence, with its noncommercial and attribution conditions, supplies the relevant reproduction basis; ownership alone does not supply copyright permission."
    },
    {
      "id": "examples",
      "heading": "Five views of the weave",
      "bodyMarkdown": "The following close readings concern verified tokens on Ethereum contract `0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270`: #0, token `154000000`; #1, `154000001`; #10, `154000010`; #20, `154000020`; and held #99, `154000099`. All five original renderers were viewed. This selection compares scale, mark vocabulary and disruption rather than claiming to represent the statistical distribution of the edition.[^S02]\n\nIn #0, rows of pale angular signs run across a blue field. The signs resemble little descending steps joined into rails, while dark asterisks interrupt those rails in clusters. Broad horizontal arrangements remain easy to follow, but their lengths vary and the asterisks gather into changing vertical alignments. The image can be read as a textile diagram and as a field of unfamiliar notation.[^S08]\n\nThe large individual signs matter. At this scale, a viewer can identify a unit, follow its repetition and notice where another kind of unit takes over. The asterisks are not an incidental texture added to a finished design: they participate in the organisation of the field. Colour separates some runs without destroying their shared spacing. The result makes the second pattern's intervention legible while preserving the first pattern's orderly rows.[^S08]\n\nIn #1, much smaller pale crosses accumulate against dark teal. Four broad horizontal panels are bounded by repeated lines, and narrow vertical bands cut through their ends. At a distance, the marks merge into a woven-looking mesh. Looking closer, their cross-shaped construction returns. The change from #0 is consequently not just a palette change: the unit becomes less prominent than the larger structure it helps produce.[^S09]\n\nIn #10, pale tan filled squares occupy a light cream field. They are widely separated compared with #1, gathering into short bars, isolated pairs and small blocks. A few central rectangular groups anchor a largely open arrangement. Without the fine mesh or contrasting symbol types, the space between marks becomes a conspicuous part of the design.[^S10]\n\nThe rust-ground #20 is denser and more intricate. Pale filled patches alternate with tiny outlined circular marks. Stepped bands widen and contract across the upper and lower areas, while narrow vertical strands connect them through the middle. Its changes of mark give a single pale colour several visual weights, from solid patch to delicate perforation.[^S11]\n\nHeld #99 makes the grid's instability its main event. Tiny dark blue outlined shapes still form an approximately rectangular field, but lighter blue clusters spill out of alignment, curling beyond its top, bottom and sides. Some regions retain crisp repetition while others become smoky, tangled masses. The underlying pattern remains visible through the disruption, so the image does not simply become an unstructured scatter.[^S12]\n\nThat coexistence gives #99 a different kind of textile association from #1. The latter suggests regular manufacture; #99 suggests material loosened, worn or caught in uneven tension. These are interpretations of a still arrangement. The original remained unchanged across inspection and after input. Its apparent fraying is held in place by deterministic coordinates, making disorder something to examine rather than an event waiting to finish.[^S12]"
    },
    {
      "id": "significance",
      "heading": "Order that can tolerate disturbance",
      "bodyMarkdown": "Warp connects its subject and its procedure unusually closely. The loom is present in the artist's statement, but also in the actual crossing of generated row and column sequences. Its modulation system then tests how much variation those crossings can carry while remaining recognisable as a coherent surface.[^S01][^S02]\n\nThe five works show several answers. Large signs foreground the vocabulary; fine crosses subordinate it to a larger pattern; displaced marks let the grid become visible through its partial breakdown. None requires physical thread, yet the distinction between a rule and its disturbance remains materially suggestive.\n\nThe unresolved questions are specific:\n\n- Which weaving drafts, textile practices or earlier experiments informed the seven lookup tables?\n- How were the modulation ranges and rejection conditions selected during development?\n- What were the original auction schedule and allocation terms for the early tokens?\n- What records establish fulfilment of the Alianza Arkana pledge?\n- Did the artwork licence expressly include the artist's source code?"
    }
  ],
  "facts": [
    {
      "id": "minted-count",
      "topic": "mint",
      "value": 444,
      "observedAt": "2026-09-17T23:25:20.751299+00:00",
      "sourceIds": [
        "S02"
      ],
      "status": "reported",
      "note": "Current supply"
    },
    {
      "id": "maximum-edition",
      "topic": "mint",
      "value": 444,
      "observedAt": "2026-09-17T23:25:20.751299+00:00",
      "sourceIds": [
        "S02"
      ],
      "status": "reported",
      "note": "Current maximum, not original cap proof"
    },
    {
      "id": "first-mint",
      "topic": "mint",
      "value": "2021-09-04T06:12:28+00:00",
      "observedAt": "2026-09-17T23:25:20.751299+00:00",
      "sourceIds": [
        "S02"
      ],
      "status": "reported",
      "note": "Allocation unresolved"
    },
    {
      "id": "activation",
      "topic": "mint",
      "value": "2021-09-08T13:14:43+00:00",
      "observedAt": "2026-09-17T23:25:20.751299+00:00",
      "sourceIds": [
        "S02"
      ],
      "status": "reported",
      "note": "Distinct from first mint"
    },
    {
      "id": "indexed-start",
      "topic": "mint",
      "value": "2021-09-09T19:00:00+00:00",
      "observedAt": "2026-09-17T23:25:20.751299+00:00",
      "sourceIds": [
        "S02"
      ],
      "status": "reported",
      "note": "Not audited public opening"
    },
    {
      "id": "completion",
      "topic": "mint",
      "value": "2021-09-09T20:23:21+00:00",
      "observedAt": "2026-09-17T23:25:20.751299+00:00",
      "sourceIds": [
        "S02"
      ],
      "status": "reported",
      "note": "Matches #443"
    },
    {
      "id": "current-price-wei",
      "topic": "mint",
      "value": "250000000000000000",
      "observedAt": "2026-09-17T23:25:20.751299+00:00",
      "sourceIds": [
        "S02"
      ],
      "status": "reported",
      "note": "0.25 ETH current field, not original schedule"
    },
    {
      "id": "indexed-start-to-completion-seconds",
      "topic": "mint",
      "value": 5001,
      "observedAt": "2026-09-17T23:25:20.751299+00:00",
      "sourceIds": [
        "S02"
      ],
      "status": "inferred",
      "note": "1 hour23minutes21seconds; not audited public sellout"
    }
  ],
  "rights": {
    "artwork": {
      "reportedLabel": "CC BY-NC 4.0",
      "category": "creative-commons",
      "termsUrl": "https://creativecommons.org/licenses/by-nc/4.0/legalcode.en",
      "observedAt": "2026-09-17T23:25:20.751299+00:00",
      "sourceIds": [
        "S02",
        "S05"
      ],
      "note": "Noncommercial sharing/adaptation with attribution and other conditions; index link null.",
      "unresolvedConflicts": []
    },
    "code": {
      "reportedLabel": null,
      "category": "unknown",
      "termsUrl": null,
      "observedAt": "2026-09-17T23:25:20.751299+00:00",
      "sourceIds": [
        "S02"
      ],
      "note": "Separate artist-source grant scope unresolved.",
      "unresolvedConflicts": []
    },
    "thirdParty": [
      {
        "reportedLabel": "GNU LGPL 2.1",
        "category": "custom",
        "termsUrl": "https://cdn.jsdelivr.net/npm/p5@1.0.0/license.txt",
        "observedAt": "2026-09-17T23:25:20.751299+00:00",
        "sourceIds": [
          "S06"
        ],
        "note": "p5.js runtime only; not artist source or artwork.",
        "unresolvedConflicts": []
      }
    ]
  },
  "examples": [
    {
      "id": "E0",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "154000000",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000000",
      "sourceIds": [
        "S02",
        "S08"
      ],
      "selectionNote": "Scale, symbol/shape and displacement comparisons plus fresh held #99; not statistical.",
      "observationNote": "Blue portrait ground; large pale angular right-angle signs form horizontal rails, interrupted by dark asterisks and darker angular signs. Stable original still."
    },
    {
      "id": "E1",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "154000001",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000001",
      "sourceIds": [
        "S02",
        "S09"
      ],
      "selectionNote": "Scale, symbol/shape and displacement comparisons plus fresh held #99; not statistical.",
      "observationNote": "Dark teal ground; dense small pale crosses gather into four broad horizontal mesh-like panels with repeated borders and vertical end bands. Original still."
    },
    {
      "id": "E10",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "154000010",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000010",
      "sourceIds": [
        "S02",
        "S10"
      ],
      "selectionNote": "Scale, symbol/shape and displacement comparisons plus fresh held #99; not statistical.",
      "observationNote": "Light cream ground with coarse tan filled squares, short bars, isolated pairs and central rectangular groups separated by open spaces. Original still."
    },
    {
      "id": "E20",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "154000020",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000020",
      "sourceIds": [
        "S02",
        "S11"
      ],
      "selectionNote": "Scale, symbol/shape and displacement comparisons plus fresh held #99; not statistical.",
      "observationNote": "Rust ground; dense pale filled stepped patches and tiny outlined circles, widening horizontal bands and narrow vertical strands. Original still."
    },
    {
      "id": "E99",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "154000099",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000099",
      "sourceIds": [
        "S02",
        "S12"
      ],
      "selectionNote": "Scale, symbol/shape and displacement comparisons plus fresh held #99; not statistical.",
      "observationNote": "Pale blue-white ground; dense dark-blue outlined tiny shapes in roughly rectangular grid, with lighter blue displaced clusters curling beyond edges. Click and Space made no visible change; repeated screenshot confirmed static arrangement."
    }
  ],
  "codeInspection": {
    "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
    "locator": "query { projects_metadata(where:{slug:{_eq:\"warp-by-espina\"}}){name artist_name slug contract_address project_id description license link_to_license invocations max_invocations activated_at first_token_minted_at second_token_minted_at completed_at start_datetime price_per_token_in_wei currency_symbol script_type_and_version dependency_name_and_version website artist_interview sales_notes script} tokens_metadata(where:{token_id:{_in:[\"154000000\", \"154000001\", \"154000010\", \"154000020\", \"154000099\", \"154000443\"]},project_id:{_eq:\"0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-154\"}}){token_id invocation owner_address hash minted_at mint_transaction_hash preview_asset_url primary_asset_url live_view_url features} }",
    "sha256": "7fa75662ec9e554bfc1623b2daee18fb071c70bdcf0e5ec9d0a4decde6186dcb",
    "retrievedAt": "2026-09-17T23:25:20.751299+00:00",
    "method": "Complete indexed-script reading and original remote renderer visual observations; no local execution of artist source.",
    "executed": true,
    "chainBlock": null,
    "executionNote": "Five original generators viewed; #99 click and Space unchanged."
  },
  "editorialExceptions": [
    {
      "id": "development-history",
      "status": "pending",
      "reviewer": null,
      "reason": "Artist statement inspected, no detailed dated development account recovered."
    },
    {
      "id": "historical-sale",
      "status": "pending",
      "reviewer": null,
      "reason": "Original cap announcement, price schedule and early allocation unresolved."
    },
    {
      "id": "charity-payment",
      "status": "pending",
      "reviewer": null,
      "reason": "25 percent artist-proceeds pledge only; recipient receipt not verified."
    },
    {
      "id": "software-rights",
      "status": "pending",
      "reviewer": null,
      "reason": "Separate artist-code grant scope unresolved."
    },
    {
      "id": "telemetry",
      "status": "pending",
      "reviewer": null,
      "reason": "Null for coordinator measured delta."
    }
  ],
  "presentation": {
    "editionSize": 444,
    "maximumEdition": 444,
    "mintDate": "2021-09-04T06:12:28+00:00",
    "mintDateMeaning": "First indexed mint",
    "artwork": {
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "token_id": "154000099",
      "invocation": 99,
      "owner_address": "0xdd19308a9731cdecb67e0d80ca6823394208c045",
      "canonicalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000099",
      "preview_asset_url": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000099.png",
      "live_view_url": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000099",
      "mode": "image",
      "copyrightStatus": "CC BY-NC 4.0",
      "copyrightUrl": "https://creativecommons.org/licenses/by-nc/4.0/legalcode.en",
      "displayBasis": "Reported noncommercial reproduction with attribution and other terms. Original viewed, no redistributed assets; live site embedding not tested."
    }
  },
  "observationImages": [
    {
      "id": "E0",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "154000000",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000000",
      "sourceIds": [
        "S02",
        "S08"
      ],
      "selectionNote": "Scale, symbol/shape and displacement comparisons plus fresh held #99; not statistical.",
      "observationNote": "Blue portrait ground; large pale angular right-angle signs form horizontal rails, interrupted by dark asterisks and darker angular signs. Stable original still.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000000.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000000"
    },
    {
      "id": "E1",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "154000001",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000001",
      "sourceIds": [
        "S02",
        "S09"
      ],
      "selectionNote": "Scale, symbol/shape and displacement comparisons plus fresh held #99; not statistical.",
      "observationNote": "Dark teal ground; dense small pale crosses gather into four broad horizontal mesh-like panels with repeated borders and vertical end bands. Original still.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000001.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000001"
    },
    {
      "id": "E10",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "154000010",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000010",
      "sourceIds": [
        "S02",
        "S10"
      ],
      "selectionNote": "Scale, symbol/shape and displacement comparisons plus fresh held #99; not statistical.",
      "observationNote": "Light cream ground with coarse tan filled squares, short bars, isolated pairs and central rectangular groups separated by open spaces. Original still.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000010.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000010"
    },
    {
      "id": "E20",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "154000020",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000020",
      "sourceIds": [
        "S02",
        "S11"
      ],
      "selectionNote": "Scale, symbol/shape and displacement comparisons plus fresh held #99; not statistical.",
      "observationNote": "Rust ground; dense pale filled stepped patches and tiny outlined circles, widening horizontal bands and narrow vertical strands. Original still.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000020.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000020"
    },
    {
      "id": "E99",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "154000099",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000099",
      "sourceIds": [
        "S02",
        "S12"
      ],
      "selectionNote": "Scale, symbol/shape and displacement comparisons plus fresh held #99; not statistical.",
      "observationNote": "Pale blue-white ground; dense dark-blue outlined tiny shapes in roughly rectangular grid, with lighter blue displaced clusters curling beyond edges. Click and Space made no visible change; repeated screenshot confirmed static arrangement.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000099.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/154000099"
    }
  ],
  "publication": {
    "date": "2026-09-18",
    "url": "https://ab5d.xyz/series/warp-by-espina/",
    "authorization": "Phil requested website publication on 2026-09-17.",
    "reviewSnapshot": "/docs/series-essays/production/warp-by-espina/record.json",
    "unresolvedResearchQuestionsRetained": true
  }
}
