{
  "schema": "ab5d-series-essay/1",
  "identity": {
    "chainId": 1,
    "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
    "projectId": 200,
    "slug": "saturazione-by-stefano-contiero",
    "title": "Saturazione",
    "artistCredit": "Stefano Contiero",
    "artistDossierUrls": [
      "https://ab5d.xyz/artists/stefano-contiero/"
    ]
  },
  "revision": 2,
  "researchCutoff": "2026-09-18",
  "status": "published-with-research-limitations",
  "facts": [
    {
      "id": "minted-count",
      "topic": "mint",
      "value": 111,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01",
        "S02"
      ],
      "status": "verified",
      "note": "Equals maximum."
    },
    {
      "id": "first-token-minted-at",
      "topic": "mint",
      "value": "2021-11-01T08:13:54+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S03"
      ],
      "status": "verified",
      "note": ""
    },
    {
      "id": "activated-at",
      "topic": "mint",
      "value": "2021-11-05T20:59:39+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": ""
    },
    {
      "id": "start-datetime",
      "topic": "mint",
      "value": "2021-11-12T17:00:00+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": "Indexed public start clock."
    },
    {
      "id": "completed-at",
      "topic": "mint",
      "value": "2022-03-04T07:38:12+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": ""
    },
    {
      "id": "script-type",
      "topic": "construction",
      "value": "p5@1.0.0",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": ""
    },
    {
      "id": "license-label",
      "topic": "rights",
      "value": "CC BY-NC 4.0",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": "Exact license string after strip."
    },
    {
      "id": "category",
      "topic": "context",
      "value": "playground",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01",
        "S02"
      ],
      "status": "verified",
      "note": ""
    },
    {
      "id": "original-per-token-price-eth",
      "topic": "mint",
      "value": null,
      "observedAt": "2026-09-18",
      "sourceIds": [],
      "status": "unknown",
      "note": "Individual paid prices not recovered from receipts."
    }
  ],
  "rights": {
    "artwork": {
      "reportedLabel": "CC BY-NC 4.0",
      "category": "creative-commons",
      "termsUrl": "https://creativecommons.org/licenses/by-nc/4.0/",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S06"
      ],
      "note": "Deed inspected.",
      "unresolvedConflicts": []
    },
    "code": {
      "reportedLabel": null,
      "category": "unknown",
      "termsUrl": null,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S03"
      ],
      "note": "No header.",
      "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": [
          "S16"
        ],
        "note": "Dependency terms only; no inferred whole artist-script grant.",
        "unresolvedConflicts": []
      },
      {
        "reportedLabel": "MIT",
        "category": "custom",
        "termsUrl": "https://raw.githubusercontent.com/ashima/webgl-noise/master/LICENSE",
        "observedAt": "2026-09-18",
        "sourceIds": [
          "S17"
        ],
        "note": "Dependency terms only; no inferred whole artist-script grant.",
        "unresolvedConflicts": []
      }
    ]
  },
  "sections": [
    {
      "id": "work-context",
      "heading": "The work and its context",
      "bodyMarkdown": "Saturazione makes colour difficult to keep at a distance. In one output, blue bends into crisp folds bordered by mint and orange; in another, comparable colours dissolve into a grainy haze. The images suggest liquid, fabric and unfocused light without settling into an illustration of any one material. Their most consequential variation is the visibility of an edge: how firmly a shape separates itself from its neighbours, and how much uncertainty can enter that separation.[^S04][^S05]\n\nStefano Contiero released the 111-work series through Art Blocks Playground in November 2021. His accompanying statement links an abundance of colour and detail to the need to pause during overwhelming change. That invitation gives the work an emotional register without prescribing what its abstract forms must represent. The [Stefano Contiero dossier](https://ab5d.xyz/artists/stefano-contiero/) places it within his wider practice.[^S01]\n\nThe five originals examined here reward comparison because softness changes more than surface finish. A sharply bounded blue area can behave like a folded object; a blurred one can become an expanse through which the eye searches for a boundary. Looking from edition 0 to edition 97 means moving between two different kinds of attention, although both belong to the same recognisable chromatic world.[^S04][^S05]"
    },
    {
      "id": "conception",
      "heading": "Conception and development",
      "bodyMarkdown": "An interview published by Marcelo Soria-Rodríguez on the release day identifies Saturazione as Contiero's second Playground project and illustrates its first edition. Contiero names fabrics, textures and organic appearances among his interests. He wants viewers to wonder whether a work is a painting or a computer-generated image. That account helps explain the attraction of surfaces whose material identity remains uncertain.[^S12]\n\nIn the same conversation he describes a hectic period following NFT success and a restorative family visit, but explicitly connects that experience to Sentimenti. It is useful context for his concern with emotion and pause, not a documented origin story for Saturazione. The interview supplies no detailed chronology of this algorithm's development.[^S12]\n\nThe project's own brief is more concentrated: visual abundance becomes a way of thinking about too much experience arriving at once. Read beside the deployed program, this suggests a productive tension. The system begins with a crowd of marks, then repeatedly transforms their boundaries. What survives may look densely eventful or broadly atmospheric. This is an interpretation of how the statement and procedure meet, rather than a recovered account of the artist's sequence of experiments.[^S01][^S03]\n\nThe surviving evidence therefore supports a specific account of the work's premise and construction while leaving development history open. Earlier sketches, discarded versions and the decision to settle on 111 editions were not established in the sources inspected. Those gaps do not prevent close reading of the deployed system; they limit claims about how the artist arrived at it."
    },
    {
      "id": "construction",
      "heading": "How the work was constructed",
      "bodyMarkdown": "The indexed program uses p5.js 1.0.0 and a WebGL graphics buffer. Four groups of hexadecimal characters from the token hash initialise a small pseudorandom generator. Its repeatable sequence supplies both ordinary selections and Gaussian samples, which cluster values around a centre while permitting more distant excursions. Randomness consequently shapes the concentration and proportions of marks as well as the choice of colours.[^S02][^S03]\n\nSix compactly encoded palettes supply the main colour families. A separate branch selects black and white. Colours taken from the chosen palette receive small variations in hue, saturation and brightness. A palette is therefore a starting vocabulary rather than a guarantee that every visible pixel will match an unmodified swatch. Subsequent blending and texture processing further complicate those relationships.[^S03]\n\nThe initial image is assembled in an offscreen square. The program lays down a background and a large rotated rectangular colour region, then adds a thousand shapes. A parameter selects rectangles or ellipses. Their positions and dimensions use the Gaussian samples, producing concentrations rather than a uniformly spaced array. Each shape is drawn using screen blending and then multiply blending. Lightening and darkening operations act on the same accumulating field, helping create internal variation before the more conspicuous distortion begins.[^S03]\n\nA fragment shader then changes where that field is sampled. Simplex noise supplies smoothly varying offsets, while another component adds irregular jitter. Instead of simply recolouring a rectangle or ellipse, the shader displaces the locations from which colour is read. The initial shapes can stretch into lobes, folds and narrow necks. The result evokes flowing matter, but the inspected procedure does not calculate the physical movement of a liquid.[^S03]\n\nBlur is equally structural. A sampling routine combines weighted pairs of neighbouring texture values, and its direction and strength depend on other parameters. Some branches mix the blurred result with the sharper sample; others rely more heavily on the softened version. The program repeats the shader operation a finite number of times. Final treatment introduces grain and adjusts colour intensity. These stages provide an explanation for the difference between a sharply articulated contour and a granular transition that is hard to locate precisely.[^S03]\n\nThe display routine exists even though setup calls noLoop. It draws the offscreen result to the visible canvas twice, first normally and then with soft-light blending, before removing the graphics object. This is a finite rendering procedure, not a continuously changing animation. The five official originals were opened and visually inspected; the source contains no audio routine or artistic keyboard and pointer controls. A listener for loss of the WebGL context is a recovery mechanism, not an invitation to interact.[^S03][^S04][^S05]\n\nThe offscreen image starts at a nominal 4096-pixel square size, with reductions built in for texture limits or context loss. The visible canvas follows the window dimensions and receives that square image across its width and height. Display proportions can therefore affect the apparent proportions of the forms. The comparisons here use a common landscape viewport, so a broad horizontal passage is a description of that viewing condition, not a claim that every possible display preserves its exact shape.[^S03]\n\nPreservation consequently requires attention to the token input, script, p5 version and graphics environment. A still records one successful rendering, but the program also specifies how that still is produced. The source was read in full; the observations do not amount to a cross-device rendering audit or a reconstruction from a pinned Ethereum block."
    },
    {
      "id": "mint",
      "heading": "The mint",
      "bodyMarkdown": "The indexed first token was minted on 1 November 2021, before the collection page's release date of 12 November. Activation is recorded on 5 November, and the scheduled start on 12 November at 17:00. Edition 1 follows at 17:53:40 that day. These records distinguish the existence of an early token from the later release rather than requiring one date to replace the other.[^S01][^S02][^S03]\n\nThe completion field records 4 March 2022. Current invocations and maximum invocations both equal 111. The chronology extends over several months; it cannot be described as a release-day sellout. Nor does the first token's early date alone identify its recipient as an artist or administrative allocation. Establishing that role requires evidence beyond its position in the sequence.[^S02][^S03]\n\nEdition 97, the collection example used here, was minted on 27 December 2021. Its date helps make the extended issuance visible at the scale of an individual work. Original transaction receipts and a verified opening price schedule were not recovered for this essay. Later secondary-market listings do not establish what these minters paid, and no individual purchase price is inferred from them.[^S03][^S05]"
    },
    {
      "id": "rights",
      "heading": "Copyright and licensing",
      "bodyMarkdown": "The artwork's indexed licence label is CC BY-NC 4.0. The corresponding Creative Commons deed describes sharing and adaptation subject to attribution, indication of changes and a noncommercial condition. This identifies the observed artwork terms; it does not reconstruct every earlier version of those terms.[^S02][^S06]\n\nThe artist's program and its dependencies require separate treatment. The inspected script includes an attribution to Ashima's WebGL noise implementation, while p5.js supplies the rendering library. Neither the artwork label nor the presence of third-party code establishes a separate grant for the artist's entire script. No such grant was found in the inspected project material. AB5D's CC0 dedication applies to the original essay prose, not to the artwork or artist software.[^S03]\n\nThe p5.js 1.0.0 repository supplies LGPL 2.1 terms. The upstream WebGL-noise repository supplies an MIT-style permission notice with copyright and notice-retention conditions. These identify the dependencies' own terms; the shader attribution does not establish a byte-for-byte provenance audit of the incorporated variant.[^S16][^S17]"
    },
    {
      "id": "examples",
      "heading": "Close reading of examples",
      "bodyMarkdown": "The comparison uses editions 0, 1, 10 and 20, with edition 97 as the collection example. Their full token identifiers are 200000000, 200000001, 200000010, 200000020 and 200000097 on Ethereum contract 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270. All five official generators were opened and their rendered images inspected in the same landscape viewport. This small sample supports comparison of particular works, not claims about the frequency of a trait across the edition.[^S03]\n\nIn #0, a large cobalt passage occupies the centre and right. Pale mint enters from the upper left, while orange and cyan gather along the lower edge. Black separates these colours into curling regions, sometimes appearing as a channel and sometimes as an independent mass. The blue is not uniform: darker and lighter internal facets suggest folds, making the image look thicker than a flat arrangement of colour patches. Yet there is no stable object whose surface those folds describe.[^S04]\n\nThe mint area is especially active where it narrows into fingers against the dark field. A boundary that initially looks broad and simple becomes intricate when followed locally. This shift between a large chromatic region and its small edge events keeps the composition from resolving at one scale. The eye can rest in the blue and then become caught at an adjacent notch. Fine grain remains visible, but comparatively crisp borders give this output a firm, almost glossy articulation.[^S04]\n\nEdition #97 changes the balance. A nearly black mass spreads across the upper centre, while a diffuse pale mint glow rises to its left. Layered blue lobes sweep through the lower right, edged in places by muted orange. Yellow-green colour appears as a subdued patch rather than a crisp accent. The image's boundaries are porous: colour seems to emerge through grain instead of arriving as a clearly cut shape.[^S05]\n\nThis softness makes the central darkness harder to classify. It might read as a gap between coloured objects, then as an object itself, then as an unfocused region of the same continuous field. The pale area beside it seems luminous because its edge dissipates. Compared with #0, the task of looking shifts from tracing a contour to deciding where a contour could be. Blur preserves strong differences of light and dark while withholding their exact meeting points.[^S05]\n\nEdition #1 occupies an intermediate comparison: blue, black, cyan and orange still interlock, but the pale triangular glow near the centre has a granular perimeter. Orange passages at the top and lower left interrupt a mainly cool field. Black works as deep channels between luminous forms. The composition remains busy even though softness prevents many of its parts from acquiring a definite outline.[^S13]\n\nIn #10, turquoise occupies the upper field and intense blue spreads through the middle and bottom. Dark red lobes punctuate the top. An elongated cream-and-green form sweeps toward the right, above a narrow red band bordered with pale colour. The dominant experience is directional: several broad waves carry the eye across the image. Softness here supports continuity rather than the scattered uncertainty of #97.[^S14]\n\nEdition #20 distributes activity more widely. Coral occupies the upper and right areas; blue dominates the left and lower field, interrupted by green patches and bright cream islands. Small dark channels gather near the centre, while a pale form at lower left competes with another at mid-right. Instead of following one long band, the eye moves between separated accents. The same capacity to soften boundaries can support both the sweeping organisation of #10 and this more broken, dispersed arrangement.[^S15]"
    },
    {
      "id": "significance",
      "heading": "Significance and limitations",
      "bodyMarkdown": "Saturazione gives softness an active compositional role. Blur does not merely decorate a finished design: it changes which forms can be separated, how deep the dark areas appear, and whether the eye follows a definite route or searches a field. The five examples show how a limited procedure can move between crisp articulation, flowing bands and diffuse clusters without losing its chromatic intensity.[^S03][^S04][^S05][^S13][^S14][^S15]\n\nIts invitation to pause is persuasive because the image does not become simple when viewed slowly. Large relationships become legible, then grain and unstable boundaries complicate them again. The viewer can neither exhaust the work by naming its palette nor recover its initial shapes by tracing every contour. Its achievement lies in making the transformation of those shapes perceptually consequential.\n\nUnresolved research questions:\n\n- Recover project-specific development notes and earlier experiments.\n- Establish the original price schedule and classify early mint transactions.\n- Document any separate licence for the artist's program and earlier artwork terms.\n- Compare a pinned chain retrieval and test rendering across graphics environments."
    }
  ],
  "examples": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "200000000",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000000",
      "sourceIds": [
        "S04"
      ],
      "selectionNote": "Edition 0 first mint.",
      "observationNote": "Sharp sinuous boundaries; large cobalt field occupies centre and right, pale mint upper left, black separating bands and orange/cyan along lower edge. Tonal facets within blue imply folds, while mint projects into dark field in thin curling fingers. Fine grain remains despite comparatively crisp borders."
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "200000001",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000001",
      "sourceIds": [
        "S13"
      ],
      "selectionNote": "Edition 1.",
      "observationNote": "Soft grainy blue/black/cyan/orange interlocking fields. Pale triangular central glow; orange near top centre and lower left; black becomes deep channels between luminous shapes. No hard silhouette comparable to #0."
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "200000010",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000010",
      "sourceIds": [
        "S14"
      ],
      "selectionNote": "Edition 10.",
      "observationNote": "Turquoise upper field with dark red lobes at upper left and upper right; intense blue across lower and middle; elongated cream/green form sweeps down toward right. Red narrow wavy band underlined in pale colour crosses lower middle. Broad directional waves rather than scattered islands."
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "200000020",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000020",
      "sourceIds": [
        "S15"
      ],
      "selectionNote": "Edition 20.",
      "observationNote": "Coral upper and right field; blue dominates left/lower; scattered green and cream forms. Dark central narrow channels, luminous white islands at lower left and mid-right. Broken distributed forms interrupt blue rather than one continuous stripe."
    },
    {
      "id": "E05",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "200000097",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000097",
      "sourceIds": [
        "S05"
      ],
      "selectionNote": "Current verified collection example",
      "observationNote": "Large nearly black mass across upper centre; diffuse pale mint glow rising left of centre; layered blue lobes sweep through lower right; muted yellow/green in upper right and small orange edges. Grain and blur obscure boundaries, with black acting as an area rather than simply an outline."
    }
  ],
  "mediaIds": [],
  "provenance": {
    "operator": "xAI",
    "agent": "Grok",
    "model": "grok-4.6 + gpt-6-astra",
    "modelVersion": "grok-4.6",
    "tools": [
      "GraphQL POST",
      "curl",
      "PNG inspection"
    ],
    "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",
    "revisions": [
      {
        "model": "GPT-6 Astra",
        "scope": "Independent full-script reading, five original views, release-day interview research and full essay rewrite",
        "usage": null
      }
    ],
    "originalSubmission": {
      "model": "Grok 4.6",
      "verification": "Contributor-reported; no provider telemetry supplied",
      "archive": "grok-round-003-packages.zip",
      "archiveSha256": "f4c2a8c282613791053e9db277052982dc926fa3de0d3dae9361d5dbe5c71508"
    },
    "attributionNote": "Original draft by Grok (reported as Grok 4.6); independently researched and substantially revised by GPT-6 Astra.",
    "generation": {
      "schema": "ab5d-essay-generation/1",
      "model": "grok-4.6 + gpt-6-astra",
      "displayName": "Grok (reported as Grok 4.6), independently revised by GPT-6 Astra",
      "scope": "Saturazione original Grok draft and independent Astra research and substantial revision",
      "essayCount": 1,
      "usage": null,
      "perEssayUsage": null,
      "usageDetail": "Grok did not supply token telemetry. Complete essay token usage is unavailable. Original model/version is contributor-reported. GPT-6 Astra independently rechecked sources, script and the original outputs and revised the text; revision provenance is preserved in the essay data.",
      "contributors": {
        "operator": "xAI",
        "agent": "Grok",
        "model": "Grok 4.6",
        "modelVersion": "grok-4.6",
        "tools": [
          "GraphQL POST",
          "curl",
          "PNG inspection"
        ],
        "humanEditorialInvolvement": "none",
        "originalProseLicense": "CC0-1.0",
        "revisions": [
          {
            "model": "GPT-6 Astra",
            "scope": "Independent full-script reading, five original views, release-day interview research and full essay rewrite",
            "usage": null
          }
        ],
        "originalSubmission": {
          "model": "Grok 4.6",
          "verification": "Contributor-reported; no provider telemetry supplied",
          "archive": "grok-round-003-packages.zip",
          "archiveSha256": "f4c2a8c282613791053e9db277052982dc926fa3de0d3dae9361d5dbe5c71508"
        },
        "attributionNote": "Original draft by Grok (reported as Grok 4.6); independently researched and substantially revised by GPT-6 Astra."
      }
    }
  },
  "codeInspection": {
    "source": "projects_metadata.script",
    "endpoint": "https://artblocks-mainnet.hasura.app/v1/graphql",
    "query": "query($ids:[String!]){ projects_metadata(where:{contract_address:{_eq:\"0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270\"}, project_id:{_in:$ids}}){ id project_id name artist_name artist_address slug description website license invocations max_invocations script_type_and_version activated_at completed_at start_datetime vertical_name heritage_curation_status locked script } }",
    "variables": {
      "ids": [
        "200"
      ]
    },
    "retrievedAt": "2026-09-18",
    "byteLength": 4401,
    "sha256": "ed8fecd81c0a71272f75186cf88dd2b5d327b29eec7e642e2f4db583033a97ea",
    "runtime": "p5@1.0.0",
    "executed": true,
    "chainBlock": null,
    "coverage": [
      "setup uses four 32-bit words from token hash for xorshift-style PRNG; Gaussian generator caches paired samples. Six encoded palettes and a black/white branch.",
      "setup calls noLoop but draw IS defined. draw displays offscreen texture twice using BLEND then SOFT_LIGHT, removes graphics and nulls references. Draft claim of no draw routine is wrong.",
      "Offscreen WEBGL graphic defaults 4096 square, halves resolution if texture limit reached and on webglcontextlost. That event is recovery, not artistic interaction.",
      "Initial background and rotated rectangular colour region followed by 1000 Gaussian-positioned rectangles or ellipses, each drawn with SCREEN then MULTIPLY. HSB colours perturbed with Gaussian variation.",
      "Shader uses attributed Ashima simplex noise, noise-coordinate displacement and stochastic jitter, weighted paired texture sampling for blur, and final noise plus saturation treatment. Repeats a finite parameter-selected number of shader passes.",
      "No time-driven loop or audio API found; original must still be observed before claiming completed rendering.",
      "No keyboard or pointer artistic controls found; webglcontextlost is the only event listener."
    ],
    "executionNote": "Official originals 0,1,10,20,97 opened in browser; source not executed in a local custom sandbox."
  },
  "editorialExceptions": [],
  "completionStatus": "reviewed-for-publication",
  "presentation": {
    "editionSize": 111,
    "maximumEdition": 111,
    "mintDate": "2021-11-01T08:13:54+00:00",
    "mintDateMeaning": "First indexed mint",
    "artwork": {
      "project_id": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-200",
      "token_id": "200000097",
      "invocation": 97,
      "owner_address": "0xdd19308a9731cdecb67e0d80ca6823394208c045",
      "preview_asset_url": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000097.png",
      "live_view_url": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000097",
      "canonicalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000097",
      "mode": "image",
      "copyrightStatus": "CC BY-NC 4.0",
      "copyrightUrl": "https://creativecommons.org/licenses/by-nc/4.0/",
      "displayBasis": "Official remote preview of verified collection-held token, with linked original and CC BY-NC 4.0 artwork attribution."
    }
  },
  "observationImages": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "200000000",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000000",
      "sourceIds": [
        "S04"
      ],
      "selectionNote": "Edition 0 first mint.",
      "observationNote": "Sharp sinuous boundaries; large cobalt field occupies centre and right, pale mint upper left, black separating bands and orange/cyan along lower edge. Tonal facets within blue imply folds, while mint projects into dark field in thin curling fingers. Fine grain remains despite comparatively crisp borders.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000000.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000000"
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "200000001",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000001",
      "sourceIds": [
        "S13"
      ],
      "selectionNote": "Edition 1.",
      "observationNote": "Soft grainy blue/black/cyan/orange interlocking fields. Pale triangular central glow; orange near top centre and lower left; black becomes deep channels between luminous shapes. No hard silhouette comparable to #0.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000001.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000001"
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "200000010",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000010",
      "sourceIds": [
        "S14"
      ],
      "selectionNote": "Edition 10.",
      "observationNote": "Turquoise upper field with dark red lobes at upper left and upper right; intense blue across lower and middle; elongated cream/green form sweeps down toward right. Red narrow wavy band underlined in pale colour crosses lower middle. Broad directional waves rather than scattered islands.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000010.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000010"
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "200000020",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000020",
      "sourceIds": [
        "S15"
      ],
      "selectionNote": "Edition 20.",
      "observationNote": "Coral upper and right field; blue dominates left/lower; scattered green and cream forms. Dark central narrow channels, luminous white islands at lower left and mid-right. Broken distributed forms interrupt blue rather than one continuous stripe.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000020.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000020"
    },
    {
      "id": "E05",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "200000097",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000097",
      "sourceIds": [
        "S05"
      ],
      "selectionNote": "Current verified collection example",
      "observationNote": "Large nearly black mass across upper centre; diffuse pale mint glow rising left of centre; layered blue lobes sweep through lower right; muted yellow/green in upper right and small orange edges. Grain and blur obscure boundaries, with black acting as an area rather than simply an outline.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000097.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/200000097"
    }
  ],
  "publication": {
    "date": "2026-09-18",
    "url": "https://ab5d.xyz/series/saturazione-by-stefano-contiero/",
    "authorization": "Phil requested website publication on 2026-09-17.",
    "reviewSnapshot": "/docs/series-essays/production/saturazione-by-stefano-contiero/record.json",
    "unresolvedResearchQuestionsRetained": true
  }
}
