AllYouNeedIsNFT: Image Uniqueness Checks and a Generative NFT Editor
← Back to blog

AllYouNeedIsNFT: Image Uniqueness Checks and a Generative NFT Editor

Published on
•
4 mins read
•
--- views

In 2021 and 2022 I co-founded AllYouNeedIsNFT, an NFT marketplace. One problem kept coming up in conversations with artists: images from one collection kept reappearing in others under new names. A buyer had no quick way to tell a copy from an original.

So alongside the marketplace we built two tools. The first checks whether an NFT image already exists in other collections. The second is an editor that lets an artist generate a whole collection from assets they drew themselves. This post covers both.

Checking an image against the market

A third-party developer wrote the uniqueness service against a specification we agreed on, and I supervised the delivery and integrated it into the main site. The video below is an early build, still being debugged.

The service starts from the collections that already exist. It pulls a collection, downloads every image in it and indexes them. The database was collected from OpenSea and other sites.

Indexing is where the work happens. An image analysis algorithm processes each picture and links it to the images already in the index. For every pair it produces a similarity score. The index therefore holds the images and the relationships between them, so a lookup does not have to scan raw pixels.

When a new collection arrives, the service takes a sample of the already indexed collections and compares every image from the new one against them. Each image gets a uniqueness index, a single number that says how close it is to something already on the market.

The same path works for a single picture. A visitor uploads an image, the service runs it against the index and returns the closest match. The screenshot shows the result for one image from one of the analyzed collections: the service found it was not unique and pointed to comfy-apes-club #100 on blur.io as the original.

The uniqueness service verdict Your NFT is not unique, showing the uploaded image next to its match comfy-apes-club #100

Generating a collection from one artist's assets

The second tool is the NFT editor. Generative collections at the time were usually assembled from layers drawn by different people, so the result rarely looked like anyone's work in particular. The editor was built so that one artist could define the whole thing.

The artist starts with a canvas, 800x600 in the screenshots, and splits it into arbitrary areas. Areas can be nested inside other areas. For each area the artist uploads their own set of images, and a separate set for backgrounds.

An early build of the NFT editor with the browser console open: two areas on the canvas, background and per-area image uploads on the right

Each area carries probability distribution coefficients. During generation the editor picks an image for every area at random, weighted by those coefficients, from the set the artist prepared. Since every input came from the same person, every element of the final asset is drawn and chosen by one artist.

The NFT editor with three areas placed on an 800x600 canvas, upload panels for backgrounds and Area 1, a preview toggle and a Save button

The result is a collage in the style the artist defined when setting up the workspace. The preview toggle shows a sample before anything is saved, and the Published checkbox controls when the collection becomes visible on the marketplace. The wallet in the header is connected to Fantom, which the marketplace supported at the time.

The finished NFT editor layout: a three-area canvas with background, area count, preview and save controls on the left

The editor also worked on a phone. The same controls stack vertically, and the canvas keeps its proportions.

The NFT editor on a phone: Set backgrounds button, a three-area selector, the canvas with numbered areas, preview toggle and Save

Where to find the rest

The uniqueness service went live at unique.allyouneedisnft.com and I integrated it into the marketplace. The project page has the presentation video I recorded for our English-speaking audience and the full specification the service was built against.

If you are building a marketplace today, the lesson still holds. Index the market you compete with before you accept uploads, and give the buyer a similarity score instead of a promise.

Projects

Posts

Open for contract collaboration

I am available for contract-based collaboration. If you have an interesting project idea, schedule a call via Calendly.

Schedule a 30-min call