Git Product home page Git Product logo

re-meme's Introduction

re:meme

re:meme is an app that allows users to post original content, such as memes. Other users can remix that content by adding in additional elements (e.g., text, images, drawings) to the original content as a base.

The rise of NFTs has drawn considerable interest on the value of canonical memes, with major sales of the Doge NFT, nyan cat, Rare Pepes, and more.

re:meme is the first ever on-chain meme generator, built on top of Lens Protocol in order to preserve provenance, as well as crediting original meme creators and meme derivative creators. re:meme's on-chain nature gives full visibility into the original creation of meme, and the memes that build on top of it over time.

Memes are only the first step. This primitive can be extended to other media formats like music, video, and even sources for academic papers.

Buidling

This experiment by Newt is entirely open source. Given the modular nature of smart contracts, re:meme can be integrated, enhanced, or forked by anyone. See contributing for more info on joining the Newt community to build with re:meme.

Local development

Front-end

Frontend is build with React with a canvas editor. Main features of the frontend are creating, discovering, and sharing on-chain memes.

  1. Install Node
  2. Install Yarn
cd packages/frontend

yarn install # Install dependencies
yarn dev # Start development server

See step-by-step guidance on /frontend/readme.md

Lens API

re:meme uses the Lens API in order to interact with the Lens Protocol. This allows the frontend to post memes as publications on Lens.

Each meme that you create is a publication on Lens, to create the actual post we call the post create endpoint in order to send the data in-chain.

An IPFS gateway is also used in order to upload and pin memes as content onto IPFS.

Contracts

re:meme uses a custom Collect Module on Polygon to allow for the collection and ownership of publications as memes.

The custom collect module allows meme "owners" to update collect parameters such as collect currency, collect amount, fund recipient, secondary royalty, and who can collect. Two unique features of this collect module:

  1. It is the first customizable collect module on Lens Protocol, meaning that collect parameters can be configured and modified after initialization.
  2. It has an ERC-721 collection in the module. Meaning that there is an NFT associated with each meme; this NFT is the "ownership NFT", where the NFT holder is able to update the collect parameters. This means that the meme creator can send or sell the "ownership NFT" to another person, who is then able to update the collect parameters without the need to coorindate with the meme creator. This allows for the sale of the monetization rights of memes. Pretty huge.

The custom collect module is called UpdatableOwnableFeeCollectModule. You can discover and read the verified contract on PolygonScan or on GitHub in the Lens repository.

Contract address: 0x432960b3209686cc69e2eec1dbbab52a1c0bf938

User guide

We uploaded a step-by-step user guide for anyone to use re:meme.

You can also check out user guide videos on Lenstube:

  1. How to discover and share memes
  2. How to remix memes
  3. How to create a brand new meme
  4. How to report content
  5. How to appeal content takedown

License

Link to code license

re-meme's People

Contributors

joaquinbattilana avatar josepbove avatar 0xjim avatar arttu0 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.