Coder Social home page Coder Social logo

dappros / nfmt Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 1.0 308 KB

NFMT ("Never Forget" Memory Token). Solidity smart contract template based on ERC-1155 NFT standard that makes it easy for artists and creators to create NFT collections and raise funds for charities and causes they care about.

License: GNU Affero General Public License v3.0

Solidity 59.08% JavaScript 7.27% HTML 6.68% TypeScript 26.97%
charity nft ukraine ukraine-invasion blockchain crypto erc-1155 solidity ukrainewillstand digital-collectibles

nfmt's People

Contributors

phwizard avatar transkarpation avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

ideasincrypto

nfmt's Issues

v1 smart contract implementation

At this stage we're looking to implement and test the main scenario:

  1. Collection admin deploys the contract, setting the desired variation sizes, donation amounts, wallet address for charities and the desired proportions for charities. [ This can be done directly in the contract constants ]
    ย 

  2. Users mint tokens via web interface or directly via Etherscan, optionally sending a donation.

  3. Collection contract mints the respective variation for the user if the variation limit hasn't been reached and the donation is sufficient.

  4. Collection contract pays out the obtained donation to charities according to proportions.

Suggested constant names

(pseudo code below)

beneficiary[1][proportion] = 0.5;
beneficiary[1][address] = 0x..........;

beneficiary[2][proportion] = 0.25;
beneficiary[2][address] = 0x..........;

beneficiary[3][proportion] = 0.5;
beneficiary[3][address] = 0x..........;

Contract goes through the array of beneficiaries and calculates a sum of proportions which it uses as 100%.

Like in this example if owner/deployer has made a mistake (0.5 + 0.25 + 0.5 = 1.25), simply use 1.25 as 100% and send donation payments in proportions accordingly.

Contract structure should allow to specify from 1 to unlimited/high number of beneficiaries this way.

"Fair Use + Stash 2 Claim" Mode

In cases where it is not clear who the image (art / media) belongs to or there is a very high probability that author won't object, but finding the author and getting an explicit permission isn't realistic (e.g. simply a meme picture), I propose to implement a

Fair Use + Stash 2 Claim mode

This mode basically means the minter doesn't know who the author is, but assumes that the media / art can be used under Fair Use principles.

The minter agrees in such case that they will not claim to be or benefit from the authorship of the media.

All token owners agree that they will comply with any take down notice.

Additionally, there is a "stash" set up for the benefit of the author where a significant portion (30% ?) of all proceeds will be held for a locked period (1 year) and it cannot be withdrawn to beneficiaries until
A) MiniDAO nominates the Author wallet and votes to allow the Author withdraw from the Stash - scenario where Author is found
B) Lock up period passes and anybody can trigger a withdrawal to Beneficiaries - scenario where Author is not found.

MiniDAO for Stash distribution etc

Here is a proposed mechanism for our MiniDAO that implements the Stash mechanism.

  1. Each NFT owner who has donated has one vote (so each non-Bronze has one vote).

  2. Each voter can put forward a proposal to send X amount of ETH from the Stash to a specific Ethereum address.

  3. Other voters can cast their votes in support of the proposal or against proposal.

  4. The proposal needs one of the following to be executed:

If the beneficiary address is equal to one of the pre-defined charity addresses: needs either 1 admin vote, or 3 months have passed, or supported by 10% or more of voters.

If the beneficiary address is not equal to one of the pre-defined charity addresses, then needs either 1 admin vote plus support of 5% or more voters, or 6 months have passed, or support of 30% or more of voters.

Pending non-executed proposals can be removed by admin plus 10% of voters or by 30% of voters.

This mechanism will allow to compensate newly discovered copyright owners, but also to remove any fraudulent compensation proposals via decentalized community voting.

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.