GreenNFT / GreenNFTs

Apache License 2.0
2 stars 1 forks source link

Green NFT Hackathon: Solutions Prize Bounty #1

Open mangorocoro opened 3 years ago

mangorocoro commented 3 years ago

Green NFT Hackathon Solutions Prize Bounty

Total ETH prize will be denominated from the total Gitcoin Round 9 Green NFT Grant

Challenge Description

As exciting as the blockchain is, we are mostly encouraged by the community of bright, young creatives that have formed around it. Yes, there are many efforts in progress to improve efficiency, but most of these are company/platform driven. We believe great ideas can come from anywhere and hope that an independent bounty for the development of more efficient NFTs will drive some out-of-the-box thinking to complement existing approaches. This bounty is targeted at developers creating open source solutions. Preference will be given to solutions that improve existing markets, as popularizing a new chain/technology from scratch is beyond the scope and capabilities of this bounty program.

Submission Requirements

Title format for submission example: [Solutions Bounty] tokenized carbon credit wrapped NFTs

Submit a link to your github repository or specification outline for this bounty under this Github Issue.

Styling with markdown is supported in Github Issues. If you would like to submit a non-code based specification via PDF, you can do so by dragging your PDF into the text editor area. More resources on attaching files can be found here.

Judging Criteria

Portions of the bounty will be awarded to teams and individual contributors based on the discretion of a panel of judges who will be selected based on their contributions and good standing within the NFT community.

Winner Announcement Date

May 21, 2021 12PM EST

veqtor commented 3 years ago

[Solutions Bounty] ERC2309 implementation using partitioned ownership tables

WIP: https://github.com/veqtor/ERC2309

I post this here now just so none copies my solution, I will update this post, but first estimates are ~100 grams of CO2 per NFT vs 94 kg CO2 when minting 10k in a batch. This solution could/should be paired with zkrollups (ex zkSync to mint and then batch is generated on-chain incl IPFS-hash & merkle-proofs for ownership). Code is right now heavy WIP and untested, use with caution. Will update.

gitcoinbot commented 3 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 25000.0 DAI (25000.0 USD @ $1.0/DAI) attached to it.

gitcoinbot commented 3 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 1 week, 6 days ago. Please review their action plans below:

1) nighthawk24 has started work.

Decentreelized connects donors with non-profit organizations that advocate for the conservation and protection of environment 🌳🙌 2) konopq has started work.

Hello my name is jakub 3) dustpan28645 has started work.

If your where wrong!!! I’m going to do my best to help you out 4) dustpan28645 has started work.

If your where wrong!!! I’m going to do my best to help you out 5) dustpan28645 has started work.

If your where wrong!!! I’m going to do my best to help you out 6) dustpan28645 has started work.

If your where wrong!!! I’m going to do my best to help you out 7) climatefutures01 has started work.

We propose to create public Solidity functions aka code “snippets” which can be used by the NFT community and added to any NFT smart contract to mint carbon neutral NFTs, including more optimized minting methods such as roll-ups etc. that still use gas.

The snippets will leverage an existing feature/function of our 1PLANET Carbon Credit smart contract to retire/burn the necessary 1PLCO2 tokens based on the minting Tx gas consumption. This will be essentially wrapping the NFT with 1PLCO2 tokens and using them immediately to offset the minting carbon footprint upon creation.

The solution could even include the initial gas used to transfer the NFT to the first buyer/wallet.

(See our submission in Awareness that covers how to calculate CO2 from Eth gas.)

We are looking for NFT solidity coder(s) to join our team for the Hackathon.

If you are an experienced solidity coder and good with coding NFT smart contracts (ERC1155 and ERC721) then please contact us.

We will update the summary and description with more detail as we progress.

Thanks,

The Climate Futures Team 8) mikehroth has started work.

Create an embeddable badge for token holders and token creation platforms which allows them to display their Eco Impact grade and provides end-users a method of connecting a wallet and contributing donations for “carbon offsets”. 9) tomerqueves has started work.

Hola exploradores. Si disponen de este paquete necesitan de algún modo este paquete para desarrollar su civilización. Nosotros tomabamos posiciones mineras en ciertos astros de la galáxia y de algun modo escuchamos una especie de señal muy parecida a sus estandares de socoro. Por eso y en vista de que pudiera ser así lanzamos al primero de nuestros equípos de explioración y colonización y en un puesto avanzado y fuertemente customizable para su enfrentamiento. Tanto es así que lanzamos tfuel, theta, one y hot como tlp entre la brujula el lápiz los pañales y nuestras dos unidades de intervención rápida que no suelen llegar antes que nuestras sondas al preveer entrada en perdida y dejarán cristal en las órbitas altas. Si detectan ese cristal en su galaxia pueden proceder a reciclarlo y suponemos que tendremos luego el soporte. Si su galaxia no soporta vida humana sepa que nuestros exploradores también llevan dos peces por si necesitaran interlocutor en la embajada. Se despide el comandante de guerra tomerqueves a los mandos de la avanzadilla tripulada y tratando de alcanzar dichas posiciones. Guarden sigilo. No sabemos a qué sos nos enfrentamos ni si nos alcanzará fuego enemigo o por contra seremos recibidos con unidades de soporte vital. tomerqueves de comandan para alien worlds en kgzrk 10) boonetb has started work.

These Bonsai NFTs a rare type of Utility NFT that offers the holders the CO2 removal benefits of the real trees it is protecting. 100% of the selling price of CO2 Staking Bonsais go to conserve and regenerate forest lands. Every Bonsai sold will put 1ACRE of Forest into conservation forever. Each Bonsai Artwork in this collection is an original and 1 of 1. Holders of these NFTs will receive carbon credit certificates for future CO2 staked by forest conserved by Bonsai NFTs. 1st EDITIONS IN PROGRESS NOW DUE TO RELEASE ON EARTH DAY 4-22-2021 11) leon-do has started work.

dAppy Doge L2 is an experimental game that is leverages layer 2 scaling solutions for Ethereum. The problem is minting a NFT is costly and inefficient for both the network, energy and environment. The goal is to improve the existing blockchain gaming market to adopt cleaner solutions such as layer 2.

I hope this project shows it IS possible to create greener and funner crypto games! I also had fun building this.

PS: Video has a blooper at the end. 12) masaun has started work.

【Introduction of the Tokenized-Carbon Credit Marketplace (on Polygon/Matic)】 ● This is a smart contract and dApp that is the Tokenized-Carbon Credit Marketplace which allow to be able to claim, audit, buy/sell carbon credits in a single platform. (for incentivize and accelerating the CO2 emission reduction) ・By that whole process is executed on this platform, it is able to keep transparency and traceability . ・The Carbon Credit Tokens (CCTs) are used for representing amount of carbon credits. (The Carbon Credit Tokens is created as ERC20 token) ・Green NFT is used for a proof of audit of CO2 reductions for a project ・This smart contract is deployed on Polygon (previously Matic Network ) in order to save cost of transaction and realize faster transactions. 13) trish2 has started work.

Online programming 14) brittanydeventer has started work.

Green Deeds Regen Integration through eco-credit backed IRISnet NFTs. 15) blockchainhumphreys has started work.

The Problem: NFT's stagnate because of high prices, limiting access, artist royalties, and price discovery, but high volume NFT trading leads to unsustainable energy consumption.

Solution: Lock Ethereum based NFT's in a contract and mint fractional ownership tokens. Liquidity spurs price discovery, volume increases royalties, shared ownership promotes communities & accessibility, and best of all, the Ethereum based NFT doesn't move, lowering it's energy consumption to zero. These tokens could easily be minted as ERC-20 tokens, but taking it one step further and minting tokens on a Proof of Stake protocol is the dream.

Goal: Minimize energy consumption without throttling the total addressable market. 16) yangwao has started work.

We are an NFT explorer on the Kusama network. We are adding carbonless NFT minting for our creators and will be showing it in the gallery to show if NFTs we're minted way that creators chose to buy carbon credits or not. Collectors could be also interested in collecting carbonless NFTs. Later we are looking to for creators to directly include hash from offsetra once they will have fiat off-ramp for KSM. Now we are covering it for creators from our offset address manually. 17) nnnnicholas has started work.

In the interest of making NFTs as ecologically responsible as possible we propose an open source lazy minting standard called Content Addressed Lazy Minting (CALM), and an open source reference implementation. We also present a deployment of this standard on Matic. 18) lucadonnoh has started work.

While working on our paper for the Awareness Bounty, we came to a strikingly simple conclusion: the single, most effective on-chain way to reduce emissions is to reduce transaction fees. Compared to standard prices, a reasonably lower price can reduce a user's impact by up to 80%, far more than the benefits that optimizing NFT contracts can bring. Some users, however, are afraid of using lower prices, believing that even a few Gwei below the suggested values could exponentially increase waiting times or prevent confirmation altogether. We therefore use hourly gas price data and the model that we developed for the Awareness Bounty to help users reduce their emissions. 19) holy-parmesan has started work.

PoFE Blockchain for Pyrolysis Systems

Learn more on the Gitcoin Issue Details page.

gitcoinbot commented 3 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 25000.0 DAI (25000.0 USD @ $1.0/DAI) has been submitted by:


JUDOKICK commented 3 years ago

[Solutions Bounty] Tokenized carbon credits using VCS tons on Matic Layer 2

Hey there, we would like to submit Creol's CVCUs system we use to track and offset VCS tons onchain.

We recently did 500 tons CO2e for the NiftyGateway CarbonDrop which helped raise 6.6MM$ for climate blockchain research with Open Earth Foundation.

We use this system in our building control system, that carbon offsets the buildings in real time all tracking usage on chain.

Super stoked that this Gitcoin grant is going up!

https://github.com/creol-io/cvcu

gitcoinbot commented 3 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 25000.0 DAI (25000.00 USD @ $1.0/DAI) has been submitted by:

  1. @konopq
  2. @judokick
  3. @soleauchain
  4. @holy-parmesan
  5. @facioergosum
  6. @leon-do
  7. @metodi96
  8. @masaun
  9. @trish2
  10. @brittanydeventer
  11. @execc
  12. @dumbfounder
  13. @grcasanova
  14. @boonetb
  15. @yangwao
  16. @blockchainhumphreys
  17. @mikehroth
  18. @nnnnicholas
  19. @lucadonnoh

@mangorocoro please take a look at the submitted work:


holy-parmesan commented 3 years ago

[Solutions Bounty]

https://docs.google.com/presentation/d/18LAHBhmTztizo6mhvucFR7Zg1SdAEagTGd18wMwRySg/edit?usp=sharing University of Victoria climate challenge submission

WIP: https://github.com/holy-parmesan/terrachain/blob/main/PROGRESS.md

Proof of Authority Blockchain to be built with Cosmos SDK to credit & track for ongoing > 500 acre biomass pyrolysis projects at acreages, small farms and universities.

Proof of Existence Blockchain to be built with Polkadot / Kusama Parachains for < 500 acre projects & mobile applications ( large farm utilizations ).

Applying for Y-combinator and joining x-prize for Elon Musk's Carbon Capture competition this week, as well as https://github.com/w3f/Open-Grants-Program initial grant.

quanto-basta commented 3 years ago

[Solutions Bounty] Mosaic: Fractional NFT Mint

WIP: Github Repo: Mosaic Website Catalyst Fund 5 Proposal (decentralized funding protocol).

Smart Contracts to be deployed on Cardano using Plutus (I am part of the Plutus Pioneer Program).

Permanent NFT storage done with Arweave/IPFS.

Disputes resolved with Kleros.

Carbon footprint 3rd party monitoring done by Greenly.

Development deal being negotiated with Blockfrost.

Accepted into Station F - Founder's Program, a startup accelerator based out of Paris.

Thank you all for not only identifying a problem, but taking action and working to solve it. Cheers to every single one of you.

nnnnicholas commented 3 years ago

[Solutions Bounty] Content Addressed Lazy Minting (CALM)

Github Repo

Summary

In the interest of making NFTs as ecologically responsible as possible, we propose an open source lazy minting standard called Content Addressed Lazy Minting (CALM) and an open source reference implementation. We also provide access to a deployed version of the contract on Matic.

Rationale

The ecological impact of NFTs has become a matter of public interest and concern since NFTs achieved mainstream awareness in early 2021.

In the interest of making NFTs as ecologically responsible as possible, in the first section, we propose an open source lazy minting standard called Content Addressed Lazy Minting (CALM), and an open source reference implementation.

Together, the CALM standard and reference implementation aim to make gas-efficient NFT minting accessible to all, so that present and future platforms may enable more participants to enter the NFT space on the most trustworthy blockchain, while also reducing block space consumed by NFTs that are never purchased or transferred.

In the second section, we present a deployment of the CALM standard on Matic, the Layer 2 EVM blockchain. This section demonstrates that the ecological advantages of NFTs on Proof of Stake (PoS) blockchains are available today. We assert that EVM-based Layer 2 solutions provide a superior compromise between security and ecological cost than non-EVM chains such as Tezos and Flow, while also maintaining compatibility with popular ecosystem tooling such as MetaMask, OpenSea, and Hardhat.

Layer 1 Scaling Solution: Content Addressed Lazy Minting (CALM)

Lazy Minting

Content Addressed Lazy Minting is an extension and improvement upon the lazy minting technique introduced by OpenSea on December 29, 2020. When lazy minting, the creator signs a permit stating their willingness to create a given NFT, and uploads it to the minting platform off-chain. The platform serves this permit to potential buyers through their website. Should a buyer choose to purchase the NFT, they execute an on-chain transaction including the signed permit. The lazy minting contract confirms that the permit is legitimate, then mints the token and immediately transfers it to the buyer. The token's on-chain provenance correctly identifies the NFT creator as the minter.

OpenSea explains the mechanism of their presently closed-source lazy minting implementation as follows. "When you create an NFT, you encode your address and its total supply in the token’s ID. That way, no one except you can mint more of them, and buyers can count on a hard cap on supply that’s enforced by code." (OpenSea).

Mintable's "gasless" lazy minting contract is also to our knowledge closed source at present.

In addition to its gas saving environmental benefits, by dint of being open source, CALM enables NFT creators to deploy their own minting contracts to Ethereum. We believe that enabling NFT creators to deploy their own contracts will increase their participation in network governance. If NFT creators express their concerns, such as their interest in the environmental impact of consensus mechanisms to the core development community, this will positively affect the prioritization of more ecological solutions.

Accomplished NFT artists such as Murat Pak have appealed to NFT platforms on Twitter to broaden support for lazy minting for its ecological and cost-saving advantages. In the next subsection, we explain in detail how CALM NFTs answer the call for an open source lazy minting standard, while also introducing guaranteed NFT immutability, thus eliminating the risk of NFT rug pulls.

Content Addressed Lazy Minting (CALM) Technical Explanation

Content Addressed Lazy Minted (CALM) NFTs employ content address token IDs to permit the future minting of a given NFT with additional security affordances beyond existing implementations. We achieve this by concatenating a shortened identifier of the creator's Ethereum address and the SHA1 digest (the hash) of the NFT JSON metadata to obtain a tokenId.

Complete CALM implementations for both ERC-721 and ERC-1155 are available on Github.

We call these content-addressed NFTs because a given token ID created using this method is provably unique to its JSON metadata and creator.

A contract using this strategy would only mint tokens with IDs that pack a certain data structure. In the example below we demonstrate Solidity code that makes use of this structure.

The following code gets the id of a CALM NFT given a JSON metadata SHA1 digest metadataSHA1 and a creator address msg.sender.

function computeTokenId(uint160 metadataSHA1) external pure returns (uint256 tokenId) {

    // Compute a 96bit (12 bytes) id for the creator based on ther Ethereum address (160 bits / 20 bytes) and the metadata SHA1 digest
    bytes12 tokenSpecificCreatorIdentifier = bytes12(keccak256(abi.encode(msg.sender)));

    // Pack `metadataSHA1` (160bit) and `tokenSpecificCreatorIdentifier` (96bit) into a 256bit uint that will be our token id
    uint256 tokenId =
        bytesToUint256(
            abi.encodePacked(metadataSHA1, tokenSpecificCreatorIdentifier)
        );

    return tokenId;
}

Example token ID:

0x7c54dd4d58f49026d084c3edd77bcccb8d08c9e4029fa8c2b3aeba73ac39ba1f
--|----------------------160bit------------------|-----96bit-----|
                           |                                 |
                           |                                 |
                           |                                 |
                           |                                 |
                           |                                 |
             SHA1 digest of JSON metadata     Token specific creator identifier

                                             (truncated keccak256 digest of
                                             metadata SHA1 and ethereum address)

computeTokenId is a pure view function so it may be called without executing a transaction on-chain.

Mint must be called to save the token ownership on-chain. For example:

function mint(uint256 tokenId, address creatorAddress, address recipient) {
    // Verify that the truncated keccak256 digest of the creatorAddress (tokenSpecificCreatorIdentifier) passed as an argument matches the last 96 bits in the tokenId
    require(tokenIdMatchesCreator(tokenId, creatorAddress), "lazy-mint/creator-does-not-correspond-to-id");

    // Mint happens here
    // _mintOne is implementation specific, see https://eips.ethereum.org/EIPS/eip-721 or https://eips.ethereum.org/EIPS/eip-1155
    _mintOne(creatorAddress, tokenId);

    // The `msg.sender` can choose who will receive the NFT
    // TransferFrom is implementation specific, see https://eips.ethereum.org/EIPS/eip-721 or https://eips.ethereum.org/EIPS/eip-1155
    transferFrom(creatorAddress, recipient, tokenId);
}

Notes on IPFS compatibility

IPFS can be used to retrieve files with their SHA1 digest if those were uploaded to the network as raw leaves. This can be done with the following command.

ipfs add --raw-leaves --hash=sha1 <path>

An IPFS CID can also be constructed from a SHA1 digest.

JavaScript example:

import CID from 'cids'
import multihashes from 'multihashes'

const SHA1_DIGEST = '2fd4e1c67a2d28fced849ee1bb76e7391b93eb12'
const sha1Buffer = Buffer.from(SHA1_DIGEST, 'hex')

const multihash = multihashes.encode(sha1Buffer, 'sha1')

const cid = new CID(1, 'raw', multihash)

Or more succintly, taking advantage of the base16 encoding of CIDs:

const SHA1_DIGEST = '2fd4e1c67a2d28fced849ee1bb76e7391b93eb12'

//IPFS v1 CIDS that are pointing to SHA1 raw leaves always start with f01551114 in base16 (hex) form
const cid = `f01551114${SHA1_DIGEST}`

Layer 2 Scaling Solution: CALM on Matic

Why Layer 2?

While CALM NFTs reduce the ecological impact of NFT creation, all subsequent transaction activity (e.g., minting, selling, transferring) remains on the blockchain.

Ethereum's Mainnet (L1) uses a Proof of Work (PoW) consensus mechanism at present (Ethereum Foundation). PoW blockchain mining is the energy intensive process responsible for the ecological concerns surrounding NFTs (NYTimes). Eth2, the upcoming Ethereum protocol upgrade, will transition the blockchain from PoW to Proof of Stake (PoS), a consensus mechanism with a negligible ecological impact (Ethereum Foundation). The Eth2 upgrade is planned to arrive in 2021 or 2022.

Until Eth2 arrives, NFT activity on Ethereum can be argued to incentivize PoW mining by consuming L1 block space, thus adding congestion to the network, driving up gas prices, and increasing miner rewards. NFT critics argue that planned upgrades are an insufficient argument to justify NFT minting on Ethereum's PoW L1 today (Memo Akten).

In the absence of PoS Ethereum Mainnet, some NFT artists have migrated their practices to alternative L1 PoS blockchains such as Tezos and Flow (see Hic et Nunc and Versus platforms). These blockchains exhibit inferior security due to relatively centralized token ownership and governance uncertainty. Moreover, these blockchains fracture the NFT marketplace because they are not Ethereum Virtual Machine (EVM) based. This makes them incompatible with existing ecosystem tools and platforms such as OpenSea marketplace, MetaMask and other Ethereum-compatible wallets, and development tooling such as Hardhat.

To further reduce the ecological impact of NFTs while delivering creators high security NFTs, we present a deployment of the CALM standard to the Matic PoS chain, a Layer 2 EVM network (Matic PoS Chain). Matic PoS chain delivers the ecological and EVM gas saving advantages of Eth2, today, while maintaining compatibility with existing Ethereum wallets, NFT EIP standards, development languages, and tooling (Bankless). Matic's Ethereum-Matic Bridge also enables NFTs to be transferred between Ethereum L1, Matic, and future EVM chains with the help of Polygon and equivalent multichain infrastructure (Matic Bridge).

In addition to Matic, CALM is natively compatible with all EVM Layer 1 and Layer 2 blockchains, such as xDai, Fantom, and Binance Smart Chain. CALM will also be relevant for use in conjunction with forthcoming rollups such as Optimism's OVM and Arbitrum. Rapid adoption of nascent rollup technology has even accelerated the Eth2 PoS transition timeline (Consensys).

CALM on Matic

CALM is deployed to the Matic chain (see contract address here). Instructions for interacting with the contract are available on Github.

We will be deploying an interface to interact with an extended version of the CALM on Matic contract on nftstory.life later this month (May 2021). An alpha version of that interface is currently available on Rinkeby at rinkeby.nftstory.life. Access to the Rinkeby alpha is currently restricted to whitelisted accounts. We invite you to send us your Rinkeby wallet address so that we may add you to the whitelist. Please contact dev at nftstory.life.

Next Steps

If there is interest amongst the developer community, we would be interested in formalizing and refining the CALM standard through the EIP process.

Should this submission win the GreenNFT bounty, we intend to use the reward to refine our existing submission with a professional contract audit.

If you have additional ideas for funding the auditing and development of this contract and related NFT minting tools, please contact us at dev at nftstory.life or https://twitter.com/nnnnicholas.

FacioErgoSum commented 3 years ago

Is there any information coming up about the winner for the Solutions Prize? It says it was supposed to be announced 3 days ago but I haven't seen anything about it. Thank you!

mangorocoro commented 3 years ago

Is there any information coming up about the winner for the Solutions Prize? It says it was supposed to be announced 3 days ago but I haven't seen anything about it. Thank you!

all of the judging finished last friday, hoping to have the announcements out this week in the next days!

gitcoinbot commented 3 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


The funding of 25000.0 DAI (25000.00 USD @ $1.0/DAI) attached to this issue has been approved & issued to @brittanydeventer.