How it works

NOTE: This doc is WIP
Summary (TL;DR 👉)
In summary, the credits issued by CarbonRegistry are registered on Polygon as ERC-1155 tokens. Each token represents a credit and includes a VintageData struct that contains information such as serialization, estimated mitigations, and timestamps specific to that credit. It's important to note that the only credits issued by CarbonRegistry are the ones that exist onChain.
Once projects receive validation and approval from Carbon Registry officials, a project contract based on ERC-1155 is generated on Polygon. This contract acts as a collective representation of all the assets or tokens that are minted for the particular project. Presently, these tokens include exPost, exAnte, and retirement certificates, which are in the form of non-fungible tokens (NFTs).
Data Structure:
The data structure of the Project contract is defined as follows:
uint256 public topTokenId;
uint256 public projectId;
uint8 public maxAntePercentage;
string public projectName;
address public contractRegistry;
mapping(uint256 => VintageData) public exPostVintageMapping;
mapping(uint256 => uint256) public exAnteToExPostTokenId;
mapping(uint256 => uint256) public exPostToExAnteTokenId;
mapping(string => uint256) public serializationToExPostTokenIdMapping;
mapping(uint256 => RetirementData) public retirementMapping;
The mappings exPostVintageMapping, exAnteToExPostTokenId, and retirementMapping are used to associate tokens with their corresponding data. When a project is validated, the estimated mitigations for each year/vintage become apparent. These estimations are saved in the contract upon creation, where each vintage estimation is assigned a unique tokenId that references the relevant VintageData using the exPostVintageMapping mapping.
The VintageData struct encapsulates the following information:
struct VintageData {
string serialization;
uint256 estMitigations; // Can change.
uint256 verificationPeriodStart; // Typically 00:00 1. Jan 2023 if the vintage is 2023.
uint256 verificationPeriodEnd; // Typically 23:59 31. Dec 2023 if the vintage is 2023.
uint256 lastVerificationTimestamp; // Represents the timestamp when the last verification report for this vintage initiated the minting of credits on-chain.
Upon successful validation of a project, no credits are minted at the initial stage. However, a contract is established on the Polygon network specifically for the project. Each future credit is assigned a unique token ID within this contract, and credit-specific data (currently referred to as vintage data) is associated with each token ID.
Issuance and minting of new credits:
Project owners who wish to issue credits initiate a credit issuance request through the CarbonRegistry system. This request includes linking a monitoring and verification report. A CarbonRegistry official thoroughly reviews the reports, ensuring that the requested amount of credits aligns with the verified data. Based on this evaluation, the official either approves or declines the request.
Once the "mint new credits" request is approved, the CarbonRegistry carries out the required procedures to mint new tokens that correspond to the token ID of the project's contract. This minting process takes place on the blockchain, ensuring transparency and traceability. As a result, anyone can verify the issuance of new credits by examining the blockchain and confirming the updated token balances linked to the project.
The aforementioned process utilizes blockchain technology and the CarbonRegistry system to establish an auditable and transparent framework for issuing and validating carbon credits. By employing token IDs, data structures, and the oversight of CarbonRegistry officials, the integrity, verifiability, and reliability of the issued credits are ensured. This approach fosters accountability and facilitates the adoption of sustainable practices.
It is important to note that CarbonRegistry relies on the blockchain as the sole authoritative record for registration of issued carbon credits. There is no centralized database for this purpose. Therefore, the credits that exist on the blockchain are the only ones that have been officially issued by CarbonRegistry.