project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5
project screenshot 6

CUREO

Curated NFT pop up art exhibitions to improve the NFT experience

CUREO

Created At

ETHNewYork 2022

Winner of

6️⃣ XMTP — XMTP Shout Out

Project Description

The problem with the NFT industry is new users struggle to find communities that fit in with their beliefs, culture and ideals. Discovering new projects, knowing what’s popular and “in vogue” is particularly difficult. The current market place experience, which is essentially an index, can be improved to increase opportunities for discovery.

We are developing a protocol to enable the creation of a virtual pop up exhibition market experience. A DAO chooses what NFTs can be added to the next exhibition as well as launch time and duration. The exhibition is open for chosen number of days with a curated experience for users to discover new projects and collections.  This user experience will make the introduction of NFTs user friendly and accessible.

The UX is inspired by the David Zwirner Gallery on 19th Street in Chelsea, New York. In the same way people browse a market IRL, they can browse a virtual market. This creates opportunities for discovery. People will find NFTs they align with, enabling communities to grow. There is also potential for NFT “sales” akin to Black Friday.

The selection of chosen NFTs are locked away in preparation for the upcoming launch in order to maintain exclusivity. To keep the NFTs on chain but prevent people from finding out the selected collections early, we have created an on-chain masking mechanism. At launch, people can access the exhibition, discover curated collections and purchase NFTs from cureo.art.

The DAO is a token-gated community that can be joined with ownership of the $CUREO token. Members of the community propose and then vote on what new projects and collections will be included in the next exhibition.

The token will have a fixed issuance and ownership gives the right to vote. Demand is driven by curators who want to display their exhibitions.  A commission is taken on every sale for the DAO treasury.

How it's Made

Cureo use the EVM create2 opcode calculted from a secret signature to privately prelist NFTs for exhibition without revealing the participants.

We use xmtp to keep all the listings secret until the exhibition opens, and to privately contact the prospective sellers.

To launch, the exhibition curator consumes all the secret listings from their XMTP inbox and publishes them to Filecoin.

The core tech of the Cureo exhibition experience is to allow curators to prepare a gallery of art committed for sale, without revealing what will be available, while maintaining decentralisation. The notable sponsor technologies we depend on for a fully decentralised experience are XMTP and Filecoin.

Rather than using the ERC721 approve standard method to transfer on behalf of the seller, we use a private escrow address which is uniquely associated with a fixed price for a specific NFT for that one exclusive exhibition. This address can be calculated entirely off-chain.

This is particularly hacky because:

  • There is no tx fee for the curator to make the listing proposal other than an XMTP message
  • The cost for the seller to opt in is only the cost to transfer the NFT to the escrow address
  • The seller is locked in for the sale period
  • It is entirely trustless - the rules of the sale are baked into the escrow address
  • Only selected NFTs can participate - the curator’s signature is baked in as well
  • Cross chain - NFTs can be accepted from most EVM chains in web3, without duplicating the exhibition contract

The pre-imaging of the escrow (or listing) address allows the entire exhibition workflow to be executed in only two on chain transactions:

  1. The curator deploying the s contract which controls the sale period, commission, included tokens, etc.
  2. Either a. A buyer purchasing the artwork OR b. The seller reclaiming the NFT from escrow at conclusion of the sale period

    How the secret listing pre-image works: using the EVM create2 opcode Cureo can predetermine an address at which to load a controller contract for the sale, which only the exhibition contract can control. This allows the exhibition contract to behave as though it were the current holder of the listed NFT, as it can call arbitrary contract code with the listing address as the sender. However the exhibition contract is restricted to only two functions: transferring the NFT to a buyer, or refunding it to the seller. No other contract code can be deployed to the listing address, and no other address other than the exhibition contract can deploy to this address, because of the contract byte code baked into the create2 salt. The controller contract is destroyed at the end of the transaction so that no cost is incurred for storing an additional contract.

For the listing to remain private, we require a private communication channel from the curator to the prospective seller. If the sale parameters are leaked, including the randomised salt, then anyone can monitor the escrow address, knowing exactly what is being listed.

On traditional centralised markets we could simply use a database authenticated to the prospects email, however XMTP allows the curator to deliver the listing proposal exclusively to the verified owner of the NFT. The front-end is a static site hosted on Filecoin, fetching all other required state from XMTP or Filecoin preventing any state being stored on centralised servers.

Listing flow

  1. Curator deploys the exhibition contract, specifying the start and end dates for the sale
  2. For each listing proposal the front-end will prompt for the curator’s wallet signature, then build the listing address
  3. The front-end sends the listing address and sale parameters to the user and curator via XMTP, and emails the seller with a link
  4. The link is just front end url with the sellers address appended to the path cureo.art/list/0xA6D1A2B74adfadDd3140F3dB35CF9569fE4279334Ac
  5. The list page contains an XMTP client which unlocks the the listing details by the seller connecting their wallet
  6. The list page then prompts the seller to commit, which creates a meta mask transaction for them to transfer the NFT to the listing address
  7. The seller is now committed to the sale - they can reclaim their NFT if it is not sold by the end of the sale period, but not before.

Launch flow

  1. The launch page on the front-end contains an XMTP client that curator signs to access
  2. The curators XMTP inbox contains all the messages as listings
  3. The front-end prompts the curator to sign to upload all listings to file coin, addressed by their exhibition contract address, token address, token ID, and holder address
  4. At this point the private salts and listing addresses must become public so that sales can be executed
  5. Because the filecoin path is pre-determined the market page is able to pull all available listings and the necessary salts to execute sales
  6. Market page uses the listing price from filecoin data, and the usual NFT metadata from the chain.

Purchase flow

  1. Buyer selects the NFT on the market page, and hits BUY
  2. Front-end populates the exhibition contract transaction to complete the sale, using the listing parameters available on filecoin
  3. Buyers signs and executes the transaction
  4. Exhibition contract verifies that the salt for the listing was signed by the curator
  5. Only if the price, curator, token address, token ID, token holder and curator signature are correct will the transfer be permitted to occur
  6. Curator is transferred the commission, and seller is transferred the remaining fee.

The salt containing the curators signature prevents anyone who sees the exhibition contract prior to the sale period rom creating their own listing and participating without permission.

Multi chain: because the listing requires only an NFT transfer, and not a complex contract call, Cureo maintains the privacy of the listing while using Axelar Network for cross-chain interoperability. Using Axelar Network, the exhibition contract can be deployed to a single EVM chain of the curators choice and accept NFT listings from most EVM chains in the web3 ecosystem, including polygon, finance smart chain, moonbeam, avalanche, etc.

background image mobile

Join the mailing list

Get the latest news and updates