AB5D

CryptoNewYorker

Qian Qian · Project 189 · Factory

Edition size: 1,000 · Mint date: 16 October 2021

CryptoNewYorker #704 by Qian Qian. Copyright: NIFTY. From the AB5D collection.

Open artwork

The work and its context

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 1. 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 2.

That 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 3. 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.

Each 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 3. A typical token is a few hundred rectangles: the token examined first held 236 rects in 31 distinct fills 3. 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.

The 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" 12. 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.

Two 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 4, 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 2. The trait distinguishes across the series, not within it. And the Background trait splits exactly 250, 250, 250, 250 across four seasons 4, which is not what a random draw produces. It is deterministic on the token's invocation number, as the construction section demonstrates.

Conception and development

The website recorded against the project is not the artist's site but the gallery's, https://www.brightmoments.io/ 1. 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 5. It says that "every mint was choreographed" and that the aim was "bringing humans together to witness art being born" 5. It contains no mention of CryptoNewYorker specifically.

So 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 1, and no development account for this project was located.

What the mint description does say is worth taking at face value: the collection is "based on real characters from New York City" 1. 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 4. 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.

The 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 1. 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.

The 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 1. 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.

How the work was constructed

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 1. 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 1. Its SHA-256 digest, computed in the browser over the exact concatenated bytes using the Web Crypto API, is 1f0c845b658f68404f45733688545d1e9768fca36137a07ab4c8ce673606f867 3. No artist code is reproduced here.

The 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" 6. 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.

The 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.

The 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 1. 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.

Six 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 4. The mapping is therefore a bijection and the six hash-driven traits are reproduced on 1,000 of 1,000.

Three consequences follow from that reproduction, and none of them is visible from the metadata alone.

The 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 4, 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.

The 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 4. 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 4. These are visually distinct garments sharing a label, and the examples section shows one such pair side by side.

The 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 4. 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.

The 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 1.

Nothing 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 3. The work is complete when the document finishes parsing.

One 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 3. 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.

The mint

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 1. The collection page states 16 October 2021 2.

The 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 41. 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.

This 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 4. 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.

The price is recorded as 1000000000000000000 wei, a flat 1 ETH, the highest in this batch, and the description states no auction schedule 1.

Taking 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 4. 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.

Anchored on the opening, exactly 1 token was minted in the first hour and still only 1 by the sixth hour 4. 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 4. 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.

Across the 1,000 tokens the index reports 745 distinct owner addresses 4, the widest distribution in the batch and again consistent with one token per visitor.

The 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 74. 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 87. 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.

The index records a licence string of NIFTY for this project and a link_to_license of null 1. This is the only non-Creative-Commons licence value in the batch and the least resolvable of any encountered here.

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.

Three rights domains should be kept apart, as elsewhere in this batch, and here all three are unresolved.

The 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" 1. 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 5, so what remains of them is a further open question.

The 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.

The 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 13. 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.

One 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.

Close reading of examples

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 8, 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 3. All four were observed with the browser pane displayed. Two were chosen specifically to place the collapsed Bodywear label side by side.

CryptoNewYorker #704 by Qian Qian
CryptoNewYorker #704 by Qian Qian. Open artwork

Token 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 8. 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 8.

On 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.

The 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 3. 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.

CryptoNewYorker #18 by Qian Qian
CryptoNewYorker #18 by Qian Qian. Open artwork
CryptoNewYorker #31 by Qian Qian
CryptoNewYorker #31 by Qian Qian. Open artwork

Token 189000018 and token 189000031 are the pair. Both are published with Bodywear "Streaker" 8; 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 8. The reimplementation places them on program entries 1 and 2 of the bodywear list respectively 4.

Token 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.

That 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.

CryptoNewYorker #6 by Qian Qian
CryptoNewYorker #6 by Qian Qian. Open artwork

Token 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 8, 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 8.

On 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 3. Its invocation is 6, which puts it in the first quarter and therefore in spring, as the rule predicts.

That 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.

Significance and limitations

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.

That 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.

The 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.

The 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.

The 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.

Several questions remain open, and this package records them as open rather than filling them.

What 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.

Were 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.

Why 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.

Why 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.

What 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.

Finally, 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.

Written by claude-opus-5 (contributor-reported) for AB5D. Original prose: CC0. Artwork and code rights are addressed separately above.

Token usage unavailable for the complete essay.

Token usage

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.

Generation record

Artist dossier · Source record · Essay data

Research record

The indexed project script was inspected. Runtime observations and limits are documented in the research record. Historical price, allocation and licensing questions remain as identified in the essay. Publication does not resolve those evidence gaps.

Retrieval evidence · Research notes · Manuscript