Demo : https://coop.art

Video : https://github.com/coop-art/coopart-near (Link in README)

About Coopart

Coopart [ koh-op-ahrt ] is the first-ever cooperative layer-based NFT art marketplace.

  1. Create a canvas and add the first layer.
  2. Other artists add new layers.
  3. People can vote layers in or out. Each canvas is its own DAO and self-governs.
  4. Canvas is sold and profits distributed to all its contributors.

Inspiration

I first got the idea to create Coopart from looking at the $69 million Beeple's NFT. The piece of art is made from 5,000 tiles merged together into a common canvas. I thought it would be great if each layer was made by a different author, and so Coopart was born. Many artists can contribute tiles or layers to a common canvas that is then sold as a single piece, and profits are shared between all of them.

Getting started

The platform is live at coop.art and running on the Near Testnet. You can create a new canvas or contribute to an existing one.

Create a new canvas

Click Create New Canvas. You can see the canvas editor with an empty canvas. Click Upload and choose an image file. Wait while the layer is uploading. I am using IPFS to store the NFT images and metadata so it is fully decentralized and layer owners can be reassured that their art is stored safely forever.

Once the image is uploaded, it appears on the canvas. There you can move it around, rotate it or resize it. For now, the canvas is limited in size but future versions will have an infinite canvas. Once you are done, click Mint layer to store it into the smart contract. A Near transaction automatically starts and a notification will tell when it succeeds. This canvas is now officially started. You can add more layers yourself or wait for others to contribute. Note that a new canvas has a contribution period of 7 days. After that, the canvas will lock and be put on sale.

Contribute to existing canvas

Head over to the marketplace to see all ongoing and expired canvas. You should see the canvas you just created with one layer. Click any ongoing canvases and the canvas editor will open and fetch the layers from the smart contract. You can now contribute a new layer. When you are done, refresh the marketplace to see the updated canvas.

Vote on layers

What if someone ruins a canvas with an inappropriate layer? That's where voting comes into play. If you believe a layer should not be in a canvas, you can downvote it to be removed. On the contrary, if you believe a layer is a perfect match for the canvas, you can upvote it to keep it up. Each canvas is its own DAO and self-governs.. If a layer has more downvotes than upvotes, it is removed.

Buy/Sell canvas

Once the contribution period of a canvas expires, no one can contribute to it anymore, and it is automatically put on sale in the marketplace. For now, I've only implemented a fixed price sale at 1 NEAR as a proof of concept, but later versions will have an auction system. You can click Buy Canvas and submit the transaction. You'll receive the canvas as an NFT containing all the layers. Each participant in the canvas (except those that were voted out) are paid according to the number of layers they contributed. E.g., if a canvas has 10 layers and is sold for 1 NEAR, each layer creator will receive 0.1 NEAR. If someone contributed 2 layers to that canvas, he would receive 0.2 NEAR.

How It's Made

  • I coded the smart contracts in Rust

    • The frontend is made with React using "Create-near-app".
    • The canvas editor is a made using react-konvas.
    • I am using IPFS to store the layer images and token metadata.

Conclusion

Coopart is a revolutionary new way of building art cooperatively, which may lead to pieces made by thousands of artists all working together on a common canvas; as a DAO; and all profiting from its sale.

Built With

Share this project:

Updates