Description

Secret Manufaktur is a nft minting platform and marketplace on Secret Network. It protects the intellectual property of the artist by storing the image as encrypted data on the NFT in a way only the current owner ever has access to it. Building around this Secret Manufaktur provides a smooth interface build in sveltekit and typescript to allow for a joyful user experience. We use a serverless backend on Azure Functions to auto-generate thumbnails for faster retrieval from IPFS and customized caching strategies. User can right now mint, list and buy tokens using Secret Networks native token SCRT. A further feature that was implemented as a prototype is the gallery, where art can be curated and viewed for an entry fee. This fee is streamed to the artists wallets, based on the visitor attention they catch.

Secret Manufaktur showcase

How it's made

The frontend was done in Sveltekit and typescript. We tried out the technology the first time and experimented especially with svelte's animation capabilities to create a smooth and responsive UX. The backend is done using azure functions, providing a self written node-proxy to access secret network, as well as the image processing and upload logic. When submitting an image we send it to the function and upload the raw data to IPFS. Afterwards a thumbnail of 350x350px is generated from this using the C# port of the imageMagick library, which is also uploaded to IPFS. This file is way smaller and allows much faster retrieval times. We had the plan of linking both hashes using SKALE or any other l2 solution, to verifiy that each NFT really contains what is in the thumbnail, but did not manage to do it due to time constraints. We use two secret contracts, one for the NFT token itself and one for minting tokens. The tonken contract is based on the reference implementation, with the extension of providing an additional price field to allow for direct sales without an auction / marketplace contract. It is still fully compatible with erc721, as well as with the cosmos version of this token, to allow the use of these tokens on other marketplaces. Besides secret network we use nft.storage to store the image data for now, and superfluid to stream tokens based on which images a user is looking at. This is still prototypical and the main blocker is getting a shared representation of a user, without her having to install a dozen different wallet extensions (We tried torus, but got stuck due to technical problems with it).

Technologies used

IPFSSecret NetworkSuperfluid