Skip to content

Instantly share code, notes, and snippets.

@jim-toth
Created December 8, 2022 22:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jim-toth/2906aa90acb12b19c9449b1629529753 to your computer and use it in GitHub Desktop.
Save jim-toth/2906aa90acb12b19c9449b1629529753 to your computer and use it in GitHub Desktop.
Arweaver's Art By City Protocol Summary & ANS-110 Discussion

Arweaver's Art By City Protocol Summary & ANS-110 Discussion

History

Art By City started primarily as an artist-focused DApp (https://artby.city) during the Open Web Foundry in Q4 2021. As our focus is on utilizing a decentralized web to empower creators through discoverability and curation, we quickly realized the need to categorize different types of creative asset publications, their intended rendering containers, metadata, licensing, and associated meta-actions such as liking, tipping, or sharing. We began outlining a specification to be implemented as tags on Arweave transactions so that our own dapp could discover these assets, know how to render them properly, display the associated creator metadata (e.g. title, description, license), and begin building a curation graph we could crawl later through likes and tips. This work was designed while the DApp was being developed by necessity and through code.

We continued to refine the spec, through code and many conversations - we've spoken to dozens upon dozens of Arweave projects, founders, VCs, artists, and developers about the Art By City Protocol spec. We realized we needed to write it all down so in April 2022 we authored the majority of the Art By City Protocol Whitepaper. This whitepaper outlines more than the Art By City Protocol specification, such as a supporting Profit-Sharing Network and DAO, but are beyond the scope of this post and discussion.

We recently became aware of ANS-110 and are very interested in merging / contributing based on the work we've done so far for the Art By Cith Protocol spec.

Overview

The below section is a brief summary of the specification outlined in the Protocol section of the Art By City Whitepaper (please feel free to reach out for commentor access): https://docs.google.com/document/d/1-sp6J4z8nGP7DnBjW_ucU5IO9bZWt1kTz_YrCtNHVhU/edit?usp=sharing

Spec

Briefly put, publications coming from the Art By City DApp are ANS-104 bundles purposely built to atomically represent a logical creative work. Included in the bundle are original assets, preview assets such as thumbnails or streamable audio, metadata, and manifest information. It is not necessary that creative assets participating the Art By City Protocol spec are published in this format.

Core Tags

These tags outline the intention to participate in the spec and a category the transaction is meant to represent.

Tag Optional? Value ANS-110 Equivalent (tag:value)
Protocol False ArtByCity Implements: ANS-110
Category False One of (Artwork or Publication), Avatar, (Profile or Bio), Like, Tip, Curation, Boost depending on the type of transaction. N/A

Category Tags

Additional tags depend on the specified Category.

Category: Artwork or Publication

Artwork was the original category used. We have since begun to transition to the use of Publication to be more generic but either are equivalent. More Sub-Categories would be added should the need arise: e.g. code, theme, component

Tag Optional? Value ANS-110 Equivalent (tag:value)
Sub-Category False One of: image, audio, video, model, text Type: image, video, etc.
City True Somewhat deprecated, 3 letter city code of the creator's choice for discoverability. N/A
Medium True Free-form creator's choice for discoverability N/A
Slug True Human-friendly URL slug, specified by the creator, serving as a unique identifier for the publication. N/A

Category: Like or Tip

Like and Tip are distinct in that likes can happen once and are intended to be for some kind of associated publication where the creator receives any attached tip amount. Tips are meant to be direct to the user and can happen more than once.

Tag Optional? Value ANS-110 Equivalent (tag:value)
Liked-Entity False (for Like) Transaction ID of liked publication (Category: Artwork or Publication) N/A
Sub-Category True Platform-specific, e.g. DeSo Diamond N/A

Category: Curation

Curation plays a critical role in discoverability. This Category is meant to be used for a list of creative works previously published with this spec. We've developed a series of SmartWeave Curation Contracts for this purpose but they have not yet been tested for a production release.

Tag Optional? Value ANS-110 Equivalent (tag:value)
Sub-Category True e.g. Playlist, Album, Mixtape, Collection, Series N/A

Manifests & Containers

In order to aid cross-chain, cross-platform rendering of creative assets being published to Arweave, developers could specify a reference identifier to a JSON metadata/manifest file format that represents a publication.

Tag Optional? Value ANS-110 Equivalent (tag:value)
Manifest-Format True Platform, chain, ecosystem specific ArtByCity, SolanaMetaplex, EIP-721 N/A

Retroactive Participation

Sometimes creators publish things and wish to retroactively participate in the spec.

Tag Optional? Value ANS-110 Equivalent (tag:value)
Original True Transaction ID of original publication, owned by this transaction's owner N/A

Versioning

Often, creators wish to republish their work with an updated or corrected version. Similarly, as outlined above, Slug can be used as an overall unique identifier of a logical creative work.

Tag Optional? Value ANS-110 Equivalent (tag:value)
Edition True Creator's choice of versioning system, e.g. semantic (1.0.0) N/A
Edition-Of True Transaction ID of original publication, owned by this transaction's owner N/A

Royalties

Sometimes, creators wish to publish royalty intentions with their work.

Tag Optional? Value ANS-110 Equivalent (tag:value)
Royalties True Transaction ID of a Royalty Intentions document, similar in function to ANS-105 N/A

Supplemental Spec

The Art By City Protocol is intended to be used in combination with existing ANS specs such as ANS-105 for licensing, or ANS-108 for cross-blockchain creator ownership discoverability.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment