It is NFCarb: Non Fungible Carbon!

Inspiration

Climate conventions have encouraged generation & trading of carbon credits. But due to the expensive & complex verification and issuance procedures, there is limited practice of carbon credits(CCs). Though the CCs can be generated & traded for as low as 1 ton CO2 fixation, currently the huge scaled stakeholders go for them. In fact, the CCs offer free money for greener activities. Yet, their issuance and trade is not widespread.

If the issuance & auditing of CCs becomes cheaper & easier, we can see a boom in their trade. It offers good monetization for people in developing countries.

As each CC implies, carbon fixation/sequestration activity during certain period, at certain location and having certain CO2 amount fixed, they can be represented as NFTs. Blockchain technologies provide an efficient tool for issuance and accounting, hence much advantage is expected over conventional handling of CCs. Representing the CCs as NFTs is not a new idea. There are a few project implementing this. But no such project is successful in execution due to challenges in the verification or validation. Though blockchain facilitates easier issuance and accounting, the verification remains big challenge. No one is interested in buying unverified CCs, and the CC verification is to be handled in conventional way only.

In this background, if we can facilitate the verification, we would get immense advantage over conventional route and the CCs adoption would get a high boost.

So, we are inspired to offer carbon credits on blockchain or through dApp. Such credits would have accounting, issuance & verification inherited from blockchain or related smart contract features.

What it does

We have developed a platform offering carbon credits to everyone. Any Tron user can generate (i.e. mint) a CC by entering essential details on the dApp. It is like open minting, without any interference of the admin/owner of smart contract i.e. we. This may flood the CCs on our contract, but all the minted CCs are unverified by default. The CC is valuable only if it is verified.

Like minting, verification can also be done by anyone. The form on our dApp facilitates verification of the CC through Croin. This process is also open without anyone's control. We do have control on updating the verification status for the CC (i.e. NFT) on our smart contract, and we should do it without any bias. Yet, the users have open access to the CC specification on our smart contract and the verification process from Croin. By linking both these ingredients, the users can convince potential buyers without anyone's control. Hence this is a kind of trustless execution. We are there to streamline and accelerate the trade by updating verified status for each CC.

So, our project offers all users the seamless & trustless issuance, accounting & verification of carbon credits if they do/hold such activity. The issuance and accounting (of all the transfers) part is ensured by our smart contract, while the verification part is ensured by Croin. We are building a dApp to automate the Croin & smart contract execution.

How we built it

We have created a smart contract on top of TRC-721 standard. Key feature is that any address can mint the NFT (i.e. NFC). And there is a function that implements a special transfer type where the recipient can't transfer the token further. This function would be called while the transfer to the CC consumer. The metadata is stored as a struct and URI is constructed as '~' delimited values of the key metadata fields. Hence no third party server is needed to store the NFT details. Metadata values like longitude, latitude, CO2 equivalence, time period, creditType, verification status etc. consume less than 256 characters. Hence this offers an efficient & independent way for storage. The specification can be easily recovered by the delimited URI. Thus even the verification by Croin can be done by processing the URI without any external dependency. This is essential ingredient for trustless possibility.

Then we are creating a dApp to facilitate the open minting. It's a React app that uses injected tronweb from Tronlink for user authentication and firebase as database. Each authenticated user can mint the carbon credit to himself or herself.

Apart from the minting, dApp also facilitates verification. A form takes the tokenID and evidence links as input and generates a credit as per Croin specification on the Croin dApp (https://croin28.vercel.app/). Terms of the credit (for Croin) are recreated from URI of the tokenID. Basically it asks Croin whether the CC metadata and the evidence links provided is reasonable for the CO2 equivalence mentioned. The Croin trustees can make use of the evidence links provided, satellite images for the latitude/logitude, and subsequent arguments by the users to reach the conclusion. Our dApp monitors decision from croin on this CC and updates the verification status when the update is received.

Challenges we ran into

We faced some challenges regarding the React app development.

In future we want to minimize the transaction costs and integrate our dApp with the carbon credits trading platforms.

Accomplishments that we're proud of

By providing open minting and open verification, we are able to offer a trustless system for carbon credits. Any humble person can generate a carbon credit on our platform and induce monetary value to it by the open verification. There are a lot of carbon negative activities happening worldwide. Our app would organize and facilitate carbon credits for everyone.

Our another project (i.e. Croin) helped to facilitate the effective NFT verification. It is also a proud thing.

What we learned

We learned to code a modified smart contract following TRC721 standard and not dependent on any imports. We also learnt the development of React app development on Tronlink.

What's next for NFCarb

Now we want to optimize the smart contract for storage and gas prices. In parallel, we have to adopt the developments in Croin as our project uses it. We want to further develop the dApp where trades of carbon credits would be integrated or connected.

Share this project:

Updates