Skip to content

Lossless NFT: keep it or get richer. Experimental Ethereum dApp based on scaffold-eth.

License

Notifications You must be signed in to change notification settings

dvinubius/lossless-nfts

Repository files navigation

Lossless NFTs

Ethereum dApp allowing for nft-based experiments in mechanism design.

Project built with scaffold eth.

Only part of the intended functionality is available so far, but

Try it out on Rinkeby 🤩

lossless

Concept: Create and manage NFTs with up-only price

Special ERC721 contract that twists the usual meaning of NFT ownership. Extra incentives are added such that the price can only ever increase.

Actors

  • Author
  • Minter
  • Grabber

Author creates NFT.

Sets

  • minimum price
  • author fee (% or fixed)

=> NFT becomes visible in app gallery. Can be minted by anyone.

Minter mints NFT.

Sets

  • price (>= minimum price)
  • premium (% value)
  • pays the price in order to mint
  • author receives these funds

Grabber takes NFT permissionlessly

  • Anyone can grab an NFT
  • Grabbing requires to pay the grabPrice = price + premium
  • Grabber becomes the new owner
  • Previous owner receives the payment
  • grabPrice increases by the premium that was just paid (price premium compounds across grabs)

Locking mechanism

An owner can lock/unlock the asset. Only the owner can do this.

Unlocking disables all the grab-related functionality. Then the asset becomes a regular NFT.

Locking is associated with a fee (the author fee). Everytime an asset is locked the author gets paid that fee.

If the author fee is set as %, it's always calculated relative to the current grabPrice of the asset.

WIP (not done yet)

  • as a user I can author an asset

    • upload to IPFS
    • specify metadata
    • set minPrice and author fee
  • as a user I can see all assets from a given author

    • organize the gallery page based on a specific author
    • these pages should be shareable/bookmarkable
    • needs backend support (probably firebase storage for an MVP)
  • lock / unlock feature

For questions DM me on Twitter @dvinubius

🏗 Scaffold-ETH

everything you need to build on Ethereum! 🚀

🧪 Quickly experiment with Solidity using a frontend that adapts to your smart contract:

image

🏄‍♂️ Quick Start

Prerequisites: Node plus Yarn and Git

clone/fork 🏗 scaffold-eth:

git clone https://github.com/austintgriffith/scaffold-eth.git

install and start your 👷‍ Hardhat chain:

cd scaffold-eth
yarn install
yarn chain

in a second terminal window, start your 📱 frontend:

cd scaffold-eth
yarn start

in a third terminal window, 🛰 deploy your contract:

cd scaffold-eth
yarn deploy

🔏 Edit your smart contract YourContract.sol in packages/hardhat/contracts

📝 Edit your frontend App.jsx in packages/react-app/src

💼 Edit your deployment scripts in packages/hardhat/deploy

📱 Open http://localhost:3000 to see the app

📚 Documentation

Documentation, tutorials, challenges, and many more resources, visit: docs.scaffoldeth.io

🔭 Learning Solidity

📕 Read the docs: https://docs.soliditylang.org

📚 Go through each topic from solidity by example editing YourContract.sol in 🏗 scaffold-eth

📧 Learn the Solidity globals and units

🛠 Buidl

Check out all the active branches, open issues, and join/fund the 🏰 BuidlGuidl!

💬 Support Chat

Join the telegram support chat 💬 to ask questions and find others building with 🏗 scaffold-eth!


🙏 Please check out our Gitcoin grant too!