Skip to main content

Artist Curated

Curated projects allow artists to pick their favourite outputs/artworks of their works and list them for sale. When browsing the project page before the sale starts, collectors will be able to preview all the outputs.

There are two main options for Artist Curated project:

1. Collector receives random artwork​

Collector can browse all available artworks. After purchase collector receives a random artwork from the Artist Curated project set. The example UI is displayed below

Example of curated random project

2. Collector buys specific artwork from curated set​

Collectors can browse all available artworks. In this case once the sale opens collector can choose to buy any available artwork from the curated set on first come first served basis. The example UI is displayed below

Example of curated random project

Additional details​

  • It is possible to have traits/features and specify name for each artwork. Traits will be visible on Verse/OpenSea. Example attachment of traits including "Color" and "Energy".
  • It is possible to have more sales than unique artworks if allowing repetition.
  • It is possible for Artist Curated project to be image/video or code.
  • If the project consists of code (HTML/JavaScript), or each artwork has a video or another live version, put those files in an artifacts/ folder in the ZIP and point animation_url at them. Verse uploads the folder to IPFS for you. See Live content with artifacts/.

Metadata CSV columns​

When providing a metadata CSV for an Artist Curated project, the file must be named meta.csv. The following special columns are recognised by Verse:

ColumnRequiredDescription
filenameYesThe actual name of the file in the directory that the current row applies to.
$custom_titleNoTitle of the NFT. Overrides the default Artwork title #.. naming.
$custom_descriptionNoDescription of the NFT. Overrides the default Verse-generated description.
$custom_token_idNoThe token id to use on-chain for this NFT. Each value must be unique across the CSV.
animation_urlNoDynamic content for the token, typically a link to an HTML page or video. Either a full URL (https://…, ipfs://…) or a path into the ZIP's artifacts/ folder, such as /artifacts/index.html?hash=1 (see below).
$custom_metadataNoDangerous! A JSON string of custom metadata that will fully replace the Verse-generated metadata for this token. Use with care.

Any other columns in the CSV will be treated as traits/features and surfaced as attributes on Verse and OpenSea.

Live content with artifacts/​

When an artwork has a live version, such as an HTML/JavaScript piece, an interactive page or a video, bundle those files in an artifacts/ folder in the same ZIP as your images and meta.csv. In animation_url, refer to them with a path that starts with /artifacts/. You can reuse one page for many artworks by giving each row different query parameters, or point each row at its own file.

Download the example ZIP. It has eight artworks: four share one HTML page with different hash values, one uses a second interactive page, and three point to video loops.

interference.zip
├── meta.csv
├── interference-01.png
├── …
├── interference-08.png
└── artifacts/
├── index.html
├── conductor.html
├── interference.js
├── interference-06.mp4
├── interference-07.mp4
└── interference-08.mp4

An excerpt of its meta.csv, with some columns and rows left out:

filename,$custom_title,animation_url,Palette
interference-01.png,Interference I,/artifacts/index.html?hash=7,Tide
interference-02.png,Interference II,/artifacts/index.html?hash=1,Violet
interference-05.png,Interference V — Conductor,/artifacts/conductor.html?hash=4,Signal
interference-06.png,Interference VI — Loop,/artifacts/interference-06.mp4,Violet

Each row still needs its own image file (the filename column). That image is the artwork's preview, and the animation_url content is its live version.

What happens on upload​

  1. Verse checks that every /artifacts/... path in animation_url points to a file in the artifacts/ folder. If one does not, the upload fails and lists the affected rows, and nothing is created.
  2. Verse uploads the whole artifacts/ folder to IPFS as a single folder.
  3. Verse replaces the /artifacts prefix with the folder's IPFS address and keeps the rest as written. For example, /artifacts/index.html?hash=7 becomes ipfs://<CID>/index.html?hash=7. This is the animation_url stored on the artwork and in the token's metadata.

Values that do not start with /artifacts (for example https://… or ipfs://… links to content you host yourself) are kept unchanged.

Rules​

  • Location. artifacts/ must sit at the top level of the ZIP, next to meta.csv. If you zip a folder, it can sit inside that one top-level folder. The name must be exactly artifacts, in lowercase.
  • Any files and folders. HTML, JavaScript, CSS, media, data files and nested folders are all allowed. Files in artifacts/ do not need their own rows in meta.csv.
  • Paths. Paths are case-sensitive. A folder path such as /artifacts/sketch/?hash=1 opens sketch/index.html. Query strings and # fragments are passed through as written. Write a space in a file name as %20.
  • Links inside your pages. Use relative links (interference.js, ./js/app.js) and not links that start with / (/js/app.js). Your files are served from an IPFS folder, not from the root of a website.
  • Hidden and system files. Hidden files and folders, such as .data/, are uploaded too. Operating-system files (.DS_Store, __MACOSX/, ._*) are ignored.
  • Limits. artifacts/ can hold up to 2,000 files and 512 MB uncompressed. The whole ZIP can be up to 10 GB, with no single file over 5 GB.
warning

Everything in artifacts/ is published on public IPFS and cannot be withdrawn afterwards. Do not include private files such as source files you don't want to share, API keys or .git folders.

Reading parameters in your page​

Your page receives the query string from animation_url unchanged, so it can read values such as hash itself:

const hash = new URLSearchParams(window.location.search).get("hash");

Examples of curated projects on Verse​

Compatible sales mechanics​

Details required​

  • Number of artworks
  • (Optional) Number of artworks for sale (if selling with repetitions)
  • (Optional) metadata CSV
  • (Optional) probabilities (if selling with repetitions)