{
  "schema": "ab5d-series-essay/1",
  "identity": {
    "chainId": 1,
    "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
    "projectId": 203,
    "slug": "scoundrels-by-kristy-glas",
    "title": "Scoundrels",
    "artistCredit": "Kristy Glas",
    "artistDossierUrls": [
      "https://ab5d.xyz/artists/kristy-glas/"
    ]
  },
  "revision": 2,
  "researchCutoff": "2026-09-18",
  "status": "published-with-research-limitations",
  "facts": [
    {
      "id": "minted-count",
      "topic": "mint",
      "value": 2048,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01",
        "S02"
      ],
      "status": "verified",
      "note": "Equals maximum."
    },
    {
      "id": "first-token-minted-at",
      "topic": "mint",
      "value": "2021-11-05T02:40:50+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S03"
      ],
      "status": "verified",
      "note": ""
    },
    {
      "id": "activated-at",
      "topic": "mint",
      "value": "2021-11-13T19:46:33+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": ""
    },
    {
      "id": "start-datetime",
      "topic": "mint",
      "value": "2021-11-16T20:00:00+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": "Indexed public start clock."
    },
    {
      "id": "completed-at",
      "topic": "mint",
      "value": "2021-11-16T22:11:03+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-SA",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": "Exact license string after strip."
    },
    {
      "id": "category",
      "topic": "context",
      "value": "factory",
      "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-SA",
      "category": "creative-commons",
      "termsUrl": null,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "note": "Unversioned CC BY-NC-SA; no project-linked terms URL. Do not infer 4.0.",
      "unresolvedConflicts": [
        "version numeral absent"
      ]
    },
    "code": {
      "reportedLabel": null,
      "category": "unknown",
      "termsUrl": null,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S03"
      ],
      "note": "No header. Embedded webp is part of script.",
      "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": [
          "S12"
        ],
        "note": "p5.js 1.0.0 upstream licence; separate from artist artwork and code.",
        "unresolvedConflicts": []
      }
    ]
  },
  "sections": [
    {
      "id": "work-context",
      "heading": "The work and its context",
      "bodyMarkdown": "Scoundrels presents a cast of small figures whose clothes seem to carry stories. A feathered hat, a concealed mouth or a long beaked mask can redirect the reading of the whole character. The five originals examined here share a compact stance and sharply stepped outlines, yet their silhouettes range from practical dark clothing to an extravagant red-and-blue jester. Personality emerges from the arrangement of a few legible signs.[^S04][^S05][^S13][^S14][^S15]\n\nKristy Glas released the 2,048-work series through Art Blocks Factory in November 2021. The platform introduces its characters as thieves and misfits, giving the costumes a mischievous narrative frame. Their apparent readiness for adventure is a visual interpretation of that premise, rather than evidence that each token comes with a fixed individual biography. The [Kristy Glas dossier](https://ab5d.xyz/artists/kristy-glas/) places the series beside her other work.[^S01]\n\nThe pictures borrow the economy of a game sprite: a limited grid must communicate posture, clothing, face and direction at once. Enlarging the pixels does not remove that economy. It makes the decisions easier to see. A single bright square can become an eye highlight, while a few diagonal steps can turn an ordinary outline into a feather or a hooked boot. The work rewards looking at both the imagined person and the small construction that makes that person readable.[^S04][^S05]"
    },
    {
      "id": "conception",
      "heading": "Conception and development",
      "bodyMarkdown": "The artist's archive places Scoundrels within an existing interest in characters and invented worlds. An earlier entry introduces CatBlocks as a generative character project developed over several months. Other entries present narrative scenes in an Adventure Series. These records establish neighbouring interests in serial characters and storytelling; they do not prove that Scoundrels reused CatBlocks code or arose from one particular Adventure Series painting.[^S07]\n\nThe specific project announcement offers the cast and its release information, but little account of the drawing process. A detailed development interview or dated sequence of sprite studies has not been recovered for this essay. The deployed program nevertheless provides unusually concrete evidence of the design method: it contains an image sheet of pre-existing parts, palette tables and rules for combining those parts. The pictures are assembled from authored material rather than drawn as unrestricted new anatomical forms on each mint.[^S03]\n\nThat distinction clarifies the artist's role. The shape of a hat, the shading of a face and the outline of a boot already exist in the source material. Generative decisions determine which pieces meet, how they are recoloured and which combinations are permitted. The authored system therefore includes both small-scale pixel drawing and a larger grammar of costume. Its freedom is bounded by decisions about what can plausibly coexist on the same figure.[^S03]\n\nThe narrative effect is less bounded. A mask can suggest concealment, theatre or menace, depending on the surrounding clothes and facial signs. The code can select and reconcile those elements without fixing the viewer's story about them. This gap between a constrained assembly and an open interpretation is central to the series' appeal.[^S04][^S13][^S14][^S15]"
    },
    {
      "id": "construction",
      "heading": "How the work was constructed",
      "bodyMarkdown": "The indexed project declares p5.js 1.0.0. Its source includes a WebP sprite sheet encoded directly as text, followed by colour maps, part settings and drawing functions. Keeping the source pixels within the program avoids a separate image-file address for those parts. Reproduction still depends on a compatible browser and p5 environment decoding and drawing that material correctly.[^S02][^S03]\n\nThe program divides the token hash into thirty-two hexadecimal pairs and converts them into byte values. It uses those values directly to choose attributes. Some selections use remainders; others use weighted tables, subtracting successive weights until a choice is reached. This is distinct from repeatedly drawing numbers from a seeded random stream. The hash supplies a finite set of inputs to a structured decision process.[^S03]\n\nThe part settings describe rectangular regions of the source sheet and destinations within a fifty-by-fifty image. Body, legs, garment, head, hair, hat, beard, mask and eyewear have their own dimensions and positions. Back pieces, a collar and a tail can also enter the assembly. The figure's basic spatial organisation is therefore explicit: pieces are placed in a shared coordinate system whose proportions were established before any particular hash selected them.[^S03]\n\nSelection is followed by compatibility rules. Certain masks suppress eyewear; some combinations change the hair colour; specific hats alter the allowed garment. Special branches coordinate several colour choices rather than leaving each independent. These conditions matter aesthetically because an unconstrained stack of plausible parts could still make an illegible figure. The rules govern how the chosen pieces cooperate.[^S03]\n\nDrawing order is also conditional. Each part has a sorting value, and the program adjusts those values for particular hats, masks, beards and collars. It can move an accessory in front of another or remove it from the visible stack. This is a two-dimensional compositing procedure, not a three-dimensional character model. The impression of clothing wrapped around a body comes from prepared pixels and controlled overlap.[^S03]\n\nColour is applied after the parts have been copied into a sprite. The program examines each pixel's red, green and blue values, derives a grayscale key and replaces matching keys using the assembled palette. Separate maps govern skin, hair, clothes and accessories. Because the source shading is encoded through these keys, changing a palette can preserve a sequence of dark and light relationships while changing its colour identity.[^S03]\n\nThe work is animated. Four sprites are prepared with vertical offsets of zero, one, zero and minus one. The legs are exempted from that shift, so the upper assembly moves relative to a fixed lower anchor. A time accumulator advances using the interval between frames and selects one of the four sprites. The motion is a small repeated displacement rather than a walk through a landscape. The code implies a cycle near one and one-third seconds under ordinary frame timing, but resets and frame boundaries make that an approximate description, not a measured playback period.[^S03]\n\nThe display scales this fifty-unit construction to the smaller window dimension and disables image smoothing. Hard pixel boundaries remain visible instead of becoming blurred by interpolation. The drawing loop either clears the canvas or fills it white. A mouse-click handler toggles those two background states. On a page whose own background is white, the change can be visually inconspicuous even though the canvas state differs. No audio routine or window-resize handler was found in the inspected program.[^S03]\n\nThe original generators were opened for five editions. Still captures support the readings below; two captures of edition 0 landed on indistinguishable poses, so those images alone do not demonstrate the cycle. The animation account here is grounded in the full drawing routine. Retaining only a PNG would lose that routine and the background control, even though it would preserve a useful view of the character."
    },
    {
      "id": "mint",
      "heading": "The mint",
      "bodyMarkdown": "The current Art Blocks index records 2,048 invocations and a maximum of 2,048. Its first mint is dated 5 November 2021, and its second is dated 13 November. The latter follows the recorded activation that day. These early tokens precede the platform's 16 November release date and should not automatically be classified as public purchases. Their allocation roles have not been independently established.[^S01][^S02][^S03]\n\nThe scheduled-start field reads 20:00 on 16 November, while completion reads 22:11:03. The difference is two hours, eleven minutes and three seconds. However, sampled editions 10 and 20 are both recorded at 22:01:48, and edition 1965 at 22:10:14. The late clustering of these samples makes the scheduled-start interval a poor substitute for the duration of actual public minting. It does not explain whether the schedule changed, a pause occurred or another event intervened.[^S02][^S03]\n\nGlas's archive reports a ten-minute sellout and a mint price of 0.15 ETH. The current indexed price setting is also 0.15 ETH. The artist's account is valuable evidence of the sale as she described it, while the configuration and token timestamps are separately named records. Together they support an announced price and a rapid sale account; they do not establish the amount paid in every transaction. The archive entry includes later sale and giveaway conclusions under an earlier displayed date, so it should not be treated as an unchanged pre-release announcement.[^S07][^S02]\n\nA fuller reconstruction would identify the first public purchase and any administrative or reserved allocations, then compare transaction values with the recorded settings. This essay preserves the artist's account alongside the index without forcing the two into an invented exact opening time."
    },
    {
      "id": "rights",
      "heading": "Copyright and licensing",
      "bodyMarkdown": "The artwork's current licence label is CC BY-NC-SA. It has no version number, and the project record supplies no terms URL. The exact label is retained here. A link to the 4.0 deed would imply a version that the available project evidence does not establish, so none is substituted. Recovering the intended version and a project-linked statement of terms remains necessary for a more precise rights record.[^S02]\n\nNo separate licence grant for the complete artist program was found in the inspected script. The embedded sprite sheet is part of that source material, but its presence in readable code does not itself supply an independent reuse permission. The source has been examined for this essay and is not republished as an asset pack.[^S03]\n\nThe rendering dependency is a separate matter. The p5.js 1.0.0 repository includes the GNU Lesser General Public License version 2.1. That library licence should not be relabelled as the licence for Glas's characters or the entire project script. AB5D's CC0 dedication applies to the original essay prose, with the artwork and software records kept distinct.[^S12]"
    },
    {
      "id": "examples",
      "heading": "Close reading of examples",
      "bodyMarkdown": "The comparison uses editions 0, 1, 10 and 20, plus collection example 1965. Their full token identifiers are 203000000, 203000001, 203000010, 203000020 and 203001965 on Ethereum contract 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270. All five original generator pages were inspected. The small sample supports comparison of particular characters, not a statistical claim about the whole edition.[^S03]\n\nIn #0, a broad brown hat projects to the right while long gray hair descends on the left. These unequal extensions give the upper silhouette a directional emphasis before the face is examined. A purple covering hides the mouth, concentrating attention on the narrow strip of eyes above it. The covering is also the strongest isolated colour in an otherwise muted arrangement of brown, gray and dark blue. Concealment becomes both a narrative cue and a compositional device.[^S04]\n\nBelow the face, the dark costume is interrupted by pale gray bands and small brown fastenings. The boots are large and almost black, anchoring the figure. Their emphatic shape makes the upper accessories seem comparatively light, despite the hat's width. The stance reads as alert, but the eye shapes can also suggest weariness. That combination gives the character more ambiguity than a simple list of costume traits would convey: readiness and fatigue occupy the same small body.[^S04]\n\nEdition #1965 has a green feathered hat, light brown hair and a pointed beard. A blue lens-like detail on one side of the face is sharply separated from the smaller pale-blue mark on the other. The hat and beard frame an exposed, slightly comic-looking expression. Unlike the concealed mouth in #0, the visible face offers several points of attention. A viewer can move from the blue detail to the mouth and down the beard before returning to the tall feather.[^S05]\n\nThe violet-black coat is comparatively compact. Gray cuffs and closures interrupt its dark areas, while the hat's feather extends well beyond the body's ordinary boundary. The design balances a restrained lower silhouette against a conspicuous upper flourish. Seen beside #0, it shows that character is not only a matter of changing colour: the amount of face revealed, the direction of the hat and the placement of small highlights change the figure's address to the viewer.[^S05]\n\nEdition #1 places a black eye mask across a blond-haired face. Tiny red pixels remain visible within the eye openings. Pale arms stand out against dark violet clothing, brown straps and black gloves. The mask is a compact horizontal block, and its contrast makes the eyes more emphatic than their size would suggest. Small colour choices here carry much of the character's unease.[^S13]\n\nIn #10, a large gray beaked mask projects to the right. Its dark openings and stepped beak dominate the head, while a green cloak broadens the left side of the body. Those opposed projections make a strongly asymmetric outline. Brown straps keep the torso readable inside the darker clothing. The mask changes the face into an object with its own profile, reducing access to expression and increasing the importance of posture and costume.[^S14]\n\nEdition #20 expands upward into a red-and-blue jester hat with yellow tips. The same colours recur in the patterned clothing, while a pale ruff and hanging white strips break up the saturated field. An open mouth remains visible below the black eye mask. Compared with the quieter examples, this figure distributes attention across many small contrasts. Its irregular outline and repeated colour pattern make it seem theatrical before any trait name is consulted.[^S15]"
    },
    {
      "id": "significance",
      "heading": "Significance and limitations",
      "bodyMarkdown": "Scoundrels demonstrates how a generative system can operate through the careful coordination of already drawn parts. Its distinction lies in the compatibility and layering decisions that allow costume fragments to become readable figures. The pixels are small, but their responsibilities are substantial: they must indicate volume, expression, fabric, accessory and silhouette within a shared grid.[^S03]\n\nThe five examples show an authored vocabulary capable of different narrative effects. A covered mouth with tired eyes, an exposed comic expression, a beaked face and a jester's elaborate costume invite different stories. The program determines the visual conditions for those readings without supplying a complete plot. Its modest animation belongs to the same economy, adding a repeated bodily displacement rather than an elaborate scene.[^S03][^S04][^S05][^S14][^S15]\n\nThe series consequently belongs in the archive as more than a collection of trait combinations. It shows how drawing and procedural rules can share authorship of a character: the artist fixes the parts and their relationships, while the token selects a particular encounter among them. Assessing that achievement requires attention to the figure as a whole, not only to the rarity of its accessories.\n\nUnresolved research questions:\n\n- Recover development sketches or a project-specific account of the sprite drawing process.\n- Establish the exact version of the artwork licence and any separate artist-code grant.\n- Reconstruct the public opening and allocation history from transaction evidence.\n- Measure playback and test the background control across supported viewing environments."
    }
  ],
  "examples": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "203000000",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203000000",
      "sourceIds": [
        "S04"
      ],
      "selectionNote": "Edition 0.",
      "observationNote": "Gray-haired figure with broad brown feathered hat, purple lower-face covering, dark blue-gray clothes and large black boots. Hat extends asymmetrically right; gray hair descends left. Purple covering becomes central colour focus."
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "203000001",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203000001",
      "sourceIds": [
        "S13"
      ],
      "selectionNote": "Edition 1.",
      "observationNote": "Blond-haired figure, black eye mask with small red eye pixels, pale bare arms, dark violet clothing and brown straps, black gloves and boots. Face remains expressive through white and red pixels against mask."
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "203000010",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203000010",
      "sourceIds": [
        "S14"
      ],
      "selectionNote": "Edition 10.",
      "observationNote": "Brown-haired figure with large gray long-beaked mask and black eye openings, green cloak, brown strapped torso and boots. Beak extends right, cloak creates broad dark left silhouette."
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "203000020",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203000020",
      "sourceIds": [
        "S15"
      ],
      "selectionNote": "Edition 20.",
      "observationNote": "Red-blue jester hat with yellow tips, black eye mask, open mouth and gray-white ruff. Red-blue patterned clothing with white hanging strips; taller irregular silhouette and stronger chromatic contrast than other inspected examples."
    },
    {
      "id": "E05",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "203001965",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203001965",
      "sourceIds": [
        "S05"
      ],
      "selectionNote": "AB5D collection candidate inspected in official generator; fresh ownership query retained.",
      "observationNote": "Green feathered hat, light brown hair and pointed beard, blue eye/eyewear area, violet-black coat with gray closures, gray cuffs and dark boots. Feather tilts right; face framed by hat and beard. Compact clothing contrasts with tall feathered top."
    }
  ],
  "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 code, source and original-output review; full prose rewrite correcting false static/no-interaction claim and mint chronology."
      }
    ],
    "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": "Scoundrels 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 code, source and original-output review; full prose rewrite correcting false static/no-interaction claim and mint chronology."
          }
        ],
        "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": [
        "203"
      ]
    },
    "retrievedAt": "2026-09-18",
    "byteLength": 25352,
    "sha256": "6979d19ae4d5f0315a4982c4c7a3807c5b31eac1079efeab790d7bd118690f76",
    "runtime": "p5@1.0.0",
    "executed": true,
    "chainBlock": null,
    "coverage": "Full executable source and palette/settings tables reviewed; embedded image decoded separately. Five official original generators opened. Animation and mouseClicked handler identified, correcting original draft."
  },
  "editorialExceptions": [],
  "completionStatus": "reviewed-for-publication",
  "presentation": {
    "editionSize": 2048,
    "maximumEdition": 2048,
    "mintDate": "2021-11-05T02:40:50+00:00",
    "mintDateMeaning": "First indexed mint",
    "artwork": {
      "project_id": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-203",
      "token_id": "203001965",
      "invocation": 1965,
      "owner_address": "0xdd19308a9731cdecb67e0d80ca6823394208c045",
      "preview_asset_url": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203001965.png",
      "live_view_url": "/series/scoundrels-by-kristy-glas/artwork.html",
      "canonicalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203001965",
      "mode": "live",
      "copyrightStatus": "CC BY-NC-SA",
      "copyrightUrl": null,
      "displayBasis": "Official remote original renderer; ownership verified against complete current AB5D wallet set. No artist code redistributed.",
      "canonicalLiveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203001965",
      "interactionNote": "Animated character. Click to toggle white or transparent background."
    }
  },
  "observationImages": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "203000000",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203000000",
      "sourceIds": [
        "S04"
      ],
      "selectionNote": "Edition 0.",
      "observationNote": "Gray-haired figure with broad brown feathered hat, purple lower-face covering, dark blue-gray clothes and large black boots. Hat extends asymmetrically right; gray hair descends left. Purple covering becomes central colour focus.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203000000.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203000000"
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "203000001",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203000001",
      "sourceIds": [
        "S13"
      ],
      "selectionNote": "Edition 1.",
      "observationNote": "Blond-haired figure, black eye mask with small red eye pixels, pale bare arms, dark violet clothing and brown straps, black gloves and boots. Face remains expressive through white and red pixels against mask.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203000001.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203000001"
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "203000010",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203000010",
      "sourceIds": [
        "S14"
      ],
      "selectionNote": "Edition 10.",
      "observationNote": "Brown-haired figure with large gray long-beaked mask and black eye openings, green cloak, brown strapped torso and boots. Beak extends right, cloak creates broad dark left silhouette.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203000010.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203000010"
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "203000020",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203000020",
      "sourceIds": [
        "S15"
      ],
      "selectionNote": "Edition 20.",
      "observationNote": "Red-blue jester hat with yellow tips, black eye mask, open mouth and gray-white ruff. Red-blue patterned clothing with white hanging strips; taller irregular silhouette and stronger chromatic contrast than other inspected examples.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203000020.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203000020"
    },
    {
      "id": "E05",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "203001965",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203001965",
      "sourceIds": [
        "S05"
      ],
      "selectionNote": "AB5D collection candidate inspected in official generator; fresh ownership query retained.",
      "observationNote": "Green feathered hat, light brown hair and pointed beard, blue eye/eyewear area, violet-black coat with gray closures, gray cuffs and dark boots. Feather tilts right; face framed by hat and beard. Compact clothing contrasts with tall feathered top.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203001965.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/203001965"
    }
  ],
  "publication": {
    "date": "2026-09-18",
    "url": "https://ab5d.xyz/series/scoundrels-by-kristy-glas/",
    "authorization": "Phil requested website publication on 2026-09-17.",
    "reviewSnapshot": "/docs/series-essays/production/scoundrels-by-kristy-glas/record.json",
    "unresolvedResearchQuestionsRetained": true
  }
}
