INTRODUCTION
ArtContracts is a project facilitating storage of art directly on the Tezos blockchain.
A prototype was built (OBJKT#112092) which displays on-chain static image data within an “HTML NFT” frame on HicEtNunc.
Any arbitrary data can be stored on-chain, specifically in hexadecimal form (as a bytestring). The type of art stored is limited only by the ability for that data to be translated back and forth between its original form and the hexadecimal form.
In the future, it’s likely that this project will support not only static images but also animations, videos, text, audio, and even generative & interactive artworks.
Beyond simply supporting a variety of media types, the primary goal of this project is to explore the applications of on-chain art technology, and to build utilities that other developers and artists can implement into their own projects. This includes compression tools to lower the storage costs for deployment.
Some exciting possible utilities include collaborative art (multiple people editing on-chain data) and art that evolves over time without human intervention (changes in on-chain data facilitated purely by smart contract interactions). There are also many applications in the world of “collectibles”, due to the permanence lent by blockchain storage.
DETAILS
This decentralized application seeks to create tools, standards, and interfaces enabling users to:
0. (Optionally) compress artwork in order to save on storage costs
- Encode artwork in a format which can be readily stored on-chain
- Deploy that data to the Tezos blockchain, stored within one or more smart contracts
- View these artworks with “interpreter” software, which queries the relevant on-chain data and decodes it into the original artwork form
- (Optionally) monetize their on-chain data through token creation, whether on an established NFT platform like HicEtNunc or through custom minter and marketplace contracts.
Much of this post (and surrounding documentation) uses words like “art” and “artwork”. Notably, this same approach could also be used for storage of data unrelated to artwork. One survey respondent suggested the option of a “blockchain notarization tool”. I am certainly interested in exploring these non-artistic applications as well.
So far, I am writing all contracts in SmartPy. The interpreter code (which can be seen as the NFT prototype on HicEtNunc) is written in JavaScript and can be embedded into HEN’s “HTML NFT” template.
Currently, the steps of compressing data and encoding it in hexadecimal form are done with Python. The speed of execution for these steps could be greatly improved using a compiled language like C++.
The first prototype on-chain artwork was originally deployed on 3 June 2021, but has since received an update. This update modified the pixel data of parts of the image in order to add text asking the viewer to vote in my platform survey.
This “upgradable” aspect of on-chain storage has many interesting implications in the world of interactive art, and is one of the project attributes which I am most excited about in the long-term.
SURVEY AND DOCUMENTATION
I have released a survey allowing the public to express interest in the project and vote about which features they find to be most important.
You can take that survey here.
The results of this survey will be used to prioritize user preferences when determining which project features should be developed first.
The “survey governance” model is as follows:
- Users who do not own any copies of OBJKT#112092 will have a weight of 1 applied to their response (each vote counts as 1)
- Users who own one copy of OBJKT#112092 will have a weight of 5 applied to their response (each vote counts as 5)
- Users who own multiple copies of OBJKT#112092 will have a weight of 5 multiplied by the square root of the number of copies owned. This mechanism is called Quadratic Weighting. It provides some marginal benefit to project supporters who purchase multiple copies of the prototype NFT, but simultaneously ensures that no single individual holds too much power in the vote.
NOTE: The use of OBJKT#112092 to weight votes is not planned as an indefinite feature, and will likely only apply to the first survey. Future surveys will use an actual governance token, distributed to community members who participate and demonstrate interest in the project. The first copies of this governance token will be distributed to users who fill out the above survey.
All users who provide a valid survey response will receive the same number of governance tokens, whether they hold OBJKT#112092 or not. Ownership of the prototype NFT will determine weight of votes when assessing public opinion in this first survey, but such ownership will not lead to any outsized share of future voting power.
Along with this survey, I have written some introductory documentation, which can be viewed as a PDF here. Among other things this includes an FAQ, diagrams, an outline of potential future features of the project, and discussion of topics like governance, royalties, and open-sourcing.
If you would like to stay up-to-date about this project, the best way to do so is to follow the @ArtContracts account on Twitter.
You can also find me on twitter at @MathMakesArt. This pinned Tweet links to a variety of information about the project, both on and off Twitter.
DISCLAIMER:
This project is still very much in its infancy. This is my first attempt at creating a DApp. I began this project primarily for learning purposes, and I still have a significant amount of learning to do.
At this stage, there are many directions that development could go. It will likely be a long time before any full public release with user-friendly interface.
My main goal in creating this post is to solicit feedback from the community, both through survey responses and external replies.
Any feedback, including criticism, is highly appreciated.
I am happy to answer any questions you may have in the replies as well. Thank you for taking the time to read about my project!