{
  "schema": "ab5d-series-essay/1",
  "identity": {
    "chainId": 1,
    "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
    "projectId": 189,
    "slug": "cryptonewyorker-by-qian-qian",
    "title": "CryptoNewYorker",
    "artistCredit": "Qian Qian",
    "artistDossierUrls": [
      "https://ab5d.xyz/artists/qian-qian/"
    ]
  },
  "revision": 2,
  "researchCutoff": "2026-09-18",
  "status": "published-with-research-limitations",
  "rights": {
    "artwork": {
      "reportedLabel": "NIFTY",
      "category": "unknown",
      "termsUrl": null,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S01"
      ],
      "note": "The index reports the bare string 'NIFTY' with a null link. It names no version, no jurisdiction, no issuing body and no document, so unlike the Creative Commons identifiers elsewhere in this batch it cannot be resolved to any text. This package records the value exactly and makes no statement about what it grants. Nothing in the project record establishes a permission to reproduce these images. The description's promise of CryptoCitizenship and event access is a membership benefit, not a copyright licence.",
      "conflicts": [
        "The value is not a licence identifier in any resolvable sense, and no document was attached to it here because doing so would be a guess."
      ]
    },
    "code": {
      "reportedLabel": null,
      "category": "unknown",
      "termsUrl": null,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "note": "No licence statement or copyright notice appears anywhere in the program. This matters more here than on most projects in this batch because the program is largely hand-placed rectangle data rather than mechanism, so reproducing the source would be reproducing the artwork in a different notation. No part of it is reproduced in this package.",
      "conflicts": []
    },
    "thirdParty": []
  },
  "mediaIds": [],
  "provenance": {
    "operator": "Phil (AB5D coordinator), via the Claude desktop application",
    "originalAuthor": {
      "provider": "Anthropic",
      "model": "claude-opus-5",
      "modelVersion": "claude-opus-5 as reported by the session environment; the batch routing label 'claude' is a routing label and not a model identifier and has not been recorded as one",
      "agent": "Claude in Cowork mode on the Claude Agent SDK"
    },
    "revisions": [],
    "revisionNote": "No other model or human has revised this package. A later reviser must preserve the original author credit above and record the reviser, changed scope and revision-specific usage separately here.",
    "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",
    "model": "claude-opus-5",
    "generation": {
      "schema": "ab5d-essay-generation/1",
      "model": "claude-opus-5",
      "displayName": "claude-opus-5 (contributor-reported)",
      "scope": "claude-round-003 submitted essay; publication import only",
      "essayCount": 1,
      "usage": null,
      "perEssayUsage": null,
      "usageDetail": "No token telemetry is exposed to the agent in this environment. All counts are null rather than estimated, and no batch figure has been divided into per-essay numbers.",
      "submittedUsage": {
        "provider": "Anthropic",
        "model": "claude-opus-5",
        "modelVersion": "claude-opus-5 as reported by the session environment. The batch routing label 'claude' is a routing label, not a model identifier, and has not been recorded as one.",
        "measurementScope": "batch",
        "measurement": "unavailable",
        "scope": "claude-round-003, ten assigned series in a single session",
        "startedAt": "2026-09-18T05:25:27+00:00",
        "startedAtNote": "Timezone-aware. Taken from the first instrumented call of this research session.",
        "cutoff": null,
        "cutoffNote": "Null because the session was still running when this package was written; no end instant is known, so none is manufactured. Any recorded cutoff must be at or after startedAt.",
        "inputTokens": null,
        "cachedInputTokens": null,
        "outputTokens": null,
        "reasoningTokens": null,
        "totalTokens": null,
        "perEssayAvailable": false,
        "telemetrySource": null,
        "note": "No token telemetry is exposed to the agent in this environment. All counts are null rather than estimated, and no batch figure has been divided into per-essay numbers.",
        "elapsedNote": "Research on this package spans the timestamps in evidence.json. The session lost its connection to the coordinator's computer several times and a platform classifier was briefly unavailable; retrieval timestamps on either side of those interruptions are recorded as they occurred."
      },
      "importReview": "Package and site compatibility checks only. No independent re-research or prose rewrite, as requested by user on 2026-09-20."
    }
  },
  "sections": [
    {
      "id": "work-context",
      "heading": "The work and its context",
      "bodyMarkdown": "CryptoNewYorker is Art Blocks project 189 on the contract at `0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270`, on Ethereum mainnet, credited to Qian Qian. The public index returns 1,000 invocations against a maximum of 1,000, an aspect ratio of 1, a licence string of `NIFTY` with a null licence link, a `display_static` value of false, and a `script_type_and_version` of `js@na`, meaning no library at all [^S02]. The collection page describes it as an Art Blocks 500 release in the Factory category, a fixed edition of 1,000 unique artworks, released on 16 October 2021, and carries a View live control [^S01].\n\nThat `js@na` is not a formality. This is the only work in this batch that loads nothing: at the live renderer the page contained no external scripts whatsoever, and the artwork is a single SVG element built in the document and appended to the body [^S06]. There is no canvas, no p5, no three.js, no animation loop and no interaction. The result is a static document tree, and it is the cleanest case in the batch of a project whose indexed `display_static` value of false is simply wrong.\n\nEach token is a pixel-art portrait of a person standing on a New York street, drawn entirely from axis-aligned rectangles at a 1800 by 1800 viewBox with `shape-rendering` set to `crispEdges` [^S06]. A typical token is a few hundred rectangles: the token examined first held 236 rects in 31 distinct fills [^S06]. The figure has a skin tone, headwear, facewear, bodywear, footwear and usually an accessory, and stands against a street scene with a skyline, a lamp post, a traffic light, a fire hydrant and a green street sign, seasonally dressed.\n\nThe framing is unlike anything else here, because the work was not sold on the internet in the usual sense. The mint description states that CryptoNewYorkers were \"available only to visitors of the Bright Moments physical NFT gallery\" and that holders \"are granted CryptoCitizenship\" [^S02][^S01]. This was an in-person mint: you went to a gallery in New York and minted a token there. The mint curve in this package shows that constraint written into the timestamps.\n\nTwo trait facts belong here because they shape how the edition should be read. The `City` trait carries the single value \"New York\" on all 1,000 tokens [^S03], which looks pointless until the collection page's own rail reveals the reason: this project has siblings called CryptoLondoner, CryptoBerliner and CryptoGalactican by the same artist [^S01]. The trait distinguishes across the series, not within it. And the `Background` trait splits exactly 250, 250, 250, 250 across four seasons [^S03], which is not what a random draw produces. It is deterministic on the token's invocation number, as the construction section demonstrates."
    },
    {
      "id": "conception",
      "heading": "Conception and development",
      "bodyMarkdown": "The website recorded against the project is not the artist's site but the gallery's, `https://www.brightmoments.io/` [^S02]. It resolves, and what it resolves to now is a retrospective. The page presents Bright Moments as a programme that ran from 2021 to 2024, beginning as \"a Venice Beach storefront in summer 2021\" and travelling \"from Venice Beach to New York, Berlin to London, Mexico City to Tokyo, Buenos Aires to Paris, and finally Venice, Italy\", claiming 150 artists, 10,000 CryptoCitizens and nearly 20,000 works minted [^S07]. It says that \"every mint was choreographed\" and that the aim was \"bringing humans together to witness art being born\" [^S07]. It contains no mention of CryptoNewYorker specifically.\n\nSo the link of record corroborates the context and documents a concluded programme rather than this work. That is a change of character since the mint, and a cataloguer following the link in 2021 and in 2026 would find two quite different things. The indexed `artist_interview` field is null [^S02], and no development account for this project was located.\n\nWhat the mint description does say is worth taking at face value: the collection is \"based on real characters from New York City\" [^S02]. The trait vocabulary bears that out in a way that generic avatar projects usually do not. The headwear list includes a Rabbi Cap, a Liberty Headband, dreads, afros in three colours, a checkerboard helmet and hair with headphones. The bodywear list includes hoodies for the Bronx, Brooklyn, Queens and Staten Island, a tuxedo, a little black dress, canvas and denim overalls, a Santa's Helper outfit and a Streaker. The accessories are three breeds of dog, two skateboards, an electric scooter and a one-wheel [^S03]. This is an observational inventory of a particular city rather than a generic set of hats and jackets, and the borough hoodies in particular only mean anything to someone who has been there.\n\nThe program is a data structure rather than an algorithm, and that is the honest description of its authorship. Almost all of its 42,482 bytes are hand-placed rectangles: coordinates, widths, heights and palette indices, assembled garment by garment [^S02]. The generative part is a few lines that pick one entry from each of six weighted lists. Where other projects in this batch spend their bytes on mechanism, this one spends them on drawing, and the drawing is what the artist made.\n\nThe four seasonal backgrounds are the only place where the two meet. Each season supplies its own street scene and also recolours the base figure's skin and hair ramps through a set of substitutions, so the same character reads differently in spring and in winter [^S02]. That recolouring is applied before the skin-tone selection is drawn, which is why the published `Skin Tone` trait and the colours actually on screen are related but not identical."
    },
    {
      "id": "construction",
      "heading": "How the work was constructed",
      "bodyMarkdown": "The script was retrieved as the `script` field of the `projects_metadata` row for `0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-189`, from the Art Blocks public GraphQL index, on 2026-09-18 at 07:47:46Z [^S02]. It is 42,482 bytes, by far the largest in this batch, stored as five fragments of which four are exactly 10,001 bytes and the fifth is 2,478, which is a storage chunking artefact rather than a structural division [^S02]. Its SHA-256 digest, computed in the browser over the exact concatenated bytes using the Web Crypto API, is `1f0c845b658f68404f45733688545d1e9768fca36137a07ab4c8ce673606f867` [^S06]. No artist code is reproduced here.\n\nThe seed line is the first thing worth stopping on. It reads, in effect, `parseInt(tokenData.hash.slice(0, 16))`, with no radix argument. Every other project in this batch that uses this idiom passes 16 explicitly. This one relies on inference, and the MDN reference for the function is blunt about that: if the radix is not provided \"the radix will be inferred based on string's value. Be careful, this does not always default to 10\" [^S08]. Because the sliced string retains its `0x` prefix, the inference lands on hexadecimal and the line works. Had the slice started one character later, the same line would have parsed the remaining digits as decimal and produced an entirely different and far smaller seed. The project's determinism rests on a prefix the author happened not to strip.\n\nThe slice takes fourteen hexadecimal digits, which is fifty-six bits, exceeding the fifty-three a double represents exactly, so the seed is already rounded before use; the generator's first shift then coerces it to a signed 32-bit integer. That is the same loss that appears on four other projects here.\n\nThe generator is the same three-shift xorshift seen on Amoeba, Blockbob Rorschach, Mental pathways and THE SOURCE CoDE, with the same absolute-value-and-modulo output step. Here it returns the integer remainder modulo 1,000 directly rather than dividing, and the selector walks a weighted list accumulating ten times each entry's percentage until it passes that integer [^S02]. Five projects, five artists, one generator: the case for a shared snippet circulating among Art Blocks contributors in 2021 is as strong as anything in this batch.\n\nSix weighted selections are made, in a fixed order, each consuming exactly one step of the generator. Their list lengths are 9, 3, 9, 34, 9 and 28. An independent reimplementation of that order was run against all 1,000 token hashes, and every one of the six lists maps onto a published trait with no conflict anywhere in the edition: each list index carries exactly one published value across all 1,000 tokens, and no published value appears under two indices [^S03]. The mapping is therefore a bijection and the six hash-driven traits are reproduced on 1,000 of 1,000.\n\nThree consequences follow from that reproduction, and none of them is visible from the metadata alone.\n\nThe first list has nine entries but its first entry is empty. A token that lands on it gets no accessory drawn and no `Accessory` key in its metadata at all. That happens on exactly 119 of the 1,000 tokens [^S03], which is why the eight published accessory values sum to 881 rather than 1,000. This is an optional trait, and an edition-wide census that assumes every token has every key will be wrong on almost twelve per cent of it.\n\nThe fourth list has 34 entries but the published `Bodywear` trait has only 31 distinct values. No index is unused: all 34 occur across the edition [^S03]. Three published names each cover two different program entries. Streaker covers indices 1 and 2, Puffy Jacket covers 5 and 6, and Red Stripe Tee covers 7 and 8 [^S03]. These are visually distinct garments sharing a label, and the examples section shows one such pair side by side.\n\nThe `Background` trait is not drawn from the hash at all. The program branches on the token's invocation number: invocations 0 to 249 get one street scene and one set of colour substitutions, 250 to 499 another, 500 to 749 a third, and 750 to 999 a fourth. Checking that against the published metadata for all 1,000 tokens gives a perfect partition: Spring on 0 to 249, Summer on 250 to 499, Fall on 500 to 749 and Winter on 750 to 999, 250 tokens each with no exceptions [^S03]. The even split that looks like a suspiciously tidy random outcome is not random at all. A buyer minting in person could, in principle, have known which season they were about to receive from the mint counter alone.\n\nThe drawing itself is direct. A style element is inserted that sizes the artwork by viewport orientation, an SVG element is created with a 1800 by 1800 viewBox and `crispEdges` rendering, the base figure is built, the seasonal substitutions are applied to its colour ramps, the seasonal background is appended, and then the six selected layers are appended in order: accessory, skin, footwear, bodywear, facewear, headwear. Each layer is a list of rectangles expressed as indices into shared coordinate and palette tables, which is how a work of this visual density fits in 42 kilobytes. One mechanism deserves a note: some entries are not rectangle lists but a palette-replacement instruction that re-emits an earlier entry with one colour globally substituted, which is how the three skin tones are produced from a single drawn body [^S02].\n\nNothing then happens. There is no draw loop, no timer and no event handler. Reading the SVG's markup twice, four seconds apart, returned identical content [^S06]. The work is complete when the document finishes parsing.\n\nOne display consequence follows from the style element. The SVG is square, but the rule sizes it to the full viewport width in portrait orientation and the full height in landscape, without centring it vertically. In a portrait pane the artwork sits at the top with empty space below it, which is how it appeared in every observation here [^S06]. That is a property of the renderer page rather than of the artwork, and anyone framing a still should crop to the square rather than capture the page."
    },
    {
      "id": "mint",
      "heading": "The mint",
      "bodyMarkdown": "The index records a public opening at 2021-10-16T02:00:00Z, activation at 2021-10-16T18:54:12Z, and completion at 2022-01-01T04:27:08Z [^S02]. The collection page states 16 October 2021 [^S01].\n\nThe relationship between the first two is the reverse of the usual puzzle in this batch and equally unhelpful: here `activated_at` falls almost seventeen hours after the recorded opening, and the first mint falls one minute after the opening and sixteen hours before activation [^S03][^S02]. Across this batch the field has now been observed preceding the opening, following the opening, and postdating the first mint on five projects. Whatever it records, it is not a reliable marker of anything a catalogue wants to state.\n\nThis project is also the only one in the batch with no pre-opening mints at all, and the artist address holds no tokens in the edition [^S03]. There is no artist proof. Given that every token had to be minted by a person standing in a gallery, that is consistent rather than surprising.\n\nThe price is recorded as 1000000000000000000 wei, a flat 1 ETH, the highest in this batch, and the description states no auction schedule [^S02].\n\nTaking the opening as the start endpoint and the final mint as the end endpoint, the public phase ran from 2021-10-16T02:00:00Z to 2022-01-01T04:27:08Z, a span of 77.10 days, and covered all 1,000 mints [^S03]. The shape of that curve is the most interesting mint pattern in the batch, because it is shaped by a building's opening hours rather than by a gas war.\n\nAnchored on the opening, exactly 1 token was minted in the first hour and still only 1 by the sixth hour [^S03]. The first mint landed at 2021-10-16T02:01:02Z, which is late evening on 15 October in New York, and then nothing happened for roughly twenty hours. The count reaches 59 by the end of the first day, 154 within a week, 673 within thirty days, and the last token is minted on New Year's Day 2022 [^S03]. That is not a sale; it is an attendance record. Nothing in the batch looks remotely like it, and the contrast with Blockbob Rorschach, which placed 1,024 tokens in under ten hours from the open internet, is the clearest illustration available of what the in-person constraint actually did.\n\nAcross the 1,000 tokens the index reports 745 distinct owner addresses [^S03], the widest distribution in the batch and again consistent with one token per visitor.\n\nThe Art Blocks 500 wallet set was refreshed once this session from the platform's own profile index, by querying the `ab5d` user profile for its linked accounts. The query returned three linked addresses and all three were checked against every one of the 1,000 token rows [^S05][^S03]. Exactly one token in this edition sits in that set: token 189000704, invocation 704, held by `0xdd19308a9731cdecb67e0d80ca6823394208c045` and minted at 2021-11-20T20:34:53Z [^S04][^S05]. Its invocation number places it in the third quarter of the edition, which by the rule described above means it is a Fall card, and it is."
    },
    {
      "id": "rights",
      "heading": "Copyright and licensing",
      "bodyMarkdown": "The index records a licence string of `NIFTY` for this project and a `link_to_license` of null [^S02]. This is the only non-Creative-Commons licence value in the batch and the least resolvable of any encountered here.\n\n`NIFTY` is not a licence. It is a label. It does not name a version, a jurisdiction, an issuing body or a document, and the record supplies no link to anything. Unlike `CC BY`, which at least identifies a family whose members can be listed and compared, this string identifies nothing that can be read. This package therefore records the value exactly as the index reports it and makes no statement whatsoever about what permissions it grants, because there is no document to read and no basis for inference. The one thing that can be said is negative and firm: nothing in the project record establishes any permission to reproduce these images, and a cataloguer should not assume one.\n\nThree rights domains should be kept apart, as elsewhere in this batch, and here all three are unresolved.\n\nThe first is the artwork. Unresolved, for the reasons above. The record states no terms of sale and no terms for holders. What it does state, in the description rather than in any rights field, is that holders \"are granted CryptoCitizenship\" and \"exclusive access to IRL events and experiences across the world\" [^S02]. Those are membership benefits, not a copyright licence, and they should not be read as one. They also attached to a programme that the gallery's own site now describes in the past tense, as having run from 2021 to 2024 [^S07], so what remains of them is a further open question.\n\nThe second is the artist's code. The program is retrievable from the index, which establishes visibility and nothing else. No licence statement or copyright notice appears anywhere in the program text. Accordingly no artist code is reproduced in this package. That matters more here than on most projects in this batch, because the program is not really a program: it is a drawing, stored as coordinates. Reproducing the source would be reproducing the artwork itself in a different notation.\n\nThe third would ordinarily be the dependency, and here there is none. The work declares `js@na` and the live renderer loaded no external scripts at all [^S02][^S06]. That is a genuinely unusual position for an Art Blocks project and it removes one of the three rights questions that attach to every other work in this batch. Whatever governs the images and the source, no third party's library is entangled in it.\n\nOne further observation belongs here. Because the published `Bodywear` trait collapses three pairs of distinct garments into single names, and because the `Accessory` key is simply absent on 119 tokens, the metadata is not a faithful index of the artwork even at the level of what is depicted. Any rights or provenance record built on trait strings alone will describe some of these tokens inaccurately, in ways that only reading the program or looking at the pictures reveals."
    },
    {
      "id": "examples",
      "heading": "Close reading of examples",
      "bodyMarkdown": "Four tokens were examined at the live renderer at `generator.artblocks.io`, each identified first by a `TokensByIds` query against the index so that hash, owner, mint time and published traits came from a response rather than from memory [^S04], and each opened at its canonical Art Blocks token page, all four of which returned HTTP 200 on a real fetch from the artblocks.io origin [^S06]. All four were observed with the browser pane displayed. Two were chosen specifically to place the collapsed `Bodywear` label side by side.\n\nToken 189000704 is the Art Blocks 500 holding and was the first sustained observation. Its hash begins `0x82d6ac89` and it was minted at 2021-11-20T20:34:53Z to `0xdd19308a9731cdecb67e0d80ca6823394208c045` [^S04]. Its published traits are Background Fall, Bodywear Santa's Helper, City New York, Facewear Purple Lips, Footwear Red Boots, Headwear Blue Bun, Skin Tone Medium, and no Accessory key at all [^S04].\n\nOn screen it is an autumn street: an ochre skyline, a brown pavement scattered with fallen leaves, a dark green lamp post, a traffic light, a fire hydrant and a green street sign. The figure has a blue bun, small purple lips, a green tunic with a black belt, yellow legs and red boots, and carries nothing, which is the absent accessory made visible. The published traits and the picture agree item for item.\n\nThe live reading established the structural facts for the whole project. The document contained a single SVG with a 1800 by 1800 viewBox and `crispEdges` rendering, holding 236 rectangles in 31 distinct fills, and the page loaded no external scripts whatsoever [^S06]. The invocation variable read 704, which by the rule described above is what makes this a Fall card rather than anything in the hash. No audio elements, no artwork key handler, and nothing that changes after load.\n\nToken 189000018 and token 189000031 are the pair. Both are published with Bodywear \"Streaker\" [^S04]; both were minted on the opening day, 189000018 at 2021-10-16T22:36:20Z to `0x8bac6ec6d29cd7bf1ef2d5148000a2b17c3048d7` and 189000031 at 2021-10-16T23:29:53Z to `0xab283f9a0b4781a6b85ee961540568a77ca2613d` [^S04]. The reimplementation places them on program entries 1 and 2 of the bodywear list respectively [^S03].\n\nToken 189000018 is a nude figure wearing a long red scarf, a backwards white cap and red shoes, standing on a green skateboard against a spring street of pale blue sky, green hedges in pink blossom and grey pavement. Token 189000031 is a nude figure wearing a long black scarf, a backwards white cap and green sneakers, with a Shiba beside it, on the same spring street. The scarf is the entire difference between the two program entries, and it is the reason the edition contains two different garments filed under one name. Seen apart, nobody would notice. Seen together, the collapse is obvious, and a collector filtering the edition for Streakers is being handed two designs as though they were one.\n\nThat the two tokens also share a headwear entry, the backwards white cap, is a coincidence of the draws rather than a consequence of anything, and it makes the comparison cleaner than it deserves to be.\n\nToken 189000006 is the fourth observation and the second sustained one, chosen as another no-accessory token in a different season and with a very different silhouette. Its hash begins `0x7836ba0a` and it was minted at 2021-10-16T22:17:40Z to `0xc1c78da6dbc0d7631b14c8b6a3d905fcb0c3457f` [^S04], in the first cluster of the opening day. Its published traits are Background Spring, Bodywear Purple Cross Bra, City New York, Facewear Red Lips, Footwear Green Sneakers, Headwear Backwards White Baseball Cap, Skin Tone Medium, and again no Accessory key [^S04].\n\nOn screen it is a figure in a purple cross-strap top and purple shorts, red lips, a backwards white cap and green sneakers, against the same spring street as the two Streakers. It held 271 rectangles, more than the Fall token, and its SVG markup was byte-identical when re-read four seconds later [^S06]. Its invocation is 6, which puts it in the first quarter and therefore in spring, as the rule predicts.\n\nThat the Art Blocks 500 holding and this token both lack an accessory is a coincidence worth stating rather than hiding: it means neither of the two most closely examined tokens in this package carries one of the edition's most visible features, and the accessory list was verified from the reproduction across all 1,000 tokens rather than from these observations."
    },
    {
      "id": "significance",
      "heading": "Significance and limitations",
      "bodyMarkdown": "The most useful thing about this project for a catalogue is that it is fully reproducible and still misdescribed by its own metadata. All eight published traits are accounted for: six reproduce from the hash as an exact bijection across 1,000 tokens, one is a deterministic function of the invocation number, and one is a constant. Nothing is left over. And yet the trait list gets three things wrong about what is actually depicted. Three pairs of distinct garments share a name, so the edition has 34 bodywear designs published as 31. The accessory key is absent on 119 tokens rather than carrying a \"none\" value, so a census that assumes uniform keys undercounts by almost twelve per cent. And the `Background` trait, which looks like the edition's tidiest random outcome at 250 each, is not random at all.\n\nThat last point is the one with consequences for how the work is understood. A collector minting in person at the gallery could have inferred their season from the mint counter on the wall. The seasons are not a lottery; they are four consecutive quarters of a queue. Anyone writing about the edition's rarity structure should exclude Background from it entirely.\n\nThe second contribution is comparative. This is the fifth project in this batch carrying the identical xorshift generator with the identical thousand-value quantisation and the identical sixteen-character seed slice, by a fifth artist, across releases spanning nineteen days. Here it appears in its most fragile form, with the radix argument omitted entirely, so that the work's determinism depends on the `0x` prefix surviving in the sliced string. Five independent arrivals at this construction is not credible. A survey of Art Blocks scripts from 2021 for this signature would be a small piece of work with a real answer at the end of it.\n\nThe third is that this project is the batch's clearest example of a generative work that is almost entirely drawing. Forty-two kilobytes of hand-placed rectangles, six weighted picks, and no library at all. There is no algorithm to admire and nothing emergent happens; what there is instead is an inventory of a city observed closely enough to include borough hoodies, a Rabbi cap, a Liberty headband and three breeds of dog. Set against the maze-solving and signed-distance-field work elsewhere in this batch, it is a reminder that the generative part of generative art is sometimes the least of it.\n\nThe limitations of this package should be stated as plainly as the findings. The four visual observations cover four tokens out of 1,000, chosen to demonstrate the collapsed bodywear label and the absent accessory rather than sampled at random, so nothing here supports a claim about the typical token; two of the four happen to lack an accessory, which is stated rather than smoothed over. The bijection between program indices and published trait names is established empirically across all 1,000 tokens and not by reading the feature-extraction script, which was not retrieved. The claim that three names each cover two program entries rests on that bijection plus the visual comparison of one pair; the other two pairs were not rendered side by side. No on-chain transaction values were read, so nothing here measures what buyers paid. No contact was made with the artist or the gallery. The collection page's detail accordions were not expanded.\n\nSeveral questions remain open, and this package records them as open rather than filling them.\n\nWhat does `NIFTY` mean? It names no version, no jurisdiction and no document, and the record links to nothing. Until someone identifies the intended text, no reproduction of these images rests on anything. This is the single most consequential gap in the project record and, unlike the licence questions on other projects here, it cannot be narrowed by reading a deed.\n\nWere the seasonal quarters announced? If minting visitors knew that the first 250 tokens would be spring cards, that changes the meaning of the queue. If they did not, a quarter of the edition was assigned a major visual attribute by arrival time without anyone being told. Contemporary gallery material would settle it.\n\nWhy do three bodywear names cover six designs? The obvious reading is that variants were drawn and never renamed, but the feature-extraction script would show whether the collapse was deliberate.\n\nWhy is `Accessory` absent rather than \"None\"? Every other optional-looking trait in this batch carries an explicit value. An absent key is a different thing from a null value for anyone querying the index.\n\nWhat became of CryptoCitizenship? The description promised holders access to events worldwide; the gallery's own site now presents the whole programme in the past tense, as having concluded in 2024. What, if anything, the benefit now amounts to is not addressed anywhere in the project record.\n\nFinally, is the shared generator a template? Five projects, five artists, one construction with the same two defects and, here, a third. Someone should find where it came from."
    }
  ],
  "facts": [
    {
      "id": "edition-size",
      "topic": "work-context",
      "value": 1000,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S01"
      ],
      "status": "verified",
      "note": "Indexed invocations 1000 against max_invocations 1000; the collection page states a fixed edition of 1,000."
    },
    {
      "id": "project-id",
      "topic": "work-context",
      "value": 189,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": "On-chain project ID, corroborated by the returned composite key 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-189."
    },
    {
      "id": "library",
      "topic": "construction",
      "value": "none",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S06"
      ],
      "status": "verified",
      "note": "Declared js@na, and the live renderer page loaded no external scripts at all. The only project in this batch with no dependency."
    },
    {
      "id": "medium",
      "topic": "construction",
      "value": "inline SVG of axis-aligned rectangles",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S06"
      ],
      "status": "verified",
      "note": "viewBox 0 0 1800 1800 with shape-rendering crispEdges. The observed tokens held 236 and 271 rect elements."
    },
    {
      "id": "script-bytes",
      "topic": "construction",
      "value": 42482,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": "Five stored fragments of 10,001, 2,478, 10,001, 10,001 and 10,001 bytes, a chunking artefact rather than a structural division. The largest program in this batch, almost all of it rectangle data."
    },
    {
      "id": "script-sha256",
      "topic": "construction",
      "value": "1f0c845b658f68404f45733688545d1e9768fca36137a07ab4c8ce673606f867",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S06"
      ],
      "status": "verified",
      "note": "SHA-256 over the UTF-8 bytes of the returned script field, computed with the Web Crypto API."
    },
    {
      "id": "render-model",
      "topic": "construction",
      "value": "static document, complete at parse",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S06"
      ],
      "status": "verified",
      "note": "No draw loop, timer or handler. The SVG markup was byte-identical when re-read four seconds later."
    },
    {
      "id": "display-static-wrong",
      "topic": "work-context",
      "value": false,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S06"
      ],
      "status": "verified",
      "note": "The index reports display_static false for a static SVG document."
    },
    {
      "id": "seed-no-radix",
      "topic": "construction",
      "value": "parseInt without a radix argument",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S08"
      ],
      "status": "verified",
      "note": "The sliced hash retains its 0x prefix, so hexadecimal is inferred. Had the slice started one character later the same line would have parsed as decimal. Every other project in this batch using this idiom passes the radix explicitly."
    },
    {
      "id": "prng-resolution",
      "topic": "construction",
      "value": 1000,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": "Fifth project in the batch with the identical generator construction, after Amoeba, Blockbob Rorschach, Mental pathways and THE SOURCE CoDE."
    },
    {
      "id": "traits-reproduced",
      "topic": "construction",
      "value": "6 hash traits at 1000 of 1000 as a bijection",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S03"
      ],
      "status": "verified",
      "note": "Accessory, Skin Tone, Footwear, Bodywear, Facewear and Headwear. Every list index carries one published value and no value appears under two indices."
    },
    {
      "id": "background-by-invocation",
      "topic": "construction",
      "value": "250 per season by invocation quarter",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S03"
      ],
      "status": "verified",
      "note": "Invocations 0 to 249 Spring, 250 to 499 Summer, 500 to 749 Fall, 750 to 999 Winter, with no exceptions across 1,000 tokens. Not drawn from the hash."
    },
    {
      "id": "city-constant",
      "topic": "work-context",
      "value": "New York on all 1000",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S03",
        "S01"
      ],
      "status": "verified",
      "note": "A cross-series trait: the collection page names sibling projects CryptoLondoner, CryptoBerliner and CryptoGalactican."
    },
    {
      "id": "accessory-absent",
      "topic": "construction",
      "value": 119,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S03"
      ],
      "status": "verified",
      "note": "The first entry of the accessory list is empty, so those tokens have no accessory drawn and no Accessory key. The eight published values sum to 881."
    },
    {
      "id": "bodywear-collapse",
      "topic": "construction",
      "value": "34 designs under 31 names",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S03",
        "S06"
      ],
      "status": "verified",
      "note": "Streaker covers program entries 1 and 2, Puffy Jacket 5 and 6, Red Stripe Tee 7 and 8. The Streaker pair was rendered side by side and differs in scarf colour."
    },
    {
      "id": "first-mint",
      "topic": "mint",
      "value": "2021-10-16T02:01:02+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S03"
      ],
      "status": "verified",
      "note": "One minute after the recorded opening and about sixteen hours before the recorded activation. No token was minted before the opening."
    },
    {
      "id": "activation",
      "topic": "mint",
      "value": "2021-10-16T18:54:12+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": "Falls almost seventeen hours after the recorded opening, the reverse of the pattern on five other projects in this batch."
    },
    {
      "id": "public-opening",
      "topic": "mint",
      "value": "2021-10-16T02:00:00+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S01"
      ],
      "status": "verified",
      "note": "Index start_datetime. The collection page displays 16 October 2021."
    },
    {
      "id": "completion",
      "topic": "mint",
      "value": "2022-01-01T04:27:08+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S03"
      ],
      "status": "verified",
      "note": "Same instant as the final mint."
    },
    {
      "id": "sale-duration-days",
      "topic": "mint",
      "value": 77.1,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S03"
      ],
      "status": "verified",
      "note": "Endpoints are the public opening 2021-10-16T02:00:00Z and the final mint 2022-01-01T04:27:08Z; the difference in milliseconds divided by 86400000."
    },
    {
      "id": "mint-curve",
      "topic": "mint",
      "value": "1 in the first hour, 59 in the first day",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S03"
      ],
      "status": "verified",
      "note": "Anchored on the opening: 1 at one hour, still 1 at six hours, 59 at 24 hours, 154 at seven days, 673 at thirty days. An attendance record rather than a sale curve, consistent with an in-person gallery mint."
    },
    {
      "id": "no-artist-proof",
      "topic": "mint",
      "value": 0,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S03"
      ],
      "status": "verified",
      "note": "No pre-opening mints and no tokens held by the artist address. The only project in this batch with neither."
    },
    {
      "id": "distinct-owners",
      "topic": "mint",
      "value": 745,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S03"
      ],
      "status": "verified",
      "note": "Across all 1,000 tokens at the time of retrieval, the widest distribution in this batch."
    },
    {
      "id": "index-price",
      "topic": "mint",
      "value": "1 ETH",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": "A flat price with no auction schedule in the description, and the highest in this batch."
    },
    {
      "id": "licence",
      "topic": "rights",
      "value": "NIFTY",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "reported",
      "note": "A bare label with a null link, naming no version, jurisdiction, issuing body or document. Unresolvable from the project record."
    },
    {
      "id": "artist-interview",
      "topic": "conception",
      "value": null,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S07"
      ],
      "status": "verified",
      "note": "The indexed artist_interview field is null and the website of record is the gallery's site, which now presents a retrospective with no mention of this project."
    },
    {
      "id": "held-token",
      "topic": "work-context",
      "value": "189000704",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S03",
        "S04",
        "S05"
      ],
      "status": "verified",
      "note": "The only token in this edition held by an address in the refreshed AB5D linked-wallet set. Its invocation places it in the Fall quarter."
    },
    {
      "id": "audio",
      "topic": "construction",
      "value": "silent by construction",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S06"
      ],
      "status": "verified",
      "note": "No audio call in the program and no audio or video elements in the renderer page."
    }
  ],
  "examples": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "189000704",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/189000704",
      "sourceIds": [
        "S03",
        "S04",
        "S06"
      ],
      "selectionNote": "The Art Blocks 500 holding, and the token on which the structural facts of the project were established: a static SVG document with no external scripts.",
      "observationNote": "An autumn street with an ochre skyline, leaf-strewn pavement, lamp post, traffic light, fire hydrant and green street sign; a figure with a blue bun, purple lips, a green tunic, yellow legs and red boots, carrying nothing. 236 rects in 31 fills. Its invocation of 704 is what makes it a Fall card, not its hash."
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "189000018",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/189000018",
      "sourceIds": [
        "S03",
        "S04",
        "S06"
      ],
      "selectionNote": "The first half of a deliberate pair chosen to test whether two tokens sharing a published Bodywear value are visually identical in that garment.",
      "observationNote": "A nude figure in a long red scarf, backwards white cap and red shoes on a green skateboard, against a spring street. Published Bodywear 'Streaker'; the reimplementation places it on program entry 1."
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "189000031",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/189000031",
      "sourceIds": [
        "S03",
        "S04",
        "S06"
      ],
      "selectionNote": "The second half of that pair, on program entry 2 of the same published name.",
      "observationNote": "A nude figure in a long black scarf, backwards white cap and green sneakers, with a Shiba beside it, on the same spring street. The scarf colour is the whole difference between the two entries, and both are published as 'Streaker'."
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "189000006",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/189000006",
      "sourceIds": [
        "S03",
        "S04",
        "S06"
      ],
      "selectionNote": "A second no-accessory token in a different season and with a very different silhouette, used to test directly that the document does not change after load.",
      "observationNote": "A figure in a purple cross-strap top and shorts, red lips, backwards white cap and green sneakers, against a spring street. 271 rects, and byte-identical markup when re-read four seconds later. Its invocation of 6 places it in the spring quarter."
    }
  ],
  "codeInspection": {
    "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
    "locator": "HTTP POST, named operation ProjectBySlug, variables {\"slug\":\"cryptonewyorker-by-qian-qian\"}, selecting script and scripts{index script}; identity corroborated by the returned composite id 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-189",
    "sha256": "1f0c845b658f68404f45733688545d1e9768fca36137a07ab4c8ce673606f867",
    "bytes": 42482,
    "retrievedAt": "2026-09-18T07:47:46.147Z",
    "runtime": "js@na, no library",
    "method": "Index retrieval over HTTPS, not a direct read of contract storage; no block reference pinned. SHA-256 over the UTF-8 bytes of the returned script field. The whole program was read; coverage of seed handling, parameter selection, rendering sequence, time and interaction behaviour and external dependencies is itemised in evidence.json.",
    "executed": true,
    "executionDisclosure": "Read in full from the retrieved text without local execution. Separately executed by the official Art Blocks renderer during the token observations, where the resulting SVG document was inspected; not run by the researcher in any other environment.",
    "chainBlock": null
  },
  "editorialExceptions": [
    {
      "id": "licence-value-unresolvable",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "The licence value is the bare string 'NIFTY' with a null link. It names no version, no jurisdiction, no issuing body and no document. Nothing in the project record establishes any permission to reproduce these images. This is the most serious rights gap in the batch and it cannot be narrowed by reading a deed."
    },
    {
      "id": "background-is-not-generative",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "The Background trait is a deterministic function of the invocation number, splitting the edition into four consecutive quarters of 250. It is not a random outcome and should be excluded from any rarity analysis. Whether minting visitors knew this is an open question."
    },
    {
      "id": "bodywear-names-collapse-designs",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "The program has 34 bodywear designs published under 31 names; Streaker, Puffy Jacket and Red Stripe Tee each cover two visually distinct garments. Rarity tables built from trait strings merge them."
    },
    {
      "id": "accessory-key-absent-not-none",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "119 of the 1,000 tokens carry no Accessory key at all rather than a 'None' value. Any census assuming uniform keys is wrong on almost twelve per cent of the edition."
    },
    {
      "id": "display-static-flag-wrong",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "The index reports display_static false for a static SVG document with no draw loop, no timer and no handlers, confirmed by re-reading the markup unchanged. Do not present this work with a play control or imply motion."
    },
    {
      "id": "city-trait-is-cross-series",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "The City trait carries one value on all 1,000 tokens. The collection page's own rail shows sibling projects CryptoLondoner, CryptoBerliner and CryptoGalactican, so the trait distinguishes across the series rather than within this edition. Present it as series metadata, not as an attribute of these tokens."
    },
    {
      "id": "website-of-record-has-changed-character",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "The website of record is the gallery's site, not the artist's, and it now presents a retrospective of a programme described as running 2021 to 2024 with no mention of this project. A citation should record what was seen and when."
    },
    {
      "id": "cryptocitizenship-benefits-unclear",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "The description promises holders CryptoCitizenship and access to events worldwide. Those are membership benefits, not a copyright licence, and the gallery's own site now describes the programme in the past tense. Do not present them as rights and do not present them as current without checking."
    },
    {
      "id": "activated-at-unreliable",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "Here activated_at falls almost seventeen hours after the recorded opening and sixteen hours after the first mint, the reverse of the pattern on five other projects in this batch. The field is not a reliable marker of anything a catalogue wants to state."
    },
    {
      "id": "shared-generator-idiom",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "The generator, its 1,000-value modulo and the sixteen-character seed slice match the Amoeba, Blockbob Rorschach, Mental pathways and THE SOURCE CoDE projects in this batch, by four other artists. Here the radix argument is omitted as well, so the work's determinism depends on the 0x prefix surviving in the slice. This package records the match without claiming to have found its source."
    },
    {
      "id": "square-artwork-not-centred-by-the-renderer",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "The artwork is square but the renderer page's own style rule fits it to viewport width in portrait orientation without centring it, so a naive page capture includes empty space below. Crop to the square."
    }
  ],
  "presentation": {
    "editionSize": 1000,
    "maximumEdition": 1000,
    "mintDate": "2021-10-16T02:00:00+00:00",
    "mintDateMeaning": "public opening",
    "mintDateLabel": "Mint date",
    "artwork": {
      "project_id": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-189",
      "token_id": "189000704",
      "invocation": 704,
      "owner_address": "0xdd19308a9731cdecb67e0d80ca6823394208c045",
      "preview_asset_url": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/189000704.png",
      "live_view_url": "/series/cryptonewyorker-by-qian-qian/artwork.html",
      "canonicalLiveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/189000704",
      "canonicalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/189000704",
      "mode": "live",
      "aspectRatio": 1,
      "interactionNote": "",
      "copyrightStatus": "NIFTY",
      "copyrightUrl": null,
      "displayBasis": "The artwork is a static SVG document, complete when the page finishes parsing. A still is fully faithful. If a vector reproduction is possible, prefer it: the work is pixel art defined as rectangles and scales without loss."
    }
  },
  "observationImages": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "189000704",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/189000704",
      "sourceIds": [
        "S03",
        "S04",
        "S06"
      ],
      "selectionNote": "The Art Blocks 500 holding, and the token on which the structural facts of the project were established: a static SVG document with no external scripts.",
      "observationNote": "An autumn street with an ochre skyline, leaf-strewn pavement, lamp post, traffic light, fire hydrant and green street sign; a figure with a blue bun, purple lips, a green tunic, yellow legs and red boots, carrying nothing. 236 rects in 31 fills. Its invocation of 704 is what makes it a Fall card, not its hash.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/189000704.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/189000704"
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "189000018",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/189000018",
      "sourceIds": [
        "S03",
        "S04",
        "S06"
      ],
      "selectionNote": "The first half of a deliberate pair chosen to test whether two tokens sharing a published Bodywear value are visually identical in that garment.",
      "observationNote": "A nude figure in a long red scarf, backwards white cap and red shoes on a green skateboard, against a spring street. Published Bodywear 'Streaker'; the reimplementation places it on program entry 1.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/189000018.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/189000018"
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "189000031",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/189000031",
      "sourceIds": [
        "S03",
        "S04",
        "S06"
      ],
      "selectionNote": "The second half of that pair, on program entry 2 of the same published name.",
      "observationNote": "A nude figure in a long black scarf, backwards white cap and green sneakers, with a Shiba beside it, on the same spring street. The scarf colour is the whole difference between the two entries, and both are published as 'Streaker'.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/189000031.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/189000031"
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "189000006",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/189000006",
      "sourceIds": [
        "S03",
        "S04",
        "S06"
      ],
      "selectionNote": "A second no-accessory token in a different season and with a very different silhouette, used to test directly that the document does not change after load.",
      "observationNote": "A figure in a purple cross-strap top and shorts, red lips, backwards white cap and green sneakers, against a spring street. 271 rects, and byte-identical markup when re-read four seconds later. Its invocation of 6 places it in the spring quarter.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/189000006.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/189000006"
    }
  ],
  "publication": {
    "date": "2026-09-20",
    "url": "https://ab5d.xyz/series/cryptonewyorker-by-qian-qian/",
    "authorization": "Phil requested website publication on 2026-09-17.",
    "reviewSnapshot": "/docs/series-essays/production/cryptonewyorker-by-qian-qian/record.json",
    "unresolvedResearchQuestionsRetained": true
  }
}
