Carbon bearing NFT - stores BCT (Base Carbon Tonne) carbon credits inside of NFTs. The more BCT you store inside the more you improve the visual fidelity of your carbon lifeform.
THIS PROJECT IS A PROOF OF CONCEPT, UNAUDITED AND EXPERIMENTAL. PROCEED WITH CAUTION.
- MockBCT: 0xEE35A17d801bEb3cED0FC2059AE503aB34c96BE1
- Lifeforms: 0xcFa19ab9c4A9dFc7F3970d3178E4a231fF28AC54
- OpenSea
Voluntary carbon markets enable individuals and organisations to offset their CO2 emissions outside of regulatory regimes by purchasing carbon offsets that were created through the voluntary markets. Toucan enables users of the Polygon network to bridge legacy carbon credits on-chain from the off-chain Verra registry. All metadata about the carbon credit is transferred on-chain as an TCO2 NFT. Through the concept of Carbon Pools multiple project-specific tokenized carbon tonnes are bundled together into a more liquid carbon index token called BCT. To give you some perspective, to capture 1 tonne of CO2 per year you need around 50 trees.
Because BCT is a fungible and freely tradable ERC20-token projects can create artificial on-chain demand through innovative gamified locking mechanisms. One such project is KlimaDAO, a fork of the popular Olympus Protocol designed to capture carbon inside its treasury.
Lifeforms
is an attempt at a different kind of locking mechanism. By directly tying the visual fidelity of the NFT to the amount of BCT tokens deposited into the NFT, users are incentivised to bind semi-permanently BCT tokens to their NFTs.
A Lifeform
with 0 BCT deposited
A Lifeform
with 1500 BCT deposited
This on-chain demand is directly reflected - be it on a micro-scale - in the real world. If the price of BCT goes up the traditional off-chain carbon credit market is incentivised to permanently retire more of their carbon credits and bring them on chain. This in turn creates more demand for projects in the real world to be developed that bring forth these carbon credits.
After approving with approveToken
users deposit BCT tokens into the Lifeforms
contract address using depositToken
. Internally a balance is tied to the tokenId
instead of the address the user deposited the tokens with. When the NFT is transferred the tokenBalance
remains tied to the tokenId
meaning the BCT tokens remain tied to the NFT, not the depositor. If the user desires they can withdraw their deposited BCT tokens at any time using the withdrawToken
method except after the NFT itself has been transferred already. By calling tokenURI
(free) you dynamically construct the SVG and metadata to reflect its current balance with the according level of visual fidelity.
The artwork is composed as an on-chain SVG
on mint and is dynamically updated to reflect the current BCT balance of the NFT whenever the user deposits into or withdraws BCT tokens from the NFT.
These contracts were inspired by or directly modified from many sources, primarily: