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

Memo

At memo, we offer encrypted storage and token gated access. A user can upload a file, and allow token holders to download the file.

Memo

Created At

FVM Space Warp

Project Description

Creators

Memo is a platform for creators to deploy their projects by filling out a form. The form takes relevant details about the project, like the number of creators, their respective royalty shares, project/content file (in .zip format), price of the token, token supply, token symbol, project name, description and thumbnail image.

Consumers

Through token-gated access, Memo enables the users to purchase tokens of listed projects which allows them to download the file uploaded by a creator.

Royalty

A project can have multiple creators and they can split their earnings according to their royalty shares. The amount upon purchase of the token gets split into decided ratios/percentage of the creators, and are stored on the token contract. The creators can retrieve their royalty from their project description page.

Tokens

The token contract is deployed on the Hyperspace network for each project. These tokens are almost ERC20 standard-based and are non-transferable with a fixed price and supply.

Other

The project gets removed from the listing once its tokens are sold out. Previously bought tokens and created projects can be viewed in the “Bought projects” and “Created projects” sections in the Dashboard respectively.

How it's Made

Contract Architecture

Marketplace contract maintains a structure which holds the token contract addresses and their respective uploaded file CID. The structure instances are mapped with the project Id.

The token addresses stored are used to interact with its contract functionalities. Thus, anytime a user wants to purchase tokens, create a project, collect royalties, or get the project status, they do so by using the Marketplace contract as an interface to interact with the functionalities of the token contract.

Backend:

We are storing non-transactional data off-chain to reduce gas costs. Express and Node are used to implement several API endpoints which assist in interacting with the application and the web2 database(MongoDB). Project thumbnails are deployed on Firebase. For storing details in MongoDB we have created two schemas For storing the project details like token price file size etc. For the user which stores all the created/bought projects of the user.

Whenever a user connects their wallet we make a backend call to create a user. When the user fills out the form and submits it we make a backend call with all the details.

Frontend: React JS

Libraries Used: Ether.js, Mongoose, Express.js, React Router, Lighthouse SDK.

Project Deployment:

The project creation process is divided into 3 primary sequential steps:

  1. File is encrypted and uploaded to IPFS using the Lighthouse SDK. It returns the CID of the file after a successful upload, which is then stored in the contract as well as the database.

  2. Token contract is deployed from the Marketplace contract. This token is non-transferable and has a fixed price and supply. Data for the project is stored off-chain.

  3. Apply Access Condition

  • The deployed token address and the file CID is then used to apply the access condition on the uploaded file, for which again Lighthouse is used.

Lighthouse SDK helps Memo to encrypt files and implement a token-gated access feature.

Project Description Page

The project description page is rendered based on the “user type”

Details of the project will be shown if accessed by the creator of the project which would include details like tokens bought, amount of money that they can claim, claim money button and other project details that they had filled in at the time of creating the project.

However, If opened by a regular user, a “Purchase” or “Download” button will be rendered based on if they had purchased the token earlier.

All the listed projects will be shown on the Explore page.

background image mobile

Join the mailing list

Get the latest news and updates