Only this pageAll pages
Powered by GitBook
1 of 62

KlimaDAO

Loading...

Carbon Ecosystem

Loading...

Ecosystem

Loading...

Loading...

Loading...

Economics

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Developers

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Auto Compounder

Loading...

Loading...

DAO

Loading...

Loading...

References

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Get Involved

What is KlimaDAO?

KlimaDAO is an open infrastructure for climate finance, built to address the inefficiencies of global carbon markets.

Today, carbon markets are critical to channeling capital into climate solutions, yet they remain slow, opaque, fragmented, and burdened by trust gaps. These barriers limit liquidity, delay transactions, and make it harder for environmental projects to access fair funding.

KlimaDAO exists to change this.

We provide a rules-based system for pricing, managing, and retiring carbon credits that improves transparency, accelerates market access, and strengthens confidence for all participants.

Klima is protocol.

Klima is a DeFi protocol composed of multiple smart contracts on the Polygon PoS public blockchain. These smart contracts are designed to work together to form a larger protocol with the aim of growing environmental commodity markets on-chain, as a means to efficiently and transparently accelerate climate financing at a global scale.

The Klima protocol issues the $KLIMA token which is utilized by the protocol and its stakeholders to align and incentivize treasury and market development activities.

KLIMA is a token.

$KLIMA is KlimaDAO's native token; an ERC-20 token also deployed on Polygon. Every $KLIMA token is backed by at least one carbon tonne in the KlimaDAO treasury. A new $KLIMA token can only be minted by locking a tonne of digital carbon in the KlimaDAO treasury.

$KLIMA token serves as the gateway to the on-chain environmental markets, and serves multiple purposes for the DAO and its stakeholders:

  • $KLIMA provides the liquidity for on-chain markets via protocol owned liquidity.

  • $KLIMA can be staked to hedge against ecosystem inflation.

  • $KLIMA is the primary mechanism for the treasury to acquire digital carbon (referred to as “reserve assets”) and liquidity (referred to as “assets”).

  • $KLIMA can be used to redeem and retire digital carbon via the and .

Klima is a DAO.

KlimaDAO is a Decentralized Autonomous Organization (DAO): a social coordination layer, where the success of its mission is determined by how you and other participants affect it and get involved. Its treasury, liquidity and smart contracts are controlled by its token holders and contributors. It is underpinned by its , which exist to drive effective participation and engagement, priming KlimaDAO to solve precisely the type of coordination failure that has compromised our planet’s climate and ecosystems.

KlimaDAO is built for the market

Addressing coordination failure means bringing together diverse actors and enabling them to fulfil their objectives by enabling them to leverage KlimaDAO's technology and its treasury. Since launching in 2021, KlimaDAO has developed liquidity pools containing tens of millions of carbon credits, built infrastructure that makes accessing this liquidity, and developed a wealth of resources and tooling designed to enable users to participate in its mission.

Key user groups fall under five broad categories:

Governance

DCM stakeholders can leverage the DAO as a coordination engine. The journey starts with – as the $KLIMA token can be used to participate in KlimaDAO’s , deciding on KlimaDAO’s allocation of its Treasury and its market-making capabilities. Users can navigate to the , to take part in this consensus-forming process.

Infrastructure

Users can leverage KlimaDAO’s native tooling to navigate the Carbon Market (CM) and its opportunities. Users can purchase $KLIMA to access environmental assets, hold $KLIMA to offset future emissions, use $KLIMA to retire credits and drive environmental impact, and navigate the DCM using .

Ecosystem

With people continuing to build on top of KlimaDAO’s underlying open base layer, users can navigate their way through the different applications and DCM services available via the Ecosystem hub.

Builders

KlimaDAO’s tools enable builders to integrate digital carbon into any application: this is where you will find what you need to get started on that journey and to get support from the DAO.

Resources

The ever-growing documentation and provides you with the content you need, whether you’re looking for expertise and insights, guidance and education, or updates and announcements.

retirement aggregator
retirement bonds
governance process
acquiring $KLIMA
governance process
Forum
DAO
Klima Data
Ecosystem
Developers
Resources hub

Use Cases and Value Proposition

Klima Protocol provides a blockchain-based capital system purpose-built for carbon markets.

At its core, Klima Protocol exists to serve two foundational objectives:

  • Transparent carbon pricing – so that project developers are not undersold and buyers access the market efficiently with verifiable, real-time pricing.

  • Access to carbon markets – by abstracting away fragmentation, intermediaries, and complexity, Klima serves as a decentralized counterparty for both buyers and sellers, making climate action programmable and accessible at scale.

Value Proposition

Carbon Market Infrastructure

Klima Protocol serves as a capital, liquidity, and execution layer for tokenized carbon markets. It introduces a formal mechanism for:

  • Onchain carbon asset pricing based on collective governance and market signals;

  • Frictionless market access – instant settlement, token-based capital flows, and self-custody trading of carbon assets;

  • Smart contract execution that eliminates intermediaries, reduces overhead, and enables capital-efficient operations across carbon supply and demand;

  • 24/7 carbon index (ETF) that allows economic actors to be exposed to the spot and forwards (ex-ante) carbon markets.

Utility Layer for Tokenized Carbon

Klima 2.0 is designed for composability. It allows stakeholders to directly interface with the protocol across multiple functions:

  • Governance: Token holders vote on which carbon classes are supported and how they’re weighted in the portfolio;

  • Liquidity provisioning: Stakeholders contribute capital to carbon-backed liquidity pools and receive dynamic yield based on system parameters;

  • Programmable infrastructure: Developers and integrators can leverage Klima’s smart contracts, Retirement Aggregator, and retirement tools to build carbon-enabled products and services.

These components form an infrastructure and economic layer that transforms how capital and carbon interact, turning passive carbon exposure into an actively governed, yield-generating market structure.

Diverse Ecosystem of Carbon Market Actors

Klima 2.0 is designed to serve a diverse ecosystem of carbon market actors: each with their incentives, infrastructure needs, and touchpoints with the protocol. This guide helps map user types to the protocol’s features and value.

Core Users: Who We Serve

Other Strategic Participants:

Core Users


Project Developers

Why?

Monetize carbon credits transparently and efficiently.

What?

Sell spot and forward carbon credits to the Klima Portfolio. Participate in governance via whitelisting.

How?

List credits through Klima Protocol’s App or API and receive tokenized consideration. Vote with $kVCM / $K2 to shape market preferences.


Traders / Wholesalers

Why?

Acquire or liquidate carbon as part of their operations.

What?

  • Use Klima Protocol as a counterparty for carbon credit supply

  • Access liquidity, priced in real-time, to service customer retirement demand without taking inventory risk on their books.

How?

By selling carbon to the protocol via Klima Protocol’s App, or using $kVCM to acquire carbon credit retirements.


Carbon Retailers

Why?

Access a diverse, liquid carbon supply without inventory risk.

What?

Source real-time retirements using Klima’s Retirement Aggregator. Integrate pricing and proof into retail flows.

How?

Directly integrating with Klima Protocol via its smart contracts.

Other Strategic Participants


Corporate Buyers (SMEs to Large Enterprises)

Why?

Efficient access to transparently priced carbon credits in service of ESG objectives.

What?

  • Directly access carbon credits to service their Scope 1, 2, and 3 carbon footprints.

  • Have confidence and trust around carbon credit pricing, with reduced market intermediation.

  • Access diverse carbon credit types, defined with Klima’s carbon classes.

How?

Through the Klima UI, by retiring carbon credits with the $K2 token.


Institutions – Carbon Sector

Why?

Influence the Klima Protocol

What?

  • Utilise the Protocol as a tool for influence over the carbon markets, by influencing carbon pricing and supply;

  • Access transparent Protocol data to understand carbon credit pricing and retirement trends, and understand the VCM userbase;

  • As appropriate, influence the Protocol’s carbon pricing and supply by participating in governance.

How?

Accessing data dashboards, as appropriate, and interacting with Protocol via its UI.


Institutions – Financial / ESG Investors

Why?

Direct participation in the RWA, in both passive and direct ways.

What?

  • Active:

    • Participate directly in Klima Protocol’s carbon economy

    • Provide liquidity within Klima’s liquidity pools.

  • Passive:

How?

Via the secondary market, by utilising $kVCM or $K2 positions via the Klima Protocol UI.


DeFi Protocols & DAOs

Why?

Build climate-aligned onchain strategies. What?

  • Offset protocol or community activities.

  • Utilise carbon as collateral for their strategies.

  • Build sustainable DeFi solutions using Klima primitives

How?

With Klima’s staking contracts, LP positions, and treasury-compatible allocation flows.

Carbon Pools

What is a Carbon Pool?

The carbon markets are incredibly diverse, with thousands of projects from across different jurisdictions, methodologies and vintages. Project-specific tokenized carbon tonnes such as TCO2 or C3T tokens can functionally represent any of these carbon credits. Standardizing these markets can enable the development of liquidity and more efficient markets, and this is the role of on-chain carbon pools.

Carbon Pools bundle multiple project-specific tokenized carbon tonnes into more liquid carbon index tokens, enabling price discovery for different classes of carbon assets.

Each TCO2

or
C3T
can be locked into the carbon pools in exchange for an ERC-20 token such as
BCT, UBO, NCT or NBO
.
BCT
and the tokenized carbon tokens within the pools are therefore carbon index tokens, based on various credits from multiple projects.

Each Carbon Pool has its own gating criteria — such as methodology or vintage date — which determines if the project-specific tokenized carbon tonne is eligible. Carbon Pool tokens such as BCT or NBO can be spent to redeem carbon tokens from within their respective carbon pools at a 1:1 rate. Typically, Carbon Pools charge a selective redemption fee to allow you to select a specific carbon token to redeem from the pool.

Benefits of Carbon Pools

Carbon Pools provide a number of benefits to the digital carbon market, enhancing project-specific tokenized carbon credits:

  • Quality Assurance through Gating: Rigorous selection criteria ensure projects meet stringent quality standards for emissions reduction, methodology, and social impact, guaranteeing participants they are supporting verified, high-impact initiatives. Carbon pools make it easy for market participants to evaluate the relative quality of carbon credits compared to carbon pool tokens.

  • Diversification through Variety: Carbon pools group diverse projects across sectors and geographies, offering participants exposure to a wider range of environmental solutions, reducing risk and maximizing impact.

  • Simplified Access, Amplified Action: Pools aggregate multiple projects into single tokenized units (e.g., Base Carbon Tonnes), removing complexities and offering streamlined entry points for individuals and smaller entities, democratizing access and driving broader participation in climate action.

  • Standardization Fuels Liquidity: Carbon pools achieve uniformity through established standards, allowing for the creation of fungible tokens (e.g., BCTs) representing verified emissions reductions. This standardization facilitates the formation of a single liquidity pool, where fractionalized token ownership enables easier buying, selling, and trading. This increased liquidity benefits all participants, offering flexibility and efficiency in the carbon offset market.

Klima Carbon Pools

Explore data related to the BCT Pool on Klima Data

BCT

View on Polygonscan

Pool Specification and Gating Criteria

Base Carbon Tonne (BCT) BCT is a carbon pool governed by KlimaDAO, which accepts any TCO2, independent of project type verified by Verra that has vintage later than 2008. BCT was developed for the launch of KlimaDAO, and as of KIP-57 is managed and owned by KlimaDAO.

Toucan Carbon Pools

Explore data related to the NCT Pool on Klima Data

Toucan Carbon Pools accept TCO2 tokens and issue their respective ERC-20 pool tokens.

NCT

View on Polygonscan

Pool Specification and Gating Criteria

NCT (Nature-Based Carbon Tonne) is a Toucan Protocol carbon pool, which accepts TCO2 from nature-based methodologies with a minimum vintage of 2012 or later.

C3 Carbon Pools

Explore data related to UBO and NBO on Klima Data

C3 Carbon Pools accept C3T tokens and issue their respective ERC-20 pool tokens.

UBO

View on Polygonscan

Pool specification and Gating Criteria

Universal Basic Offsets (UBO), is the widest criteria carbon token, accepting most VCS and GS methodologies for credits issued from 2014 onwards.

NBO

View on Polygonscan

Pool specification and Gating Criteria

Natured Based Offset (NBO), is an Nature-based offset index accepting all VCS and GS methodologies characterized as NCS, including REDD+, IFM, and those with VCS or GS certification utilizing CDM-based forestry methodologies such as AR-AM0014. Vintage of 2014 onwards.

Acquire $kVCM and $K2 tokens as part of their general strategies.

Project Developers
Traders & Wholesalers
Carbon Retailers
Corporate Buyers
Institutional Capital (Carbon & ESG)
DeFi Protocols & DAOs

Contracts

Digital Carbon

Why build on the blockchain?

Carbon credits on public blockchains are identical to those held on off-chain databases, however, their presence on the blockchain allows the credits themselves to yield a number of advantages to their users. Foremost, all credits on public blockchains can be transparently traced, every trade and retirement can be validated and viewed by market stakeholders, this reduces information asymetry within the market and enables the market to build trust. Furthermore, credits on the blockchain can be leveraged by Web3 protocols and applications - allowing the carbon itself to become programmable and composable; to become a 'money Lego' – this can in-turn empower new use-cases, and ultimately drive innovations that will increase scale and efficiency within these critical markets.

Explore the Digital Carbon Market with the KlimaDAO Digital Carbon Market dashboard.

Carbon Projects

What is a carbon credit?

Carbon credits are issued by Carbon Standards (such as Verra and Gold Standard) on behalf of verified carbon projects that can demonstrably remove or avoid greenhouse gas emissions. This includes initiatives like renewable energy, forest conservation and regeneration, soil carbon enhancement, and industrial emission capture. Issued carbon credits are traded in the market and retired (or "offset"), often by corporate users; carbon credits therefore function as a financial incentive for those developing the carbon projects.

Carbon dioxide equivalent" (CO2e) is a metric that aggregates the impact of various greenhouse gases into a single measure, based on their Global Warming Potential (GWP). GWP is a concept designed to compare the effects of different gases on global warming. It quantifies the amount of heat trapped by the emissions of 1 tonne of a gas over a specific period, in comparison to 1 tonne of carbon dioxide (CO2). For example, the warming effect of methane is approximately 28 times greater than that of CO2.

What are carbon markets?

There are both compliance markets and voluntary carbon market (VCM) where carbon credits are traded actively as a means to finance sustainability projects.

Voluntary carbon market (VCM): Businesses and individuals driven by sustainability goals can choose to offset their emissions. Traditionally, they would purchase credits from various projects through carbon registries such as , , , , and etc. not linked to specific state-mandated compliance schemes.

In the voluntary markets, carbon projects are required to follow specific methodology standards and are subjected to a strong verification process from carbon credit registries to ensure credit quality and impact.

Compliance market: These operate under mandatory government regulations like cap-and-trade systems in Europe, California, or Colombia. Entities exceeding their allocated emission limits must purchase credits from verified projects to comply. Such credits are issued and tracked through government-sanctioned registries.

The role of blockchain-enabled markets

The VCM has been around for decades and has become an integral mechanism for raising climate finance. It has however had its growth inhibited due to difficulties relating to market accessibility, transparency, illiquidity and high transaction fees. KlimaDAO any many others within the Web3 ecosystem aim to develop new technologies and governance mechanisms which leverage the blockchain for the carbon markets, that avail market participants with the benefits of open-source, distributed infrastructure.

What are examples of carbon projects?

  1. Nature-based carbon sequestration. Biological sequestration absorbs CO2 emissions through the growth of vegetation and the continued storage of some of the carbon in plant tissues and organic materials derived from plant tissues (e.g. stored in the soil). An example project is the . Other examples include biochar (long term carbon storage from biological sources), and afforestation initiatives (e.g. tree planting on degraded landscapes).

  2. Renewable energy. Renewable Energy projects include hydro, wind, and photovoltaic solar power, solar hot water and biomass power and heat production. Many renewable energy projects have high up-front capital costs, although they may offer high rates of return, and their operating costs are often minimal once built. Carbon credits help support these projects by providing an additional revenue stream to offset their high up-front capital costs. This is an example and helps reduce 182,016 tons of carbon dioxide equivalent a year by replacing polluting fossil fuel power plants.

  3. Methane capture

Carbon Credit Tokenization

In order to make use of carbon credits on the blockchain as digital carbon, carbon credits must be "tokenized" or bridged onto the blockchain from a traditional carbon registry via a carbon bridge. Tokenization allows the integrity of the carbon credits that have been issued in accordance with rigorous carbon standards to be maintained, but for them to benefit from the market infrastructure develop on the blockchain.

While the technical details of each bridge may differ, the process of bridging and tokenizing carbon credits is generally similar. Carbon credit holders (such as project developers, traders, and corporates) can initiate the bridging process by submitting verified carbon credits to their chosen bridge. Upon successful transfer, the bridge seamlessly tokenizes the credits, translating each verified tonne of carbon into a unique digital token on the blockchain. Key characteristics of the carbon credits are brought on-chain when it is transformed into a tokenized digital carbon credit, including:

  • Project Name

  • Serial Number

  • Project type (renewable energy, forest carbon project, blue carbon, etc.)

  • Vintage Year

This process ensures users can always verify the integrity and provenance of the credit.

Carbon Bridges

Carbon bridges serve as a vital link connecting traditional carbon registries with blockchains.

Toucan

Toucan carbon tokens (TCO2) is the general term for fungible tokenized carbon credits bridged via Toucan. When you fractionalize a BatchNFT received after bridging, the resulting TCO2 ERC20 token will have TCO2- as a prefix, followed by an information-rich name that includes the registry of origin, the project, the vintage, and so on. More information on the tokenization process can be found in the .

C3

C3 supports carbon credits from the leading ICROA-endorsed carbon standards including Gold Standard, Verra, American Carbon Registry and Climate Action Reserve methodologies which enable carbon removal.

C3 Tonne (C3T) is the general term for fungible tokenized carbon credits bridged via C3. When you fractionalize the C3VCU NFT received after bridging, the resulting C3T ERC20 token will have C3T- as a prefix, followed by an information-rich name that includes the registry of origin, the project, and the vintage. More information on the tokenization process can be found in the .

Moss

Moss carbon tokens (MCO2) is the term for fungible tokenized carbon credits bridged via Moss. More info about MCO2 can be found on the .

Additional resources

Explore the Digital Carbon Market with the .

Bug Bounty

Standing bug bounty for exploits and vulnerabilities in KlimaDAO systems that would place user, treasury or DAO wallet funds at risk.

The Klima token holder community voted to implement a bug bounty in .

If you believe that you have identified a bug or vulnerability, please send details and instructions to reproduce to .

Reference the full text of KIP-2 linked above for details and eligibility criteria of the bounty program.

Purpose

$KLIMA is designed as a token central to providing liquidity in the carbon market. It plays a pivotal role in the Carbon Market (CM) by acting as a means of exchange and de-facto index of carbon projects.

DAO Wallet

The DAO wallet is an address guarded by a simple Gnosis safe implementation. The DAO wallet holds all the DAO funds accumulated over time.

Access to the DAO wallet is controlled by a 3 of 5 multi-sig held by members of the core team.

  • V1:

KIP-2, with the vote closing on November 20, 2021
[email protected]
Means of Exchange
Store of Value
Unit of Account
0x65a5076c0ba74e5f3e069995dc3dab9d197d995c

Means of Exchange

At its core, a currency's role as a means of exchange is fundamental to its utility and value within any economic system. This function allows it to facilitate transactions by serving as an intermediary instrument that can be traded for goods, services, or other assets. Being a means of exchange is crucial because it enables economic participants to overcome the inefficiencies of barter systems, where a mutual coincidence of wants is required. Instead, with a universally accepted medium, transactions become smoother, markets become more efficient, and the scope for economic activity broadens significantly.

Importance of Being a Means of Exchange for KLIMA

For KLIMA, acting as a means of exchange within the environmental markets, particularly in the carbon economy, is vital. It signifies that KLIMA is not just another digital asset but a functional currency that can be used to conduct transactions seamlessly across a network of participants. This role is pivotal for several reasons:

  • Market Efficiency: By facilitating easy and efficient transactions, KLIMA helps streamline the market for carbon credits, making it more accessible and liquid. This efficiency is crucial for the growth and effectiveness of the carbon market, enabling more participants to engage in carbon trading and offsetting activities.

  • Economic Activity: As a means of exchange, KLIMA supports a wide range of economic activities within the environmental sector, from funding green projects to trading in carbon credits. This versatility enhances the token's utility and demand, driving its adoption across different market segments.

  • Value Stability: The more widely accepted and used KLIMA becomes as a means of exchange, the more stable its value is likely to be. A currency that is actively used for transactions tends to have a more predictable demand, contributing to its stability and reliability as a store of value.

Integration with Liquidity Pools

The existence of KLIMA/CARBON and KLIMA/USDC pools is central to KLIMA's effectiveness as a means of exchange. These pools allow for the exchange of KLIMA for carbon credits or USDC, thereby enabling participants in the environmental markets to easily trade, offset carbon emissions, or leverage KLIMA for other financial activities. The liquidity in these pools ensures that transactions can occur without significant slippage, making KLIMA a reliable medium through which market participants can engage with the carbon economy.

Effectiveness and Performance

So far, KLIMA has shown promise in its role as a means of exchange, transacting over $4billion in transactions through its pools to date. By providing liquidity and facilitating transactions in the carbon market, it has contributed to the increased accessibility and fluidity of environmental assets. This has not only helped in streamlining the process of buying and selling carbon credits but also in enhancing the overall efficiency of the carbon market.

However, the effectiveness of KLIMA as a means of exchange can be further improved. One area for enhancement is the depth and stability of its liquidity pools. Ensuring that these pools can accommodate larger transactions without impacting the market price of KLIMA significantly will make it an even more attractive medium of exchange. Additionally, expanding the variety and reach of KLIMA/CARBON pools could improve its utility by catering to a broader range of carbon credits and environmental projects.

Pathways for Improvement

To enhance its role as a means of exchange, KLIMA could focus on several strategic initiatives:

  • Deepening Liquidity: By securing more protocol-owned liquidity and encouraging broader participation in its liquidity pools, KLIMA can improve its capacity to facilitate larger transactions more efficiently.

  • Expanding Pool Variety: Introducing more KLIMA/CARBON pools for different types of carbon credits can cater to a wider array of market needs, making KLIMA a more versatile means of exchange.

  • Enhancing User Experience: Simplifying the process of engaging with KLIMA and its associated pools can lower the barrier to entry for new participants, thereby increasing the volume and frequency of transactions.

In conclusion, while KLIMA has effectively served as a means of exchange within the environmental markets, there is potential for further optimization. By focusing on liquidity, asset diversity, and user accessibility, KLIMA can strengthen its position as a pivotal currency in the carbon economy, facilitating more efficient and widespread adoption of carbon offsetting and trading activities.

Overview

Data SourcesContractsDeployment AddressesGuidesIntegration Examples

Operational Mechanics

Dynamics

Guides

. Methane’s global warming potential is about 28 times greater than that of CO2, and thus preventing methane emissions can have significant environmental benefits. Methane is emitted by landfills, during wastewater treatment, in natural gas and petroleum systems, from agricultural activities (livestock and rice cultivation), and during coal mining. Methane is basically ‘natural gas’ and can therefore be captured and used as a source of energy. Such projects include those that capture and purify methane in wastewater treatment plants or landfills and use it for electricity production or the production of another form of energy. The
project in California, USA is an example project that captures methane from a dairy farm and uses it for energy.
  • Energy Efficiency and Impact. The types of projects which would qualify for the EEIMP pool include clean cookstoves, clean drinking water, and small biogas plants. KlimaDAO ratified 250,000 USDC in funding to support the development of the Improved Cookstoves project in Bangladesh in collaboration with SCB Group. The funding enables the issuance of 31,250 Gold Standard certified carbon credits between 2023 and 2025, with the goal of providing liquidity for consumers within the Digital Carbon Market (DCM) on the Polygon blockchain.

  • Verification Standard
    Verra
    Gold Standard
    Puro Registry
    American Carbon Registry (ACR)
    Climate Action Reserve (CAR)
    restoration of degraded mangrove landscapes in Myanmar
    wind energy power project in India
    Website
    Toucan docs
    Website
    C3 docs
    Website
    MCO2 page
    KlimaDAO Digital Carbon Market dashboard
    West Star North Dairy

    Overview

    $KLIMA is designed as a utility token, central to providing liquidity in the carbon market. It plays a pivotal role in the Carbon Market (CM) by acting as a means of exchange and index of carbon projects.

    This section outlines the operational mechanics, the dynamics, and the purpose of $KLIMA.

    Operational mechanics:

    1. Intrinsic value

    2. Protocol Owned Liquidity (POL)

    Retirement Aggregator

    KlimaDAO's Retirement Aggregator acts as a convenient and powerful tool for seamlessly retiring carbon credits on the blockchain. It streamlines the process by allowing you to use your choice of payment (such as USDC or KLIMA) to purchase, redeem, and retire carbon in various ways including specific project tokens, different types of carbon pool tokens, listings on the Carbonmark marketplace, and even retirement bonds (when capacity is available).

    This eliminates the need to navigate individual carbon token protocols or carbon pool mechanics and ensures accurate tracking and verification of your carbon retirement efforts. Essentially, the Retirement Aggregator simplifies carbon credit retirement for users while promoting transparency and efficiency within the KlimaDAO ecosystem.

    The easiest way for the average user to try out the Retirement Aggregator is via Carbonmark. This simplifies the process even further, allowing you browse to seamlessly access the aggregator's features within a familiar user interface.

    Technical details

    The Retirement Aggregator is powered by a series of smart contracts on Polygon. Below are more resources to learn about the technical details of how the aggregator functions and how you can integrate it into your smart contract or application:

    Staking

    Staking

    The Staking contract accepts KLIMA for staking and returns sKLIMA, and accepts sKLIMA for unstaking, returning KLIMA. It also manages the warmup period to ensure stakers only receive rewards after their warmup period has expired (if the warmup period is longer than 0 epochs).

    • V1: 0x25d28a24Ceb6F81015bB0b2007D795ACAc411b4d

    StakingHelper

    Utility contract that wraps functionality form the Staking contract for ease-of-use.

    • V1:

    Distributor

    The distributor contract receives minted KLIMA from the treasury in order to drip-feed rewards to stakers. Note that the reward rate determines the rebase rate and that the rebase rate determines the . Below are listed distributor contracts by version, where the latest version represents the currently active contract.

    • V1:

    Automation

    Documentation for automated smart contract function calls and other key pieces of automation maintained by KlimaDAO

    Automated BCT Fee Burn

    After taking ownership of the BCT pool via KIP-57, KlimaDAO implemented an automated mechanism for burning accumulated selective redemption fees from the BCT pool using Gelato:

    • https://app.gelato.network/functions/task/0x2fdd3f4b9690948246a91c383bce45b50b0cd6637f0b5d420905f82d43dfe3c9:137

    Sushi Green Fee Periodic Retirement

    To power the functionality, a Chainlink Keeper periodically trigger a carbon credit retirement using accumulated fees.

    Intrinsic Value

    The intrinsic value (IV) of the KLIMA token is a fundamental operational mechanic that underpins its role as an algorithmic reserve currency for environmental markets. This section delves into the principles and implications of the intrinsic value that each KLIMA token holds.

    At a minimum,

    Foundation of Intrinsic Value

    At the core of KLIMA's design is the principle that every token is backed by at least one carbon tonne. This backing not only establishes a tangible value for the token but also aligns KLIMA's utility with environmental sustainability efforts. The KLIMA treasury, holding tonnes from hundreds of diverse carbon offset projects, acts as a de-facto index of carbon projects. This unique feature ensures that the value of KLIMA is directly connected to a broad spectrum of environmental initiatives, reflecting the health and diversity of the carbon market.

    Axioms of Intrinsic Value

    1. Guaranteed Minimum Value: The intrinsic value provides a guaranteed price floor for the KLIMA token, ensuring that there is always a minimum value associated with each token. This floor is established by the backing of at least one carbon tonne per KLIMA, setting a tangible benchmark for its value.

    Store of Value

    A good store of value is an asset that maintains its worth over time without depreciating. For an asset to be considered a reliable store of value, it must possess several key characteristics:

    Characteristics of a Good Store of Value

    • Durability: The asset should withstand physical and economic changes over time, maintaining its value across generations.

    The Role of KlimaDAO

    The role of KlimaDAO is multi-facted. KlimaDAO...

    Manages $KLIMA

    • KlimaDAO designed $KLIMA: a utility token, central to providing liquidity in the carbon market. It plays a pivotal role in the Carbon Market (CM) by acting as a means of exchange and index of carbon projects.

    Bridge-Specific Tooling

    Some of the following functions allow for direct retirement of bridge-specific project tokens. Others are simply wrappers for common functions found within their protocols such as redeeming tokens from a pool. Note that the Moss bridge is absemt because it does not currently support specific retirement or redemption.

    Toucan

    Supply Expansion

    The dynamics of KLIMA's supply expansion are designed to ensure the token's resilience and its harmonious growth alongside the Carbon Market (CM). Central to this approach is , the proposal to align the Annual KLIMA Rate (AKR) with the growth rate of the CM, encapsulated by the straightforward equation:

    The Significance of Supply Expansion

    Protocol Owned Liquidity (POL)

    Understanding Liquidity in Markets

    Liquidity is the lifeblood of any efficient market, enabling seamless trades without significantly affecting the asset's price. Traditional carbon markets often operate over-the-counter (OTC), predominantly featuring ask prices with limited visibility on bids. This structure can lead to inefficiencies, including price opacity, large price spreads, and illiquidity. In contrast, the KLIMA token, through its integration with Automated Market Makers (AMMs), actively participates in both bidding and asking across narrow price spreads, enabling a transparent and fluid market environment.

    In decentralized finance (DeFi), liquidity is facilitated differently than in traditional markets. Platforms like Uniswap and Sushiswap have pioneered the use of on-chain Liquidity Pools (LPs), which are smart contracts containing pairs of assets, such as KLIMA and USDC. The principle of X*Y = K underpins these liquidity pools, ensuring that the product of the quantities of the two assets remains constant, thereby defining the relationship between supply and demand.

    KLIMA connects environmental assets with on-chain financial primitives that can scale environmental markets via liquid and transparent market infrastructure.

    Enhancements with Concentrated Liquidity Uniswap's introduction of concentrated liquidity functionality marks a significant advancement in capital efficiency within AMMs. This innovation allows liquidity providers to allocate their capital to specific price ranges, maximizing capital efficiency and enabling more strategic liquidity management. This feature is particularly beneficial in optimizing the liquidity of KLIMA/CARBON pools, ensuring that capital is utilized where it's most needed, thereby reducing slippage and enhancing market stability.

    Fungible Carbon Credits

    The Foundation of Carbon Markets

    Klima's approach to carbon markets involves the use of , which are essential in creating a liquid, accessible, and efficient market for carbon credits. These pools are formed by tokenizing individual carbon projects as ERC-721 tokens, which are non-fungible tokens (NFTs), which are then aggregated into liquid ERC-20 tokens (if they satisfy the gating criteria), facilitating ease of trade and integration into the broader DeFi ecosystem. This section outlines the structure, gating criteria, and strategic importance of these carbon pools within Klima's ecosystem.

    Gating Criteria for Carbon Pools

    Gating criteria are designed to homogenize a heterogeneous market, bundling illiquid instruments into a deeply liquid pool of similar assets to allow for price discovery.

    • BCT (Base Carbon Tonne): Designed as the lowest common denominator of the carbon market, BCT encompasses the widest gating criteria. This broad selection is intended to make BCT a foundational building block for the carbon market, reflecting a wide array of carbon offset projects with varying methodologies and impacts.

    Estimating Carbon Emissions

    Resources for estimating carbon dioxide emissions associated with various activities

    Air Travel

    The most authoritative source for estimated emissions associated with commercial air travel is this calculator from ICAO:

    For private air travel, emissions are substantially higher and highly dependent on the aircraft flown and number of passengers.

    Retirement UI Integration Guide

    Frontend application for retiring tokenized carbon credits

    Query Params

    To facilitate integrations, the KlimaDAO retirement interface supports query parameters to prefill a defined set of arguments.

    Every field can be pre-filled, including selective retirement.

    You can provide multiple arguments for projectToken and these will be automatically filled into the selective retirement fields (and the 'Advanced' dropdown will open itself to reveal them automatically).

    Example URL with all fields filled, and 2 selective project tokens:

    Testing

    The recommended way to test Klima protocol contracts or smart contracts utilizing the is using a forked blockchain testing environment. Popular smart contract development tools such as Foundry or Hardhat allow you to fork the current state of the Polygon blockchain using an RPC. This allows you or your locally deployed contracts to interact with existing contracts as if you were actually on the Polygon mainnet.

    Once you've forked the Polygon mainnet, review existing .

    Translations

    Community members have contributed translated versions of the KlimaDAO GitBook for French, Spanish and German Speakers. Please note that these Books are not updated by the team.

    Treasury

    The treasury contract is a simple vault implementation holding all the funds collected by the protocol. Access to the treasury is secured by a 3 of 5 multisig held by the Core Team.

    Below are listed treasury contracts by version, where the latest version represents the currently active contract.

    • V1:

    Links

    KlimaDAO Official

    💻 🌲 🌍 🏛️ 🗳️ 🐦 💬 📺

    Scarcity: A limited supply is crucial to ensure that the asset does not become too readily available, which would decrease its value.

  • Portability: The asset should be easily transferable or accessible, making it convenient for use as a medium of exchange or for preservation.

  • Divisibility: Being able to divide the asset into smaller units without losing value per unit facilitates its use in transactions of varying sizes.

  • Acceptability: Wide acceptance as a form of value by a large audience enhances the asset's utility as a store of value.

  • Resistance to Inflation: The asset should not be easily devalued by external economic factors, particularly the inflationary pressures that erode purchasing power over time.

  • Dynamics that Contribute to KLIMA as a Store of Value

    KLIMA, as a digital currency tied to the value of carbon credits, embodies several of these characteristics, positioning it as a potential store of value in environmental finance.

    • Scarcity and Controlled Supply: The supply dynamics of KLIMA, governed by the principles of supply expansion in alignment with the growth of the Carbon Market (CM) and supply contraction through retirement bonds, ensure a balanced and controlled supply. This scarcity, especially in the context of a growing demand for carbon offsets and credits, underpins its value over time.

    • Durability through Digital Existence: As a digital asset, KLIMA is not subject to physical degradation. Its blockchain-based infrastructure ensures that it can withstand economic changes, preserving its integrity and utility across time.

    • Portability and Divisibility: KLIMA's digital nature makes it highly portable and divisible, allowing for seamless transactions and exchanges across the globe without loss of value, regardless of the transaction size.

    • Acceptability and Utility: The growing recognition of carbon credits as essential tools for combating climate change enhances KLIMA's acceptability. Its role in facilitating carbon offsetting and trading activities further solidifies its utility and value proposition.

    • Resistance to Inflation: The innovative mechanisms for supply management, particularly the alignment of supply expansion with CM growth and the use of retirement bonds for supply contraction, provide a buffer against inflationary pressures. By ensuring that KLIMA's supply reflects real-world environmental value creation and demand, it maintains its purchasing power.

    • Backing by Tangible Environmental Assets: The carbon backing of KLIMA tokens directly ties its value to tangible environmental assets. This connection not only provides a solid foundation for its value but also aligns it with the growing global emphasis on sustainability and environmental preservation.

    The dynamics of KLIMA, from its supply management strategies to its digital and environmental underpinnings, equip it with the characteristics of a viable store of value. As the world increasingly values sustainability and as the digital finance ecosystem evolves, KLIMA's role and recognition as a store of value are poised to grow, underpinned by its innovative approach to combining environmental impact with economic utility.

    Funds new Carbon Projects
    • Beyond bonding, KlimaDAO also utilizes its treasury to directly fund high-impact carbon removal projects through its governance process, fostering innovation and expanding the scope of solutions available.

    • This commitment ensures a diversified portfolio of offsets while supporting the development of promising new technologies and approaches to combat climate change.

    Provides liquidity for Carbon Pools and listings on Carbonmark

    • KlimaDAO plays a crucial role in enhancing liquidity within the carbon market by contributing to carbon pools on platforms like Toucan Protocol, Moss, or C3.

    • These pools aggregate diverse offsets into standardized units, making them more accessible to individual investors and facilitating smoother trading.

    • Additionally, KlimaDAO supports the listing of its acquired carbon on Carbonmark, the universal carbon marketplace, further promoting market integrity and trust.

    Builds infrastructure for users to acquire and retire digital carbon

    • KlimaDAO recognizes the importance of user-friendly tools and infrastructure. They actively develop and support various initiatives that allow users to easily acquire and retire carbon credits on-chain.

    • The KlimaDAO Retirement Aggregator is smart contract infrastructure allowing users to seamlessly purchase, redeem carbon pool tokens, and retire tokenized carbon credits from various sources using different payment methods. This tool simplifies the process for individuals and organizations to directly contribute to emission reduction efforts.

    Participates in Governance of Carbon Pools and token standards

    • As a decentralized autonomous organization (DAO), KlimaDAO actively participates in shaping the overall ecosystem. This includes governance involvement in various carbon pools and discussions surrounding token standards.

    • Through this engagement, KlimaDAO advocates for transparency, fairness, and community-driven decision-making, ensuring the long-term sustainability and positive impact of the on-chain carbon market.

    Provides tools and data to explore digital carbon markets

    • Recognizing the need for informed participation, KlimaDAO provides essential tools and data for users to navigate the on-chain carbon market.

    • This includes dashboards like Klima Data, analytics, and educational resources that shed light on project impact, offset quality, and market trends.

    • By empowering users with knowledge, KlimaDAO fosters a more informed and engaged community contributing to a healthy and impactful carbon market.

    Fosters an ecosystem of builders

    • KlimaDAO understands that collaboration is key to achieving ambitious goals. It actively cultivates an ecosystem of builders, developers, and innovators passionate about driving positive change through on-chain solutions.

    • By providing grants, resources, and support, KlimaDAO fosters an environment where creativity and innovation thrive, leading to the development of new tools, protocols, and approaches for a more sustainable future.

  • Supply Management: As the steward of the KLIMA token, the protocol functions akin to an algorithmic asset manager, with exclusive authority to mint or burn tokens codified via smart-contracts. This algorithmic control allows for adjustments to the token's supply based on real-time economic data, ensuring its value remains aligned with the intrinsic value and the broader objectives of the carbon market.

  • Implications of Intrinsic Value

    The intrinsic value mechanic ensures that the KLIMA token remains a stable and reliable asset within the carbon market. By directly tying the token's value to tangible environmental assets, KLIMA serves as a bridge between digital finance and real-world sustainability efforts. This foundational principle guarantees that KLIMA's supply and market operations are always conducted with a view towards environmental impact and market stability, ensuring that KLIMA remains an effective tool for liquidity provisioning and a meaningful representation of the carbon credit market.

    KLIMA=BCTKLIMA = BCTKLIMA=BCT
    Fungible Carbon Credits
    Dynamics:
    Supply Expansion
    Supply Contraction
    Green Ratio
    Purpose:
    Means of exchange
    Store of value
    Unit of Account
    Source Code of smart contracts
    Solidity Reference documentation
    Developers section: Retirement
    0x4D70a031Fc76DA6a9bC0C922101A05FA95c3A227
    AKR
    0x4cC7584C3f8FAABf734374ef129dF17c3517e9cB
    Sushi Green Fee
    Market Stability and Liquidity

    Aligning KLIMA's expansion with CM growth ensures market stability by preventing excessive volatility. If KLIMA were to expand too rapidly compared to the CM, it could lead to inflationary pressures, diminishing the token's purchasing power and undermining its role as a store of value. Conversely, if KLIMA's supply grows too slowly, it could lead to deflationary pressures, potentially making transactions within the CM less attractive due to increased cost of entry. By matching the growth rates, KLIMA maintains a balanced supply, contributing to a stable and liquid market where participants can trade efficiently.

    Reflecting Real-World Value

    The alignment also ensures that the supply of KLIMA accurately reflects the real-world value of the underlying carbon assets within the CM. As the market for carbon credits expands, indicating an increase in the value and volume of carbon offsetting projects, KLIMA's supply expansion in tandem signifies that the token remains a faithful representation of this growing market. This correlation is essential for KLIMA's credibility and utility that embodies the value of environmental assets.

    Supporting Market Depth

    As the CM grows, so does the need for a currency that can support an increasing volume of transactions and a broader range of financial activities. The dynamic adjustment of the AKR ensures that KLIMA can meet these needs, providing the market depth necessary for a growing, robust and efficient carbon market.

    Implementing the Dynamic Framework

    KLIMA’s dynamic framework for adjusting the AKR introduces a methodical and responsive mechanism for supply management. By setting initial conditions and parameters for AKR adjustments—such as a minimum AKR, a threshold for adjustment based on CM supply growth divergence, and a gradual implementation period—KLIMA introduces a level of stability and predictability to its supply dynamics. Read more here.

    This framework functions as a "market thermostat," fine-tuning KLIMA's supply in response to the temperature of the CM. Such a mechanism ensures that supply adjustments are both deliberate and gradual, mitigating potential market shocks and allowing participants to adapt to changes in supply with confidence.

    AKR=CMgrowthAKR = CMgrowthAKR=CMgrowth
    KIP-44

    NCT (Nature Carbon Tonne) and NBO (Nature-Based Offsets): These pools are more specialized, focusing on nature-based solutions and only accepting projects that adhere to certain forestry project methodologies. This focus ensures that the credits within these pools meet specific environmental standards and contribute to targeted ecological goals.

    Carbon Pools and Market Dynamics

    Each carbon pool incorporates a pricing mechanism to account for the age and relative value of the tonnes within it. For instance, BCT currently employs a static selective redemption fee, which is admittedly inefficient. Recognizing this, Klima plans to introduce a dynamic redemption fee structure.

    This new model will adjust the fee based on the difference between the selected vintage and the oldest vintage in the pool, potentially incorporating other metrics such as off-chain market prices. This adjustment aims to more accurately capture the delta between the least desirable credit in the pool and the specific credit a user wishes to retire, enhancing market efficiency and intra-pool price discovery.

    Klima has taken a significant step by purchasing ownership of the BCT contract. This move allows Klima to maintain the broad selection criteria of BCT, reinforcing its role as a cornerstone of the carbon market, while optimizing other inefficiencies. Furthermore, it opens up opportunities to create and manage additional carbon pools tailored to different project types and environmental objectives.

    Strategic Importance of Carbon Pools

    Carbon pools serve as the critical mechanism enabling carbon projects to access liquid markets, with AMMs acting as the pivotal market makers that address distribution challenges at scale. Through POL of these carbon pools and distribution via AMMs, Klima effectively possesses the most efficient back-office operation in environmental markets. This streamlined approach not only enhances market liquidity but also ensures that environmental assets are managed with unparalleled efficiency, driving broader adoption and impact.

    carbon pools
    Personal Annual Emissions

    Based on widely available statistics for many countries, it is possible for individual consumers to estimate their emissions by filling in details about their lifestyle into a form like these:

    • General-purpose global calculator: https://www.carbonfootprint.com/calculator.aspx

    • Official USA EPA calculator for US-based individuals: https://www3.epa.gov/carbon-footprint-calculator/

    On-Chain Transactions

    • carbon.fyi is an easy-to-use interface for estimating emission from Ethereum mainnet transactions

      • NOTE: emissions are approximately 0 since the Merge, only 800 tonnes annually for the entire network, so addresses with no pre-merge transactions will show 0 emissions

      • KlimaDAO has also developed a Dune query suitable for estimating emissions from an arbitrarily large batch of addresses, based on the same emissions estimate as carbon.fyi here: https://dune.com/queries/1582379

    https://applications.icao.int/icec/Home/Index
    If you prefer to make use of the Mumbai Testnet, see this constants file in our public frontend repository for a complete listing of the testnet contract addresses.
    Klima Retirement Aggregator
    Foundry Forge Forked Testing docs
    Hardhat Forking docs
    contract deployment addresses
    Spanish Translation
    French Translation
    German Translation
    0x7Dd4f0B986F032A44F913BF92c9e8b7c17D77aD7
    Ecosystem
    • The Evolution Of Trust

    • Toucan Protocol Docs

    Website
    App
    Carbon Dashboard
    Governance Forum
    Snapshot Voting
    Twitter
    Discord
    YouTube
    C3
    function toucanRetireExactTCO2WithEntity(
            address carbonToken,
            uint256 amount,
            string memory retiringEntityString,
            address beneficiaryAddress,
            string memory beneficiaryString,
            string memory retirementMessage,
            LibTransfer.From fromMode
        ) external nonReentrant returns (uint256 retirementIndex)
    function toucanRedeemPoolDefault(
            address poolToken,
            uint256 amount,
            LibTransfer.From fromMode,
            LibTransfer.To toMode
        ) external nonReentrant returns (address[] memory projectTokens, uint256[] memory amounts) 
    function toucanRedeemPoolSpecific(
            address poolToken,
            address[] memory projectTokens,
            uint256[] memory amounts,
            LibTransfer.From fromMode,
            LibTransfer.To toMode
        ) external nonReentrant returns (uint256[] memory redeemedAmounts)

    Original pull request implementing this feature for reference.

      quantity, // 1.23
      inputToken, // "bct" | "nct" | "mco2" | "usdc" | "klima" | "sklima" | "wsklima";
      retirementToken, // "bct" | "nct" | "mco2";
      beneficiary, // John Doe
      beneficiaryAddress, // 0x12345678912345678912345678912345678912345
      message, // Hello world
      projectTokens  // 0x12345678912345678912345678912345678912345
    https://app.klimadao.finance/#/offset
      ?quantity=123
      &inputToken=klima
      &retirementToken=mco2
      &projectTokens=0x1234
      &projectTokens=0x5678
      &beneficiary=The%20Devs
      &beneficiaryAddress=0x123
      &message=Thanks%20devs!
    function c3RetireExactC3TWithEntity(
            address carbonToken,
            uint256 amount,
            string memory retiringEntityString,
            address beneficiaryAddress,
            string memory beneficiaryString,
            string memory retirementMessage,
            LibTransfer.From fromMode
        ) external nonReentrant returns (uint256 retirementIndex)
    function c3RedeemPoolDefault(
            address poolToken,
            uint256 amount,
            LibTransfer.From fromMode,
            LibTransfer.To toMode
        ) external nonReentrant returns (address[] memory projectTokens, uint256[] memory amounts)
    function c3RedeemPoolSpecific(
            address poolToken,
            address[] memory projectTokens,
            uint256[] memory amounts,
            LibTransfer.From fromMode,
            LibTransfer.To toMode
        ) external nonReentrant returns (uint256[] memory redeemedAmounts)

    KLIMA has launched a pool on Sushiswap, where users can optionally toggle a “green fee” that will automatically make a transaction carbon neutral.

    KLIMA has also launched a concentrated liquidity pool on Uniswap, augmenting the liquidity on Sushiswap and allowing for more capital efficient transactions.

    KLIMA/CARBON Liquidity Pools

    KLIMA has six primary KLIMA/CARBON liquidity pools, and more will be constructed as carbon continues to be tokenized.

    • KLIMA/BCT,

    • KLIMA/NCT,

    • KLIMA/UBO,

    • KLIMA/NBO,

    • , and

    Along with the primary KLIMA/USDC pool.

    These pools are crucial for creating a liquid on-chain market for carbon assets, allowing for efficient trading and price discovery. By supporting liquidity across multiple carbon tokens, Klima not only supports a broad range of environmental projects but also enhances the resilience and depth of the market.

    Conclusion

    The strategic management of Protocol Owned Liquidity (POL) and the adoption of concentrated liquidity functionality represent significant advancements in Klima’'s approach to market liquidity. By owning and efficiently managing liquidity across multiple KLIMA/CARBON pools, KLIMA ensures an efficient, stable, and resilient market for carbon assets, aligning with its mission to facilitate a liquid and accessible Carbon Market.

    Green Ratio

    The Green Ratio

    The Green Ratio, as established in KIP-55, represents an economic framework guiding the allocation of KLIMA's treasury assets, thereby shaping its operational and strategic direction. This ratio is a fundamental principle that positions KLIMA as an index of environmental assets, calibrated to reflect KLIMA’s commitment to environmental sustainability and economic resilience.

    Analytical Overview of the Green Ratio

    At its inception, the Green Ratio delineates the treasury's asset allocation into four primary categories: Forward Carbon, Treasury Reserves, Operational Expenditure (OpEx), and Carbon Backing, with an initial weighting of:

    • Forward Carbon {22%}

    • Treasury {48%}

    • Operational Expenditure (OpEx) {10%}

    • Carbon Backing {20%}

    Forward Carbon (22%)

    Forward Carbon represents commitments to future carbon credits. These are essentially agreements to purchase carbon offsets that will be generated from environmental projects.

    KLIMA has pursued multiple deals approved by KlimaDAO proposals, aimed at securing future carbon credits. Some examples include agreements with , community based , , and (DAC) with storage via ocean alkalinity enhancement.

    Treasury (48%)

    The Treasury basket includes a variety of assets held by the protocol that are not immediately earmarked for carbon backing. This includes protocol-owned liquidity, spot carbon credits not used for backing, and deployed USDC.

    Components:

    • Protocol Owned Liquidity (POL): Assets held in liquidity pools that provide market depth and stability for KLIMA and its associated carbon credit tokens.

    • Spot Carbon: Carbon credits that are immediately available but not currently designated for backing KLIMA tokens.

    • Deployed USD: Financial assets, possibly in stablecoins like USDC, that are invested or deployed in yield-generating activities to support the protocol's financial health.

    Operational Expenditure (OpEx) (10%)

    OpEx covers the day-to-day operational costs of running KlimaDAO, including everything from development work to marketing and legal fees.

    Components:

    • Idle USDC or USD: Liquid assets reserved for operational expenses, ensuring that the protocol can cover its immediate and short-term needs without compromising its strategic asset allocations.

    Carbon Backing (22%)

    Carbon Backing is the core of KLIMA's value proposition, ensuring that each KLIMA token is backed by tangible environmental assets.

    Components:

    • Base Carbon Tonnes (BCT): The primary asset used for backing KLIMA tokens. BCTs are carbon credits verified by recognized standards, providing a direct link between KLIMA's market value and its environmental impact.

    Potential Allocation States:

    Tactical Allocation for Rebalancing

    To account for fluctuations in market conditions that may cause the asset ratio to drift from the foundational 22:48:10:20 allocation, a tactical allocation of up to 10% of the net asset value is permitted. For example, at any given time as little as 0% or as much as 20% of the treasury may be ring-fenced for OpEx. This shift is not for the exploration of alternative investments but serves as a rebalancing buffer.

    The tactical allocation allows the DAO to adjust holdings in each of the primary categories in order to realign them with the foundational 22:48:10:20. Such adjustments should be data-driven and predicated on market analytics.

    The tactical allocation will be reviewed in each quarterly report, aiming to restore the foundational allocation, unless market analytics provide a strong justification for maintaining the current course or adjusting the ratio.

    Economic Rationale Behind the Green Ratio

    Optimizing Economic Decision-Making: The Green Ratio enables KLIMA to navigate the volatile environmental commodity markets with precision. By allocating assets across different categories, KLIMA can optimize its economic decisions, focusing on long-term growth and sustainability. This strategic diversification reduces risk and enhances the protocol's ability to capitalize on market opportunities.

    Promoting Efficiency and Alignment: The framework ensures that KLIMA's resources are deployed in a manner that aligns with its overarching goals of promoting environmental sustainability and market efficiency. It provides a clear roadmap for resource allocation, ensuring that every decision is made with the protocol's long-term vision in mind.

    Adapting to Market Conditions: The tactical allocation buffer within the Green Ratio allows KLIMA to adjust its asset distribution in response to market fluctuations. This flexibility is crucial for maintaining the protocol's economic stability and ensuring its resilience against market cycles.

    KLIMA as an Index of Environmental Assets

    The governance of KLIMA's treasury assets through the Green Ratio effectively positions the protocol as an index of environmental assets. This is critical for several reasons:

    Market Representation: By aligning its asset allocation with the dynamics of the environmental commodity markets, KLIMA offers stakeholders a representative index of the market's performance and opportunities. This representation enhances KLIMA's utility as a vehicle for environmental investment and engagement.

    Value Stability: The strategic management of treasury assets under the Green Ratio contributes to KLIMA's stability as a store of value. By ensuring that asset allocation is responsive to market conditions and protocol objectives, KLIMA maintains its economic viability and attractiveness as a currency.

    Environmental Impact: The allocation towards Forward Carbon and Carbon Backing directly ties KLIMA's value to tangible environmental outcomes. This linkage ensures that KLIMA's growth and success are intrinsically connected to its positive impact on the environment, reinforcing its role as a sound vehicle for environmental finance.

    Conclusion

    The Green Ratio is a testament to KLIMA's innovative approach to economic management and environmental sustainability. By governing the allocation of treasury assets with precision and foresight, KLIMA not only optimizes its economic performance but also solidifies its position as a leading index of environmental assets. This strategic framework ensures that KLIMA remains a resilient and impactful currency, capable of navigating the complexities of the environmental commodity markets while driving meaningful change.

    Supply Contraction

    The dynamics of supply contraction within the KLIMA ecosystem are primarily facilitated through the innovative use of retirement bonds. This mechanism is pivotal for managing the circulating supply of KLIMA tokens, ensuring the system's balance and sustainability. Understanding how retirement bonds function and their impact on KLIMA's supply is essential for grasping the broader economic model of KLIMA and its role in the carbon market.

    Understanding Retirement Bonds

    Mechanism: Retirement bonds represent a strategic tool for supply contraction, where KLIMA tokens are exchanged for carbon credits that are immediately retired. This process effectively removes KLIMA tokens from circulation, directly contracting the supply. The retirement of carbon credits through this mechanism also contributes to KLIMA's environmental objectives, making it a dual-purpose tool.

    Pricing and Structure: The bonds are structured to offer a fair exchange rate for carbon credits, based on the time-weighted average market rate, with a maximum slippage cap and a flat fee contributing to the protocol's treasury. This structure ensures that the process is efficient and aligned with market values, making retirement bonds an attractive option for those looking to retire carbon credits at scale.

    The Role of Retirement Bonds in Supply Contraction

    Retirement bonds serve as the main variable in KLIMA's supply contraction dynamics. The volume of carbon retired through these bonds directly influences the rate at which KLIMA's supply contracts. This mechanism is crucial for balancing the inflationary pressures from supply expansion, ensuring that KLIMA remains a stable and sustainable currency within the carbon market.

    Inflationary and Deflationary States

    The balance between supply expansion and contraction defines KLIMA's inflationary or deflationary state:

    • Inflationary State: Occurs when the rate of supply expansion (driven by the growth of the CM and tokenization of carbon) exceeds the rate of supply contraction (achieved through retirement bonds). In this state, the circulating supply of KLIMA increases, which could potentially dilute its value if not managed carefully.

    • Deflationary State: Arises when the rate of supply contraction outpaces supply expansion. This scenario leads to a reduction in the circulating supply of KLIMA, potentially increasing its value and purchasing power over time.

    Formula for Understanding Inflation and Deflation Rates

    The relationship between KLIMA's supply dynamics can be conceptualized as follows:

    Where:

    • CM Growth Rate represents the rate at which the carbon market is expanding, influencing KLIMA's supply expansion.

    • Retirement Bond Rate reflects the rate at which KLIMA tokens are retired through bonds, contributing to supply contraction.

    You can view the rate of inflation or deflation, along with other important KLIMA metrics .

    Enhancing KLIMA as a Store of Value

    For KLIMA to enhance its role as a store of value, balancing these rates is crucial. Strategies to increase the attractiveness and utilization of retirement bonds can amplify supply contraction, countering inflationary pressures and stabilizing KLIMA's value. Additionally, aligning supply expansion closely with genuine market growth ensures that KLIMA's supply remains sustainable and its value reflective of underlying environmental assets.

    In conclusion, retirement bonds are a cornerstone of KLIMA's supply contraction strategy, offering a direct mechanism to reduce circulating supply while supporting environmental goals. By carefully managing the dynamics between supply expansion and contraction, KLIMA can maintain its stability and utility as a currency in the evolving landscape of the carbon market.

    Retirement

    Contracts for consuming on-chain carbon credits

    Aggregator

    Unified interface for consuming tokenized carbon credits. Allows the user to provide a variety of input tokens (e.g. USDC, KLIMA, sKLIMA, wsKLIMA) and retire from a selection of different carbon credit pools (e.g. BCT, MCO2).

    • V1: 0xEde3bd57a04960E6469B70B4863cE1c9d9363Cb8

    • V2:

      • More details can be found .

    Bridge-Specific Retirements

    Helper contracts for consuming credits from a specific carbon bridge or on-chain issuer.

    C3

    • V1:

    Moss

    • V1:

    Toucan

    • V1:

    Retirement Storage

    Simple storage contract for recording how much a given address has retired, as well as tracking reward points for using the KlimaDAO retirement aggregator.

    • V1:

    Auto Compounder App Guide

    The KlimaDAO Auto Compounder manages liquidity pool tokens created on Aerodrome and optimizes them for compound interest effects. This can improve the yield performance of your position over time compared to manual compounding.

    Additionally, 1% of your yield will be used to burn existing KLIMA tokens and retire carbon credits owned by KlimaDAO. By providing liquidity for the KlimaDAO ecosystem through the Auto Compounder, you grow your position in a more convenient way, reduce the amount of KLIMA tokens in circulation, and compensate for your personal or organizational carbon footprint automatically.

    Since participating in liquidity pools can be challenging, this guide will provide step-by-step instructions on how to provide liquidity for the KlimaDAO ecosystem through the Auto Compounder app. A general overview of what liquidity pool tokens are can be found here.

    Prerequisites

    The KlimaDAO Auto Compounder is currently only operating on the Base blockchain. Therefore, you will need KLIMA tokens on Base as well as a different token to pair KLIMA with, e.g. WETH, USDC, or other supported tokens. An overview of all supported liquidity pairs can be found at .

    You will also need a small amount of ETH on Base in your wallet to pay for transactions.

    How to Stake

    This guide uses the KLIMA/WETH pool as an example, but the same steps apply for all other token combinations as well.

    • Visit and click the CONNECT button in the top right corner. Choose your wallet and confirm that you want to connect to the app.

    • Click the Stake + button for the pool you want to deposit your tokens into.

    • Once you click Stake +, you should see the Auto Compounder interface. Unless you already own liquidity pool tokens previously created on Aerodrome, you need to create some now. To do this, click the Deposit Liquidity button.

    • You are now on Aerodrome’s website. As seen below, add the amount of WETH and KLIMA you want to stake. On the right side, click both Allow KLIMA and Allow WETH, if necessary. Sign both transactions in your wallet.

    • Once the transactions are finished, click the Deposit button and sign the transaction in your wallet. This will create your liquidity pool tokens.

    • You now notice the Stake Your Deposit button on Aerodrome’s website. DO NOT CLICK IT. Instead, return to the Klima Auto Compounder.

    • For the pool you selected earlier, you should now see a balance in your wallet like on the screenshot below.

    • Click the MAX button in the Amount to Stake section (or enter a value not greater than your Balance), then click the green STAKE button below.

    • A new window will pop up. Click APPROVE first, sign the transaction, and wait for this process to finish. Then click STAKE again and sign this transaction as well.

    • If everything works as expected, you will see a Success! message.

    • Done! If you click YOUR POSITIONS now, you will see your staked tokens and their US-Dollar nominated value.

    Auto Compounder FAQ

    Where does the yield come from?

    Aerodrome issues AERO rewards to liquidity pool providers who stake their liquidity pool tokens on the Aerodrome Platform. More information can be found at https://aerodrome.finance/docs#.

    What is the advantage of using the Auto Compounder over Aerodrome’s native offering?

    On Aerodrome, you have to manually claim your AERO emissions as they accumulate over time. Depending on your goals, this can be sub-optimal since if you want to grow your position by re-staking your earned AERO tokens, you would have to go through this process manually, which can quickly become a tedious task.

    KlimaDAO’s Auto Compounder accesses your accumulated AERO rewards, converts them to the tokens of your position, and re-stakes them automatically. Through compound interest, this can improve the overall yield performance of your position.

    How often is the yield compounded?

    Currently, your yield is compounded once every 24 hours.

    The app sometimes mentions vault tokens. What are they?

    Vault tokens represent your share of the total vault. This number will increase or decrease (depending on the size of your position relative to the total vault) whenever you stake or unstake.

    As soon as you stake the liquidity pool tokens in the Auto Compounder, these tokens get exchanged for vault tokens. Once you unstake, your vault tokens are converted back to liquidity pool tokens again, letting you claim your liquidity token pair.

    The amount of vault tokens I staked is not growing. Why?

    You might notice that the amount of vault tokens is always constant. This is working as intended; your vault tokens balance will always remain the same (unless you stake or unstake), while the amount of tokens you see under BALANCE will slowly increase over time as the Auto Compounder uses your AERO tokens to grow your position.

    What is my balance?

    The balance of your staked position includes your staked liquidity pool tokens plus the total yield accrued over time, expressed as a US Dollar value.

    Are there any fees attached to using the Auto Compounder?

    1% of the accrued yield is used to burn existing KLIMA tokens and retire carbon credits owned by KlimaDAO. However, in contrast to manual compounding, all transaction costs for automatic compounding are paid for by KlimaDAO.

    How does the 1% fee to burn KLIMA work?

    When you stake using the Auto Compounder, you will see this message on the form:

    When the yield is compounded every 24 hours, 1% is automatically redirected to a wallet address on .

    In regular intervals, this yield is used to perform retirements, which are executed on Base and used to retire carbon tokens on Polygon.

    All of this is performed by KlimaDAO in the background. As a user, you do not need to take any manual action.

    If I unstake from the Auto Compounder, am I still earning AERO rewards?

    If you decide to exit the Auto Compounder, unstake, and do nothing else; you are only earning the trading fees from the pool, not AERO rewards. On the , your unstaked position will show as available for Stake. Stake your deposit again on Aerodrome to start earning AERO rewards; just note that these will not auto compound. See for the benefits of using the KlimaDAO Auto Compounder.

    Unit of Account

    Unit of Account

    A unit of account is a standard numerical monetary unit of measurement of the market value of goods, services, and other transactions. It is one of the key functions of money, allowing people to compare the costs of different goods and services and to track financial transactions with consistency. For an asset to serve effectively as a unit of account, it must possess certain qualities:

    Qualities of a Good Unit of Account

    • Stability: The value of the unit of account should be stable over time, allowing for reliable and consistent pricing of goods and services.

    • Widespread Acceptance: It must be widely accepted by participants within the market it serves, ensuring that it can be used universally for pricing and transactions.

    • Divisibility: The unit should be easily divisible to allow for precise pricing and transactions of varying sizes.

    • Uniformity: Each unit of account must be uniform, meaning each unit is the same as every other unit, to ensure consistency in pricing and valuation.

    • Resistance to Counterfeiting: To maintain trust and stability in its value, the unit of account should be difficult to counterfeit or replicate unlawfully.

    KLIMA as a Unit of Account in Environmental Markets

    KLIMA, with its intrinsic link to carbon credits and the environmental market, has the potential to become a significant unit of account within this specialized financial ecosystem. Here’s how KLIMA aligns with the qualities of a good unit of account and the steps it can take to solidify this role:

    1. Stability Through Supply Management: KLIMA's innovative supply management mechanisms, including the alignment of supply expansion with the growth of the Carbon Market (CM) and the use of retirement bonds for supply contraction, contribute to its stability. By managing its supply in response to real-world environmental asset growth and demand, KLIMA can offer a stable unit of account for the environmental markets.

    2. Building Widespread Acceptance: For KLIMA to be widely accepted as a unit of account, it must continue to build partnerships and integrations within the environmental and financial sectors. Increasing its presence and utility in carbon trading platforms, environmental projects, and sustainability initiatives will be key.

    3. Ensuring Divisibility and Uniformity: As a digital asset, KLIMA inherently possesses divisibility and uniformity, allowing for precise and consistent valuation of environmental assets and transactions. This digital nature ensures that KLIMA can be used for transactions of any size, enhancing its utility as a unit of account.

    As the world increasingly focuses on sustainability and the valuation of environmental assets becomes more critical, KLIMA is well-positioned to serve as a unit of account in the environmental markets. Its stability, divisibility, and the trust and security offered by blockchain technology make it an ideal candidate. By continuing to build acceptance and demonstrating its utility in environmental valuation, KLIMA can achieve widespread recognition as a standard unit of account, facilitating clearer, more consistent financial transactions within the growing green economy.

    FAQ Carbon Markets

    What are carbon markets?

    The objective of carbon markets is to reduce greenhouse gas (GHG, or “carbon”) emissions cost-effectively by setting limits on emissions and enabling the trading of emission units, which are financial instruments representing emission reductions. Trading enables entities that can reduce emissions at lower cost to be paid to do so by higher-cost emitters, thus lowering the economic cost of reducing emissions.

    History

    Launch and early history

    Initial Supply

    The initial goal was not to find a stable carbon price. It is to provide an intuitive way for Web3 users to engage with the carbon markets, vote on governance proposals that shape the Digital Carbon Market, and be rewarded for participation in the protocol. Through policy and voting, the protocol was continually tuned to track developing trends in carbon markets over time.

    Leveraging Blockchain for Security: The blockchain technology underlying KLIMA ensures that it is resistant to counterfeiting, maintaining the integrity and trust in its value as a unit of account.

  • Promoting KLIMA for Environmental Valuation: To become a unit of account in environmental markets, KLIMA should focus on promoting its use for pricing carbon credits, environmental services, and sustainability projects. By establishing itself as a standard for valuation in these areas, KLIMA can enhance its acceptance and utility.

  • Educational and Advocacy Efforts: Engaging in educational and advocacy efforts to raise awareness about KLIMA's potential as a unit of account in environmental finance will be crucial. Highlighting its benefits, stability, and the transparency it brings to the valuation of environmental assets can drive its adoption.

  • KLIMA/MCO2
    KLIMA/CCO2
    SupplyChangeRate=CMGrowthRate−RetirementBondRateSupply Change Rate=CM Growth Rate−Retirement Bond RateSupplyChangeRate=CMGrowthRate−RetirementBondRate
    here
    0x8cE54d9625371fb2a068986d32C85De8E6e995f8
    here
    0x933AF8c652c696FB0969Eb85DDd111edb2b4E057
    0xa35f62dbdb93e4B772784E89B7B35736A4aeaCc5
    0xCefb61aF5325C0c100cBd77eb4c9F51d17B189Ca
    0xac298CD34559B9AcfaedeA8344a977eceff1C0Fd
    reforestation projects
    water filtration initiatives
    biochar
    direct air capture
    What’s the difference between carbon credits and renewable energy?

    Renewable energy sources generate little to no carbon as they produce energy from natural resources that don’t run out or use fossil fuels, like solar or wind energy.

    Carbon credits are a mechanism for funding projects that avoid emissions being released in the first place, or removing greenhouse gases from the atmosphere. One type of carbon credit project is renewable energy installations, so long as they avoid emissions from a fossil-fuel power plant that would otherwise be providing energy to the same grid to which the renewables are connected.

    There are many other types of carbon credit project (also known as methodologies), many of which do not involve renewable energy.

    What is a carbon credit?

    A carbon credit unit represents the removal of one tonne of carbon dioxide equivalent (tCO2-e) from the atmosphere, or the avoidance of one tCO2-e of emissions. The term "carbon dioxide equivalent" refers to the summation of multiple greenhouse gasses based on each gasses global warming potential (GWP). The Global Warming Potential (GWP) was developed to allow comparisons of the global warming impacts of different gases. Specifically, it is a measure of how much energy the emissions of 1 tonne of a gas will absorb over a given period of time, relative to the emissions of 1 tonne of carbon dioxide (CO2). For instance, methane has a GWP about 28 times that of CO2.

    What happens with the revenues generated by the sale of carbon credits?

    Project developers cover their investment and operational costs by selling carbon credits. A portion of the revenues generated remains with the developers as profit. Entrepreneurs are thus incentivized to set up emission reduction projects that are not business-as-usual, and therefore enable climate action. The majority of emission reduction projects are located in developing countries or in economies in transition.

    Aren't carbon credits just for greenwashing?

    To be certified, emission reduction projects must demonstrate that they are not business-as-usual. This is referred to as environmental integrity or additionality. This means that, without the additional revenues generated from selling carbon credits, these projects would not have been implemented. Supporting a certified emission reduction project ensures real benefits and maximum impact.

    Only additional projects are recognized and can issue carbon credits. This mechanism, which is rooted in the Kyoto Protocol, has firmly established itself and has proven its worth over the past 20 years as a central component of voluntary, non-state regulated climate protection.

    How do carbon credits help in the fight against climate change?

    Carbon credits are a valuable tool to compensate for hard-to-abate emissions, i.e. emissions which may be difficult to eliminate completely with current technology. Purchasing and retiring verified carbon credits lead to measurable and accountable emissions reductions or removals.

    One of the most powerful economic levers we have in the fight against climate change is pricing carbon. In an indirect way, the voluntary carbon market helps price-in the negative externalities of emitting greenhouse gases into the atmosphere. As more actors decide to do this, the price of carbon will increase steadily, and eventually reach a point where economic and social costs are accurately accounted for by the price of credits. This is the fundamental role of the infrastructure which KlimaDAO is building.

    Which are the relevant political foundations for international climate protection?

    As early as 2005, binding targets for greenhouse gas emissions, which are the main drivers of global warming, were set for the first time in industrialized countries as part of the Kyoto Protocol. This was then replaced in 2015 by the Paris Agreement, which obliges industrialized, developing and emerging countries alike to fight against global warming. The Agreement includes an obligation to limit average global warming to well below 2°C by the end of the century compared to the pre-industrial period.

    What are examples of carbon credit projects?

    1. Nature-based carbon sequestration. Biological sequestration absorbs CO2 emissions through the growth of vegetation and the continued storage of some of the carbon in plant tissues and organic materials derived from plant tissues (e.g. stored in the soil). An example project is the restoration of degraded mangrove landscapes in Myanmar. Other examples include biochar (long term carbon storage from biological sources), and afforestation initiatives (e.g. tree planting on degraded landscapes).

    2. Renewable energy. Renewable Energy projects include hydro, wind, and photovoltaic solar power, solar hot water and biomass power and heat production. Many renewable energy projects have high up-front capital costs, although they may offer high rates of return, and their operating costs are often minimal once built. Carbon credits help support these projects by providing an additional revenue stream to cover their high up-front capital costs. This wind energy power project in India is an example and helps reduce 182,016 tons of carbon dioxide equivalent a year by replacing polluting fossil fuel power plants.

    3. Methane capture. Methane’s global warming potential is about 28 times greater than that of CO2, and thus preventing methane emissions can have significant environmental benefits. Methane is emitted by landfills, during wastewater treatment, in natural gas and petroleum systems, from agricultural activities (livestock and rice cultivation), and during coal mining. Methane is basically ‘natural gas’ and can therefore be captured and used as a source of energy. Such projects include those that capture and purify methane in wastewater treatment plants or landfills and use it for electricity production or the production of another form of energy. The project in California, USA is an example project that captures methane from a dairy farm and uses it for energy.

    In the early days, the main tradeoff was volatility versus stability and consistency. With volatility comes growth; this is what drove the protocol early on. Towards the middle of the century, the original core team anticipated more stability as KLIMA approaches equilibrium with supply and demand in the carbon markets.

    At protocol launch, the initial supply was ~251k KLIMA.

    • ~57k came from the IDO

    • 133k came from the LBP

    • ~81k came from the alchemist reward program.

    Post-Launch Excess pKLIMA Redemption

    Until the launch of the wsKLIMA token several weeks after launch, there was a minor implementation issue in the pKLIMA contract that allowed for pKLIMA holders to redeem pKLIMA even though they had a greater % supply share than should be allowed. The original contract could not account for the fact that pKLIMA holders may have staked and earned rebase rewards on previously claimed tokens until the wsKLIMA contract was deployed, providing a way to calculate the index-adjusted value of KLIMA.

    The fix was deployed on November 24, 2021 and will gradually automatically correct the issue by preventing further pKLIMA redemption until supply grows sufficiently to bring all pKLIMA allocations in line with vesting limits.

    https://base.klimadao.finance/auto-compounder/stake/all
    https://base.klimadao.finance/auto-compounder/stake/all
    Base
    Aerodrome Dashboard
    What is the advantage of using the Auto Compounder over Aerodrome’s native offering?

    V2 - Diamond

    The second version of the KlimaDAO retirement tooling is an implementation of an EIP-2535 multi-facet proxy that allows for a unified experience against one contract address while utilizing logic from multiple other contracts. In addition, the Generalized Retirement developer experience is made more intuitive as certain parameters were abstracted away.

    All facets and internal libraries share a common storage space using the AppStorage pattern.

    Main diamond contract is deployed to 0x8cE54d9625371fb2a068986d32C85De8E6e995f8 on Polygon.

    • View on Louper

    • View on

    There are currently two main types of facets within the Diamond.

    • Generalized Retirement

    • Bridge Specific Tooling

    The General Retirement functions should be sufficient for all retirement calls. However, Bridge Specific Tooling becomes useful for Redeem functions and allows for explicit specification of the retiringEntityString , set by default to "KlimaDAO Retirement Aggregator".

    All retirement transactions initiated through this contract emit the following event.

    Field
    Type
    Description

    Organizational Structure

    Even decentralized autonomous organizations need an org chart

    Klima Foundation

    As of KIP-53, KlimaDAO transitioned its underlying legal structure to a foundation model.

    A number of benefits were realized by the project through this transition, as foundations offer unique operational and regulatory advantages:

    • a more stable and enduring structure for KlimaDAO's goals, ensuring long-term impact and transparency.

    • the possession of their legal identity, enabling them to hold assets, execute contracts, and engage in legal transactions independently, thereby simplifying governance, partnerships and decision-making processes.

    • simplified KYC and KYB processes affording KlimaDAO the flexibility to integrate more effectively into the wider, dynamic business environment within the carbon and environmental commodity markets.

    • reduced legal uncertainty during complex financial transactions.

    • a continued and compliant commitment to KlimaDAO’s decentralized nature, which also allows for its dynamic governance process to continue evolving.

    The transition to a foundation yielded several strategic advantages, allowing it to inherit the DAO’s existing asset management directives while streamlining governance, compliance, and operational efficiency.

    An Overview of the Klima Foundation

    The primary mission of the Klima Foundation remains the same as that of the DAO historically: to oversee a digital initiative focused on enhancing global decarbonization efforts. The Klima Foundation aspires to revolutionize carbon markets, environmental commodity markets and potentially establish a novel carbon-based monetary system.

    The Foundation's primary purposes include promoting blockchain-related technology for carbon markets, supporting KLIMA Improvement Proposals (KIPs), producing educational materials related to decentralized autonomous organizations (DAOs) and blockchain technology, and facilitating commercial agreements aligned with these goals.

    Alongside the generic and general initiative, the Klima Foundation is working on the development of the KLIMA DAO platform, operated through smart contracts. This platform empowers the KLIMA DAO community to collectively shape its future through decentralized voting. The Klima Foundation also recognizes and endorses contributions from individuals in strategy, IT, and law to promote environmental and climate policies.

    The governance structure of the Klima Foundation will include a Board of Directors and the Guarantee Committee.

    The President of Klima Foundation

    The Board of Directors is overseen by the President of the Board. The president of the Board is ratified via Community vote, nominated by DAO contributors, and may be removed via KIP. The President will legally represent the DAO, and ensure that communication between its various stakeholders is efficient and effective.

    The Board of Directors

    The Board itself holds the powers for the operational management of the Foundation and plays a pivotal role in determining objectives, resource allocation, and financial management, analogous to the role Klima DAO’s Core and Stewards have previously fulfilled at the DAO .

    The directors are not required to be members of the Foundation or residents of its legal jurisdiction, allowing for a diverse and global representation. Directors serve at the pleasure of the appointing entities and are subject to removal by decentralized vote. They, whether acting individually or collectively, are entrusted with a fiduciary duty to uphold the best interests of the Foundation and the Protocol.

    KlimaDAO’s founders will remain key stakeholders of the project, maintaining oversight of the Foundation and the DAO, and provide non-binding opinions regarding its progress to the Board and the Community – irrespective of whether they choose to continue on as a contributor of the project.

    The Guarantee Committee

    The Guarantee Committee is an office held within the Foundation, with the intention of ensuring robustness and integrity around KlimaDAO’s ongoing interactions with the carbon markets. Specifically, the Guarantee Committee is tasked with the thorough examination of RFCs brought forth from the market with regards to KlimaDAO’s carbon financing agreements.

    The Guarantee Committee members are therefore expected to have significant knowledge and experience within the climate finance and environmental market domains. This Committee is positioned to shepherd the DAO’s initiatives within the climate finance space, and mitigate risks associated with these activities, considering factors such as technical, economic and reputational risks, and conflicts of interests that may arise within the market. The Community will have the opportunity to affirm new appointments to the Guarantee Committee, via a KIP.

    The Committee's authority is exercised with the sole intention of advancing the DAO's interests, ensuring that its operations are not only efficient but also reflective of its core mission. Members of the Guarantee Committee are appointed for a tenure of three years, with the possibility of reappointment, signifying a long-term commitment to the DAO's vision and stability.

    Therefore, the Guarantee Committee will have the ability to make recommendations to the community regarding carbon financing initiatives – however, it will not have the ability to make decisions on behalf of the community (i.e. a KIP will still be required to ratify financing agreements).

    It is anticipated that the Guarantee Committee will at times work with the Klima Review Committee to progress or raise concerns around RFCs and KIPs specifically pertaining to climate finance.

    Organs of the DAO

    • Foundation President

    • Foundation Directors

    • Protocol Team: key contributors most of whom have been working on KlimaDAO since before launch. Establishes strategic vision and provide expert input on carbon markets and DeFi. Guides the DAO's decentralization plan and ensures functional teams are aligned on priorities, collaborate productively, and deliver on their objectives.

    Note: By default, bounties will only be available to licensed Bounty Hunters who have applied to work on a bounty and been assigned that bounty by a Protocol Team member. However, some bounties may be available to community members who have not been tapped in, and will be flagged as such. For example, the that place funds at risk is available to any community member who follows the documented procedure for claiming that bounty.

    Data Sources

    Subgraphs and other data sources relevant to the KlimaDAO ecosystem

    Official Subgraphs

    Ecosystem Subgraphs

    GitHub repo

    General metrics concerning the KlimaDAO protocol and treasury

    Metrics concerning existing KLIMA token supply locked in another contract, either temporarily or permanently

    Metrics on addresses that have interacted with tokenized carbon credits supported by the KlimaDAO ecosystem, most notably balances over time

    Metrics on swap activity of tokenized carbon credits: prices, volumes, slippage, etc.

    Bridged Carbon Subgraphs

    Detailed data on carbon credits tokenized onto the Polygon blockchain

    Detailed data on carbon credits tokenized onto the Ethereum L1 blockchain

    Off-Chain Carbon Registries

    Verra

    Verified Carbon Units:

    Gold Standard

    Credit blocks:

    Registered projects:

    American Carbon Registry (ACR)

    Registry Reports:

    Retired Credits Report:

    Climate Action Reserve (CAR)

    Public Registry:

    Retired Offset Credits:

    Clean Development Mechanism (CDM)

    Registry:

    Cancelled CERs:

    World Bank Climate Warehouse

    Envisioned to be a .

    Still under development, it is currently running as a Proof-of-Concept on Chia Network:

    FAQ

    What is KlimaDAO?

    KlimaDAO is a Decentralized Autonomous Organization to drive climate action and fulfill our manifesto, via our carbon-backed, algorithmic cryptocurrency- the KLIMA token.

    As the protocol grows, KlimaDAO will solve the critical problems of the carbon markets:

    • Illiquidity: Carbon Credits come in many different varieties; carbon brokers and middlemen are used by buyers and sellers, fragmenting the total liquidity of the market.

    Bounty Hunter: all applicants to be a DAO contributor automatically become Bounty Hunters. Bounty Hunters have access to the internal DAO bounty board, and are welcome to contribute to small projects and complete bounties without guaranteed compensation* - until a department has the resources to tap them in as a Bounty Contributor or Internal Contributor.
  • Token Holders: core stakeholders of KlimaDAO, our Klimate community plays a critical role supporting the protocol’s growth and engaging in the governance process via discussion and voting.

  • Partners: organizations who have established a relationship with KlimaDAO. Some Partners utilize our products and/or hold KLIMA on their balance sheets; some also contribute on joint initiatives.

  • (per KIP-19)
    (defined in KIP-35)
    standing bug bounty for exploits
    Protocol Metrics
    Vesting
    User Carbon
    Markets
    GitHub repo
    Polygon Bridged Carbon
    Ethereum Bridged Carbon
    https://registry.verra.org/app/search/VCS/VCUs
    https://registry.goldstandard.org/credit-blocks?q=&page=1
    https://registry.goldstandard.org/projects?q=&page=1
    https://americancarbonregistry.org/how-it-works/registry-reports
    https://acr2.apx.com/myModule/rpt/myrpt.asp?r=206
    https://thereserve2.apx.com/mymodule/mypage.asp
    https://thereserve2.apx.com/myModule/rpt/myrpt.asp?r=206
    https://cdm.unfccc.int/Registry/index.html
    https://cdm.unfccc.int/Registry/vc_attest/index.html
    global resource for all carbon credit and allowance programs
    https://app.climatewarehouse.chia.net/#/projects
    International Carbon Registry (ICR)

    Address

    Address for the beneficiary of the retirement. Any NFT certificates created during the retirement will be sent to this address.

    beneficiaryString

    string

    String representation of the beneficiary.

    retirementMessage

    string

    Specific message related to this retirement.

    carbonPool

    address

    Carbon pool token used to retire. If none, the zero address is used.

    carbonToken

    address

    The token address for the specific carbon project token being retired. If none, the zero address is used.

    retiredAmount

    uint256

    Amount of carbon retired. This uses the token's native decimals.

    carbonBridge

    LibRetire.CarbonBridge

    This enum is used for the source of the carbon retired.

    retiringAddress

    Address

    Address calling the retirement. Currently the msg.sender value for the retiring transaction.

    retiringEntityString

    String

    String representation of the retiring entity calling the transaction.

    Polygonscan

    beneficiaryAddress

    event CarbonRetired(
        LibRetire.CarbonBridge carbonBridge,
        address indexed retiringAddress,
        string retiringEntityString,
        address indexed beneficiaryAddress,
        string beneficiaryString,
        string retirementMessage,
        address indexed carbonPool,
        address carbonToken,
        uint256 retiredAmount
    );
    0 = TOUCAN
    1 = MOSS
    2 = C3
  • Opacity: Trades occur often behind closed doors, allowing buyers to underbuy the market.

  • Inefficiency: buying and retiring carbon credits comes with friction and barriers, by utilizing the polygon ecosystem, it removes this friction for all users.

  • In delivery of its objectives, KlimaDAO will become the single biggest disruptor of the carbon markets and set a precedent for a new monetary system backed by carbon. KlimaDAO will serve the web3 ecosystem by offering accountability for those that contribute, rewards for stakeholders, and a stake in governance for those that participate.

    What is the point of Klima DAO?

    1: Drive Climate Action

    KlimaDAO incentivizes new supply of Tokenized Carbon Tonnes (TCT) on the blockchain through the KLIMA token. By driving demand into Tokenized Carbon, it incentivizes carbon offset producers to produce more carbon credits, assisting the adoption of new carbon mitigating or sequestering technology, and disincentivizes companies wanting to offset their carbon footprint with only C.Cs, and forces them to perform environmentally friendly actions.

    KLIMA is the first building block for unlocking the carbon economy — an economy where more economic activity leads to an acceleration in planetary regeneration rather than more damage to our planet. Before, monetary incentives and environmental incentives aren't typically aligned.

    2: Become a Carbon-Based Reserve Cryptocurrency.

    The KLIMA ecosystem and monetary policy are managed by the KlimaDAO. This way we guarantee transparent decision making and long-term stability. In the long term, we can use this system to optimize stability, to transition to a global unit of account and medium of exchange. Currently, in the short term, we're focused on growth and wealth creation, to incentivize users to join the new wave of carbon currency.

    3: Facilitate the Climate Markets.

    The current carbon (and the climate in general) markets are illiquid, fragmented, inefficient, and opaque. Because of this, we feel that carbon tonnage is heavily undervalued, and is forced down because of these issues. By eliminating these issues, the true price can be achieved.

    What can I do in the KLIMA ecosystem?

    To buy KLIMA, visit https://www.klimadao.finance/buy.

    To stake your KLIMA, visit https://app.klimadao.finance/#/stake.

    To explore the carbon marketplace, visit https://carbonmark.com/projects.

    To buy, sell or retire carbon credits, visit https;//carbonmark.com

    How do I participate in KlimaDAO?

    KlimaDAO development: Join the Discord to become a member of our community AKA a Klimate and hear about protocol developments.

    Participation in the carbon ecosystem: At the time of writing BCT, NCT, UBO, NBO and MCO2 are the main forms of tokenized carbon within the KlimaDAO treasury and their flow into the treasury underpins protocol growth.

    Digital carbon tokens represent real-world Verified Carbon Units (VCUs) from a registry such as Verra - BCT can be created via the Toucan Protocol’s public bridge while MCO2 is a centrally managed product of Moss; new MCO2 tonnes are brought on chain using Moss’ private bridge. Once KLIMA tokens are held, stakers should stake their tokens in reward for more KLIMA tokens based on the AKR at each epoch ~7.2 hour intervals.

    Who created KlimaDAO?

    Klima DAO was inspired by Olympus DAO. It was conceptualized and built by a distributed pseudo-anonymous team.

    Who runs KlimaDAO?

    KlimaDAO is on a path of progressive decentralization - see our Governance Framework for more details. All decisions that affect the smart contract protocol or treasury assets are formed by community members on the forum and decided by KLIMA holders through Snapshot voting. The changes are then implemented by the DAO multisig (composed of individuals with obligations to the DAO's legal structure) based on the result of the vote - see our Organization Structure for more details.

    Is KLIMA backed?

    We say, "KLIMA is backed by carbon credits" because each KLIMA token has an Intrinsic Value (IV) of 1 BCT - which means the treasury must have at least 1 BCT held in reserves in order to mint 1 KLIMA. In addition, the treasury typically contains excess reserves, comprising the Carbon Custodied (CC) above 1 BCT which will eventually be paid out to stakers of KLIMA in the form of rebase rewards.

    Continue reading about KlimaDAO's Strategies for Defending Backing Value.

    West Star North Dairy

    Integration Examples

    Reference implementations demonstrating integration of KLIMA, tokenized carbon, or tools developed by KlimaDAO contributors.

    Carbon.fyi Retirement Link

    Current state: live in production

    Developed by Offsetra, carbon.fyi brought user-friendly carbon emissions calculation to the Ethereum L1 blockchain, but originally the only way to source credits to compensate for your emissions was through an off-chain retailer.

    Now, with the emergence of the tokenized carbon ecosystem, the end page of the calculation process offers users the ability to go directly to the KlimaDAO retirement aggregator, with their retirement details prefilled via query parameters.

    SushiSwap Green Fee

    Current state: deprecated

    Since launch, KlimaDAO's primary DEX has been SushiSwap on Polygon. Given their public governance process, they made an obvious first partner to integrate tokenized carbon credits into the functioning of a DeFi protocol.

    In June of 2022, proposing a first-of-its-kind "Green Fee" integration, where each time a user swaps, a small additional fee is added that gets swapped for carbon credits and retired on behalf of the user.

    This feature has been implemented in partnership between the KlimaDAO and Sushi teams. You can follow along with the open-source code being written by KlimaDAO contributors in our . See for more information about how to use the SushiSwap Green Fee.

    Lens Protocol BCT Retirement CollectModule

    Current state: feature implemented, awaiting deployment by Lens Protocol team

    As part of a bounty for Lens Protocol, KlimaDAO contributors built a that allows content publishers to choose to allocate any fees generated by other users toward retiring tokenized carbon credits.

    While the initial implementation retires credits from the BCT pool, the implementation utilizes KlimaDAO's so it will be straightforward to create additional modules that retire other tokenized carbon credits, such as or . Future work on this module would extend it to allow selectively retiring a particular project from the pool dynamically (i.e. configured by the publisher using the module) - assuming the underlying Lens data model allows such dynamic configuration of modules.

    Rings of Retirement

    Current state: live on mainnet; detailed documentation and refreshed artwork pending

    An experiment in minimalistic worldbuilding, the are a set of NFTs, with one Ring per carbon credit token supported by the KlimaDAO retirement aggregator.

    Each Ring can be claimed from the current holder by any address that has retired more of the corresponding carbon credit token for that Ring than the current holder. This simple gamified element encourages users to retire carbon credits, with an increasing amount of retirements required each round to participate in the game. This regenerative mechanism contracts with the fixed (or even diminishing) amount of retirements from e.g. a corporation's net-zero pledge.

    The Rings provide a concrete example of on-chain carbon game mechanics, that other builders can expand and build upon to incentivize carbon credit retirement or other regenerative activity in their creations.

    Climate-Positive NFTs: CO2_Compound

    Current state: live on Polygon mainnet

    As part of the program, KlimaDAO supports a .

    One in particular is exceedingly elegant and demonstrates the utility of the KLIMA token: . This piece embedded a certain amount of sKLIMA into the NFT contract itself upon deployment, but the contract has no withdrawal function, so the tokens are effectively locked inside the NFT.

    Since sKLIMA accumulates a greater number of tokens over time through rebases, and since the KlimaDAO treasury will defend the intrinsic value backing each KLIMA token, as long as the KlimaDAO treasury continues to grow then the NFT supports the accrual of more and more carbon credits into the treasury, amplifying the climate-positive impact of the initial amount of KLIMA deposited into the contract.

    Carbon Retirement Bin

    Current state:

    Launched at the request of BasinDAO, this contract acts as a "burn address" of sorts for carbon. The contract's sole function is to retire the carbon tokens it holds via the KlimaDAO Retirement Aggregator with the beneficiary set to a popular burn address as well as the beneficiary name and msg "0". This popular burn address was chosen over 0x0 because the safeTransfer used to send some forms of retirement certificate NFTs will cause an error.

    About Verified Carbon Credits

    The Responsible Use of Carbon Credits

    There has been much criticism of carbon credits in the past, as well as examples of greenwashing by companies and projects that violate best practices. This needs to change if carbon credits are to play a major role in helping us decarbonise. In short, companies and individuals need to be educated on the responsible use of carbon credits.

    First of all, note that 1:1 "offsetting" of emissions is only one motivation for retiring carbon credits (i.e. permanently destroying and claiming the underlying environmental benefit). Parents may retire carbon far in excess of their actual emissions, simply because they want to financially support climate action so their children inherit a stable, thriving planet - not 1:1 with measured emissions. On the other hand, some companies may choose to retire carbon in excess of their 1:1 net-zero goal to differentiate themselves.

    That said, retiring carbon

    KlimaDAO approached the SushiSwap community via their public governance forums
    contracts repo on GitHub
    this article
    CollectModule
    collecting their publications
    Retirement Aggregator V1 Contract Guide
    MCO2
    NBO
    Pull request implementing the BCTRetireCollectModule
    Rings of Retirement
    Klima Infinity
    variety of climate-positive NFT strategies
    SVN's CO2_Compound
    live on Polygon mainnet
    credits to offset measured emissions should not be treated as an alternative to reducing emissions - rather as a means to compensate for unavoidable emissions.
    They should only be used temporarily, to avoid delaying society's transition to a low- or zero-carbon economy (UNEP, 2020). The Science-Based Targets Initiative (SBTi) released its
    for using credits as part of a robust corporate emission-reduction program, contributing to a growing debate over what “carbon neutrality” is and is not. There have been efforts to strengthen carbon offsetting methodologies in recent years under the International Carbon Reductions & Offsetting Alliance (ICROA). For more information on ICROA, see Appendix 3. Nevertheless, there is still scope for further transparency and standardization.

    Importantly, in the DeFi space, it should be known that thus far the supply side of carbon credits has been quite decentralized, both from a financing, technology and geographic standpoint. Looking ahead, there is a unique opportunity to directly fund these projects via DeFi mechanisms - enhancing the decentralized nature of both capital formation and capital deployment to sustainability projects.

    Specific Concerns Addressed

    Concern 1: Carbon credits aren’t trustworthy

    This is an important one, so let’s take a step back. The concept of carbon credits has been around for a while, but it really got a boost in 2005 when the Kyoto Protocol took effect. Back then, this was still a relatively novel concept, with its fair share of teething problems, and some cowboys took advantage of poor oversight.

    Today, it has matured into a set of robust global frameworks developed by experts over the last 15 years. At its core are internationally recognized certification bodies, that make sure every ton of CO2 emissions they certify as avoided or removed is rigorously measured, monitored and verified.

    Take the Verified Carbon Standard, and the Gold Standard. They’re widely considered the two highest standards for quality carbon credits in the world, and certify all of our projects. They guarantee that every credit is:

    Additional: Wouldn’t have happened without your support

    Contained: Won’t cause emissions to go up elsewhere

    Permanent: Is protected against destruction by human or natural causes

    Sustainable: Has a positive impact on local communities and environment

    Verified: Is inspected and verified by an independent third party

    Unique: Has a unique ID on a public ledger and can only be counted once

    So, while you’ll always be able to find someone online selling uncertified or questionable credits, going with these standards will make sure your credits are trustworthy and effective.

    Concern 2: Carbon credits are a license to pollute.

    Do people use carbon credits as an excuse to pollute even more? That would certainly defeat their purpose! So is it true? Researchers from Germany looked into this and found out that it’s quite the opposite: People who offset their emissions also take more climate-positive actions in other areas of their lives. Likewise, companies which use carbon credits as part of their sustainability strategy are more likely to reduce their overall emissions than those that do not.

    It’s also common sense: if you’re personally invested in a cause, and now the expense of pollution is on your balance sheet as a cost, you stand to reduce your costs by reducing your emissions. Offsetting and reducing go hand-in-hand.

    Furthermore, to even begin the process of offsetting, one must first measure their emissions. Without robust data on the emissions of an organization (or an individual), it's quite difficult to take any action to reduce them. Thus, the process of preparing to retire carbon credits also opens up a world of possibilities for understanding emissions sources and finding ways to reduce them.

    Concern 3: Offsetting does not directly address emissions.

    Unlike the allowances used in cap-and-trade markets, offsets always represent real removals of carbon dioxide from the atmosphere or avoided emissions somewhere in the world, and carbon standards require that developers demonstrate “additionality,” which means they have to show that the emission reduction wouldn’t have happened without the project and its associated financing. What’s more, EM’s latest report found that 79 companies are generating offsets within their own operations or supply chains by reducing emissions above and beyond regulatory requirements and economic incentives. L’Oreal, for example, distributes efficient, cleaner-burning stoves to women in Burkina Faso who boil the shea nuts used in its cosmetics products. These stoves reduce emissions by reducing the need to chop down trees, thereby saving forests, and they also reduce the health hazards of indoor smoke. Source

    Additional Resources

    What are carbon credits?

    Emitting carbon into the atmosphere is what economists call a ‘negative externality’: it is a by-product of economic or other activity that creates damage now and in the future. Companies and consumers do not pay (enough) for these negative externalities, and are therefore emitting too much carbon. This is a market failure – the market by itself does not internalize the costs of these emissions and so collective action is needed to obtain the socially desired result. In economic theory, explicit pricing is the solution for such an externality. This can be done by either introducing a tax on carbon or introducing a marketplace for allowances to emit carbon.[1]

    We can distinguish between compliance and voluntary markets. Carbon markets can trade either quotas or credits. Allowances are units of quota issued by the government, or tradable, bankable entitlements to emit pollutants. An example is the European Emission Trading System (EU ETS).

    Source

    What is additionality and why does it matter?

    To achieve additionality, the carbon crediting program needs to provide incentives for implementing activities to avoid or sequester emissions which would not have happened without the crediting program. These credits are created voluntarily outside the scope of compulsory carbon pricing initiatives (i.e. in different companies, sectors or countries), which is a fundamental difference to allowances or credits in compulsory carbon markets. The voluntary carbon credits can be used as ‘offsets’, to compensate for individual or organizational emissions.

    Source

    ICROA Code of Best Practice for Offsetting

    ICROA: The International Carbon Reduction and Offsetting Alliance

    • Real: All emission reductions and removals – and the project activities that generate them – shall be proven to have genuinely taken place.

    • Measurable: All emission reductions and removals shall be quantifiable, using recognized measurement tools (including adjustments for uncertainty and leakage), against a credible emissions baseline.

    • Permanent: Carbon credits shall represent permanent emission reductions and removals. Where projects carry a risk of reversibility, at minimum, adequate safeguards shall be in place to ensure that the risk is minimized and that, should any reversal occur, a mechanism is in place that guarantees the reduction or removals shall be replaced or compensated. The internationally accepted norm for permanence is 100 years.

    • Additional: Additionally is a fundamental criterion for any offset project. Project-based emissions reductions and removals shall be additional to what would have occurred if the project had not been carried out.

    • Independently verified: All emission reductions and removals shall be verified to a reasonable level of assurance by an independent and qualified third-party.

    • Unique: No more than one carbon credit can be associated with a single emission reduction or removal as one metric ton of carbon dioxide equivalent (CO2e). Carbon credits shall be stored and retired in an independent registry.

    guidance

    Governance Framework

    Processes and tooling used to govern the KlimaDAO protocol

    Current Governance Process

    KlimaDAO and the ecosystem it operates in is maturing rapidly. Talent is being onboarded to contribute to, and influence the direction of the protocol's growth. The community is expanding, and bringing a range of perspectives, from DeFi natives and carbon market experts, to people who are getting involved with their first DAO. The markets that KlimaDAO operate in (DeFi, Digital Carbon Markets (DCM) and the Voluntary Carbon Markets (VCM)) are also evolving at breakneck speed.

    To properly leverage the knowledge at the DAO's disposal, and build out the protocol for long-term success in the interest of all those who have a stake in its growth, KlimaDAO has established a more formal approach to governance decisions which is being used today, discussed below.

    Flow of Governance Proposals from Idea to Hard Consensus

    Discord Community

    Discord serves as the primary informal medium for community discussion. There are a wide variety of channels where you can discuss everything from governance proposals to the technicalities of the protocol.

    KlimaDAO’s Discord server is regularly trafficked by the KlimaDAO Foundation Directors, Protocol team members and other DAO contributors where you can seek information and share your thoughts directly in conversation.

    Hosted Events

    KlimaDAO hosts regular office hours, policy chats, and AMA (“Ask Me Anything”) sessions via Twitter spaces and voice chat in Discord. During office hours (check the events section in the Discord), the Protocol team delivers high-level updates on the DAO’s progress, and anyone is free to ask questions either via voice or in text chat for as long as time allows.

    Formal Discussion Forum

    The KlimaDAO Forum is the hub for more formal discussion and debate. Request for Comment (RFC) periods begin here, where people can make their thoughts heard on the latest KlimaDAO Improvement Proposals (KIPs). An RFC can originate internally, from a community member, or from third parties such as carbon project developers seeking funding or new carbon bridges who wish to integrate into the KlimaDAO ecosystem.

    After the RFC, if the community is on-board with the proposal, a formal KIP will be drafted by the policy team, which will be posted on the forum with an informal poll - acting as a temperature check to suggest if the proposal may need alterations or further discussion.

    Proposals can also originate directly from the DAO without an RFC, including for: - major reward rate adjustments - frameworks for DAO operations such as contributor compensation

    Note: only the policy team can post KIP temperature check votes in the “Proposals” section of the forum, but anyone can open a general discussion topic or post an RFC in the “General” section.

    The Guarantee Committee

    The Guarantee Committee is an office held within the Klima Foundation, with the intention of ensuring robustness and integrity around KlimaDAO’s ongoing interactions with the carbon markets. Specifically, the Guarantee Committee is tasked with the thorough examination of RFCs brought forth from the market with regards to KlimaDAO’s carbon financing agreements.

    The Guarantee Committee members are therefore expected to have significant knowledge and experience within the climate finance and environmental market domains. This Committee will be positioned to shepherd the DAO’s initiatives within the climate finance space, and mitigate risks associated with these activities, considering factors such as technical, economic and reputational risks, and conflicts of interests that may arise within the market. The Community will have the opportunity to affirm new appointments to the Guarantee Committee, via a KIP.

    The Committee's authority is exercised with the sole intention of advancing the DAO's interests, ensuring that its operations are not only efficient but also reflective of its core mission. Members of the Guarantee Committee are appointed for a tenure of three years, with the possibility of reappointment, signifying a long-term commitment to the DAO's vision and stability.

    Therefore, the Guarantee Committee will have the ability to make recommendations to the community regarding carbon financing initiatives – however, it will not have the ability to make decisions on behalf of the community (i.e. a KIP will still be required to ratify financing agreements).

    It is anticipated that the Guarantee Committee will at times work with the Klimate Review Committee to progress or raise concerns around RFCs and KIPs specifically pertaining to climate finance.

    Snapshot Voting

    After passing the informal poll on the forum, official KIPs will be published on Snapshot by the Protocol Team for a formal, on-chain vote by KLIMA token holders.

    Voting power on Snapshot is determined by the amount of KLIMA owned in a one-to-one ratio. All forms of KLIMA (such as staked and wrapped) are eligible to vote, except if it is deposited into another DeFi platform or smart contract.

    For comparison, larger and less urgent changes, such as significant reward rate adjustments, or adding new assets to the treasury, will require KIP votes.

    In the event that the policy team or Protocol Team wishes to reserve a new power, such that a KIP vote is not required for a specific action, this change will itself be subject to a vote.

    Promises and Perils of Decentralized Governance

    It’s in the name, KlimaDAO is a DAO, so it’s fully decentralized, right?

    Well, while full decentralization is the long-term goal that KlimaDAO will strive towards, launching a new protocol and immediately decentralizing everything is a recipe for disaster. At launch, complex protocols like ours must be able to react swiftly and decisively to changing market conditions in order to ensure long term success, and as such are vulnerable to poor management, fumbled execution and delayed decision-making.

    In mid-2021, a small team of carbon market professionals and blockchain entrepreneurs conceived of the KlimaDAO protocol as a mechanism to create transparent, liquid carbon markets, while making it more expensive to pollute and enabling new methods of carbon capture to become economically viable.

    When laying the foundations of the protocol, the original Core Team made informed decisions based on their professional experience and expert knowledge of both the Olympus protocol, which inspired KlimaDAO, as well as the legacy carbon markets that we aim to bring on-chain. The shared mental model they developed is encapsulated in the KlimaDAO manifesto, and they shepherded the protocol to launch.

    As the protocol began to take shape, the Core Team brought in early contributors to advise on policy decisions, help manage the community, and set up the DAO’s structure and organization. At this early stage, KIPs were formulated by the Core Team and posted directly on since there was not yet a forum for discussion (only Discord).

    By December of 2021, the DAO formally opened up and began accepting outside applications for contribution across all departments. At the time of writing, there are approximately 100 contributors, with more being onboarded regularly. It has expanded the KIP process to further emphasize community input by adding a Request for Comment period on the KlimaDAO where everyone can question, criticize, or recommend proposals that are less time-sensitive.

    As any new protocol with ambitions of decentralization gets off the ground, the community must take on more responsibility. Gradually the vision of the founding team and the shared mental model of the protocol are internalized by the community, which diminishes the risk of uninformed token votes or a poorly worded proposal throwing the protocol off the rails.

    Initial State

    Since the protocol launched, the Core Team has retained access to contracts and wallets behind 3-of-5 Gnosis Safe multisig wallets - meaning at least 3 Core members must agree to approve a transaction out of 5 total signers. With the , these multisigs are now controlled by legally obligated representatives of Klima Foundation.

    The initial system required a great deal of trust in the Core Team to shepherd the protocol to maturity. Thus, it is important to have a transparent governance process to guide the Core Team’s decisions with ample community input, as well as prepare the community to eventually govern more aspects of the protocol as it is gradually decentralized. Over time, the governance process has continued to mature and promote further decentralization.

    Per the passage of KIP-19, a formal Decentralization Working Group (DWG) was established as of Q2 2022. Made up of representatives from every level of DAO participation, from Core Team to community members, this group , as well as a set of in March 2023. These recommendations led to many KIPs including and .

    Future Vision for Decentralized Governance

    Decentralization is a spectrum rather than a binary. Few, if any, DAOs begin fully decentralized, and KlimaDAO is no exception. Decentralization is a journey, an ideal that DAOs must strive toward. KlimaDAO has made great progress on this journey, but it is still early days.

    One potential issue with limiting KIP publication to the Protocol team and DAO contributors is that the voting process can turn into a “rubber stamp” of changes planned centrally. Over time, our goal is to decentralize as many governance functions as possible, to minimize any dictatorial power exerted by the DAO contributors or Protocol Team and ensure that votes are meaningful.

    However, not all governance functions are amenable to the same systems - for instance, one-to-one token voting can be gamed via bribes or exploited by whales to benefit themselves at the expense of the protocol thus the trial established in KIP-40. Likewise, opening up publication of KIPs on Snapshot to any holder of KLIMA could turn Snapshot into a sprawling mess of poorly structured proposals.

    As we work to decentralize more aspects of the protocol, we will research best practices and seek community input on the optimal governance system for each function.

    A potential solution to responsibly decentralize KIP publication rights is a "stewardship" model, where representatives are elected by token holders to a committee that has publication rights to Snapshot, controlled by a dedicated multisig that requires some level of consensus among the elected representatives before the proposal is published.

    One example of a governance function that we already plan to decentralize (eventually) is the reward rate parameter that contributes to setting the staking . At this time, the Policy team actively manages the reward rate and proposes individual changes via KIPs within a framework laid out in KIP-3. Once the protocol matures and the AKR stabilizes at a more sustainable level, we can turn control over the reward rate over to an on-chain “gauge” that the community votes to change, with changes automatically implemented via a smart contract.

    Further Reading

    Glossary

    AKR

    Annualized KLIMA Rewards is the annualized reward rate in percentage terms, taking into account autocompounding over one year assuming a constant reward yield and constant epoch length.

    Note that AKR is quoted as a ballpark estimate and does not guarantee precise future returns. AKR will go down periodically in accordance with KIP-3 and fluctuates along with Reward Yield due to changes in % of KLIMA staked and Polygon blocktime variability.

    NOTE: AKR was previously called APY.

    APR

    Annual Percentage Rate, is the annualized reward rate without taking the effect of compounding into account.

    BCT

    BCT (Base Carbon Tonne) is a carbon pool governed by KlimaDAO, which accepts any TCO2, independent of project type (e.g. forestry carbon offsets, renewable energy carbon offsets or methane capture offsets). BCT was developed for the launch of KlimaDAO, and as of is managed and owned by KlimaDAO. At this time, the only requirements for TCO2s to be eligible for deposit into the BCT pool are: the TCO2 is verified by Verra, and has vintage later than 2008 (there is also one ).

    CC

    Carbon Custodied, the total amount of tokenized carbon offsets held by the treasury to back KLIMA supply. Includes all carbon offset reserves (e.g. naked BCT, MCO2), as well as a marked down portion of KLIMA/carbon liquidity pairs.

    This metric was formally referred to as "RFV" or "risk-free value" in the context of the Olympus protocol, whose backing is dollar stablecoins. Since carbon offsets are volatile assets whose price can vary over time, this value is not actually "risk free" in the KlimaDAO protocol.

    The carbon is considered "custodied" because, if incoming reserves were to drop to 0 and the protocol simply paid out all remaining staking rewards, CC would be the final supply of KLIMA, backed at IV of 1 tonne of carbon offsets. So, in this endgame scenario, each 1 KLIMA would end up being a claim on 1 tonne of carbon offsets from the treasury - thus CC/KLIMA is the estimated number of carbon offset tonnes that a holder of 1 KLIMA today would have after all staking rewards are paid out if they remain staked until the end.

    C3 Token

    A utility token for the . It is distributed as a reward to users of the protocol that stake, bridge or provide liquidity. C3 can be locked for veC3, which is eligible to vote on C3 protocol decisions and gauge weights. See the for more details on the C3 token.

    C3T

    C3 Tonne (C3T) is the general term for fungible tokenized carbon offsets bridged via C3. When you fractionalize the C3VCU NFT received after bridging, the resulting C3T ERC20 token will have C3T- as a prefix, followed by an information-rich name that includes the registry of origin, the project, and the vintage.

    DAO

    Decentralized Autonomous Organization, is a governance mechanism for making decisions in a more trustless and collaborative way. Voting rights are often bound to a governance token.

    DCV

    Deflation Control Variable, is the scaling factor at which protocol defined buy pressure changes. A higher DCV means more buy pressure from the protocol, resulting in a higher deflation. A lower DCV means less buy pressure from the protocol, resulting in a lower deflation.

    EVM

    Ethereum Virtual Machine, is a state machine in which all Ethereum accounts and smart contracts live. At any given block in the chain, Ethereum has one and only one canonical state, and the EVM is what defines the rules for computing a new valid state from block to block.

    KIP

    Klima Improvement Proposal, the principle mechanism for DAO governance. Most KIPs begin as posts on our , either proposed by DAO contributors, sourced from the community, or brought forward by a third party (typically to propose a partnership).

    All KIPs must pass a vote by token holders on Snapshot prior to implementation - see our for more details on the KIP lifecycle.

    KI

    Klima Infinity is a set of products and features built on top of the core protocol, geared toward scaling the traditional by empowering organizations and individuals to quickly source and retire tokenized carbon credits, to become “climate positive”.

    klima

    The word for "climate" (in Greek and German and many other languages).

    KLIMA

    The primary KlimaDAO token. Each KLIMA is backed by at least one tonne of carbon locked in the KlimaDAO treasury. KLIMA has an intrinsic value underpinned by the value of the carbon reserves. KLIMA is an ERC-20 token originally lauched on the Polygon PoS network.

    MC

    Market capitalization - total market value of all KLIMA tokens in existence KLIMA price * KLIMA supply

    MCO2

    Moss Carbon Credit (MCO2) is a relatively homogenenous, centrally managed pool of tokenized Verra . Moss created it in August 2020, by curating REDD+ projects in the Amazon Rainforest (one in Peru, five in Brazil). MCO2 was the first tokenized carbon credit to be listed on major centralised exchanges like Gemini and Coinbase, and the reconciliation of its ledger pool is done in real time by crypto auditor Armanino.

    More information is available on the .

    NCT

    NCT (Nature-Based Carbon Tonne) is a Toucan Protocol carbon pool, which accepts TCO2 from nature-based methodologies such as avoided deforestation or afforestation. See for the detailed requirements for pooling TCO2 into NCT.

    POL

    Protocol Owned Liquidity, is the amount of LP the treasury owns and controls. The more POL the better for the protocol and its users.

    Reward Rate

    Reward rate is the configured percentage of KLIMA distributed to all stakers on each rebase relative to the total supply. The reward rate is precisely set by the policy team.

    Reward Yield

    Reward yield refers to the actual amount of KLIMA received by each staker on each rebase. The reward yield is a rough target from a policy point of view. It can almost never be maintained precisely due to fluctuating percentage of KLIMA staked and variabilities in Polygon blocktimes.

    RFV

    Risk Free Value - this term has been deprecated in favor of

    SLP

    Sushiswap Liquidity Provider, is the token received when providing liquidity on Sushiswap.

    Staking

    Market participants can deposit their KLIMA tokens in the staking contract to receive additional KLIMA as reward in return. These rewards are distributed via rebasing of the staked token (sKLIMA), which can be unstaked at any time to receive an equal amount of KLIMA.

    TCO2

    Toucan Carbon Tokens (TCO2) is the general term for fungible tokenized carbon offsets bridged via Toucan. When you fractionalize a BatchNFT received after bridging, the resulting TCO2 ERC20 token will have TCO2- as a prefix, followed by an information-rich name that includes the registry of origin, the project, the vintage, and so on. More information on the tokenization process can be found in the .

    Tokenized Carbon Asset

    A Tokenized Carbon Asset (TCA) refers to a carbon asset (e.g. voluntary carbon offset) brought onto the blockchain. TCAs are usually represented as an NFT for bridging purposes, since carbon assets are typically only semi-fungible: each asset has attributes such as vintage, methodology, and country of origin. Tokenized carbon can refer to a single unit (e.g. one carbon offset) or a batch of assets (e.g. a certain number of carbon offsets from a specific project and vintage period). These NFTs can be deposited into Carbon Pools to create fungible ERC-20 tokens representative of that tokenized can that meets those pool's requirements.

    TMV

    Treasury Market Value - the current market value in dollars of all assets held in the treasury, including both reserves and all LP tokens.

    TTC

    Treasury Total Carbon - total carbon offset tonnage held by the KlimaDAO treasury, including both carbon offset reserves and the full value of the carbon assets in all carbon-paired LP pools (both KLIMA/carbon and stablecoin/carbon pairs).

    Note that this value fluctuates up or down as carbon offsets are sold into or bought out of the liquidity pools.

    TWAP

    Time Weighted Average Price, is the average price of an asset over a specified time. TWAPs are used to represent the fair value of an asset as defined by the market.

    VCU

    Verified Carbon Unit (VCU) is a carbon credit issued under the Verra Carbon Standard (VCS). Under the VCS Program, projects are issued unique carbon credits known as Verified Carbon Units or VCUs. Each VCU represents a reduction or removal of one tonne of carbon dioxide equivalent (CO2e) achieved by a project. VCUs are characterized by a number of which are confirmed through the project process. VCUs are ultimately purchased and retired by an end user as a means of offsetting their emissions. All VCU issuance and retirement records are publicly available on the .

    VCM

    The Voluntary Carbon Market is a key tool in the fight against catatrophic climate change. The VCM enables consumers and organizations to fund of projects with real-world climate impact via modern financial market.

    The VCM has been around for decades, but has long suffered from lack of access, opacity, illiquidity, and high transaction fees. KlimaDAO aims to change that by migrating the VCM on-chain, where all market participants can benefit from the advantages of distributed ledger technology.

    Generalized Retirement

    Common Retirement Parameters

    While there are multiple functions available to call based on a user's needs, the base information needed to carry out these transactions is similar among them. The common parameters used by both the exact carbon and exact source functions are as follows:

    Field
    Type
    Description

    All retirement functions return the latest retirement index for the transaction just completed.

    Retire Exact Carbon

    Additional parameter definitions:

    Field
    Type
    Description

    Retire Exact Source

    There are no additional parameters for these functions. They simply transfer in the amount of the source token, and then use all of it to swap (if needed) and retire the specified carbon.

    View Functions

    KIP-57
    blacklisted methodology
    C3 carbon bridge
    C3 docs
    discussion forum
    Governance Framework
    VCM
    VCUs
    Moss website
    this page from Toucan
    Carbon Custodied (CC)
    See the Staking page for more details.
    Toucan docs
    quality assurance principles
    validation and verification
    Verra Registry

    sourceToken

    address

    Source token to use for the retirement. If non-carbon pool, will be swapped to the designated carbon pool.

    poolToken

    address

    Carbon pool token to use for the retirement.

    projectToken

    address

    The token address for the specific carbon project token being redeemed and retired, if applicable.

    maxAmountIn

    uint256

    Maximum amount of the source token to spend. To find the exact amount needed, please refer to the view functions getSourceAmountSpecificRetirement and getSourceAmountDefaultRetirement

    retiringEntityString

    string

    String representation of the retiring entity calling the transaction.

    beneficiaryAddress

    address

    Address for the beneficiary of the retirement. Any NFT certificates created during the retirement will be sent to this address.

    beneficiaryString

    string

    String representation of the beneficiary.

    retirementMessage

    string

    Specific message related to this transaction.

    fromMode

    LibTransfer.From

    Currently only EXTERNAL transactions are supported with this version. The value provided should be 0.

    retireAmount

    uint256

    The amount of carbon to retire. This uses the same number of decimals as the underlying carbon tokens being used.

    function retireExactCarbonDefault(
            address sourceToken,
            address poolToken,
            uint256 maxAmountIn,
            uint256 retireAmount,
            string memory retiringEntityString,
            address beneficiaryAddress,
            string memory beneficiaryString,
            string memory retirementMessage,
            LibTransfer.From fromMode
        ) external payable nonReentrant returns (uint256 retirementIndex) 
    function retireExactCarbonSpecific(
            address sourceToken,
            address poolToken,
            address projectToken,
            uint256 maxAmountIn,
            uint256 retireAmount,
            string memory retiringEntityString,
            address beneficiaryAddress,
            string memory beneficiaryString,
            string memory retirementMessage,
            LibTransfer.From fromMode
        ) external payable nonReentrant returns (uint256 retirementIndex)
    function retireExactSourceDefault(
            address sourceToken,
            address poolToken,
            uint256 maxAmountIn,
            string memory retiringEntityString,
            address beneficiaryAddress,
            string memory beneficiaryString,
            string memory retirementMessage,
            LibTransfer.From fromMode
        ) external payable nonReentrant returns (uint256 retirementIndex)
    function retireExactSourceSpecific(
            address sourceToken,
            address poolToken,
            address projectToken,
            uint256 maxAmountIn,
            string memory retiringEntityString,
            address beneficiaryAddress,
            string memory beneficiaryString,
            string memory retirementMessage,
            LibTransfer.From fromMode
        ) external payable nonReentrant returns (uint256 retirementIndex)
    function getTotalRetirements(address account) external view returns (uint256 totalRetirements) 
    
    function getTotalCarbonRetired(address account) external view returns (uint256 totalCarbonRetired)
    
    function getTotalPoolRetired(address account, address poolToken) external view returns (uint256 totalPoolRetired) 
    
    function getTotalProjectRetired(address account, address projectToken) external view returns (uint256 totalRetired) 
    
    function getTotalRewardsClaimed(address account) external view returns (uint256 totalClaimed)
    
    function getRetirementDetails(address account, uint256 retirementIndex)
        external
        view
        returns (
            address poolTokenAddress,
            address projectTokenAddress,
            address beneficiaryAddress,
            string memory beneficiary,
            string memory retirementMessage,
            uint256 amount
        )
        
    function getSourceAmountSpecificRetirement(
            address sourceToken,
            address carbonToken,
            uint256 retireAmount
        ) external view returns (uint256 amountIn)
        
    function getSourceAmountDefaultRetirement(
            address sourceToken,
            address carbonToken,
            uint256 retireAmount
        ) public view returns (uint256 amountIn)
        
    function getSourceAmountDefaultRedeem(
            address sourceToken,
            address carbonToken, // Pool token being redeemed
            uint256 redeemAmount
        ) public view returns (uint256 amountIn)
    
    function getSourceAmountSpecificRedeem(
            address sourceToken,
            address carbonToken, // Pool token being redeemed
            uint256[] memory redeemAmounts
        ) public view returns (uint256 amountIn)
    https://discord.com/invite/klimadao
    https://forum.klimadao.finance
    (defined in KIP-35)
    https://snapshot.org/#/klimadao.eth/
    Snapshot
    forum
    adoption of the Klima Foundation
    delivered a report on best practices and common antipatterns in decentraized governance
    specific recommendations for KlimaDAO's decentralization roadmap
    KIP-40
    KIP-53: Klima Foundation
    AKR
    Vitalik's blog post on governance beyond token voting
    a16z blog post on the history and principles of DAO governance
    Vitalik's blog post on bulldozer vs. vetocracy

    Retire Carbon

    The following guide is written for V1 of the Retirement Aggregator. To learn more about V2, see V2 - Diamond. For an in-depth review of the retirement aggregator V1 smart contract, see Retirement Aggregator V1 Contract Guide.

    Retiring Carbon via Solidity

    Requirements

    • Get some MATIC to pay for gas fees

    • Get some KLIMA tokens to spend to retire carbon

    • Get the contract addresses from here:

    1. Transfer your source token to your contract

    You can transfer KLIMA tokens to your contract via web3.js and JSON RPC (like using Metamask) or choose to implement a deposit function that calls KLIMA's standard ERC20 approve and transfer functions to allow your contract to transfer users' KLIMA tokens to your contract.

    2. Approving the Aggregator contract

    Your contract's function calls the KLIMA token's standard ERC20 approve function to allow the Aggregator contract to withdraw KLIMA tokens from your contract. In the example below, an interface named IERC20 to interact with the KLIMA token smart contact.

    3. Retiring carbon with the Aggregator contract

    Your contract's function calls the Aggregator contract's retireCarbon function. In the example below, an interface named IKlimaRetirementAggregator is used to interact with the Aggregator contract.

    To fully understand the parameters for the Aggregator contract's functions, we recommend reviewing .

    Example 1

    Use KLIMA to retire BCT with one beneficiary address, name, and retirement message

    Example 2

    Use USDC to retire a specific amount of your choice of carbon token (BCT, NCT, UBO, NBO, MCO2) allowing the caller to set the beneficiary information

    Retirement Aggregator V1 Contract Guide

    Backend contracts for consuming tokenized carbon credits

    V2 of the Retirement Aggregator has been deployed!

    KlimaRetirementAggregator

    Deployment

    The Polygon mainnet master contract for V1 of the Retirement aggregator is deployed to

    Due to the reliance on third party contracts and liquidity pairs on AMMs, it is suggested to test integrations using a forked Polygon mainnet environment. Commonly used tools for this are or .

    State Variables

    Addresses common across the product are stored in the master contract:

    Mappings used to flag and track different tokens and addresses:

    • isPoolToken: address => bool returning whether a pool token address has been added to the master contract.

    • poolBridge: address => uint returning which index number related to the bridge that a pool uses.

    • bridgeHelper: uint => address returning the address of the specific helper contract for the given bridge index.

    Events

    AddressUpdated(uint, address, address)

    • uint addressIndex (found in setAddress)

    • address oldAddress

    • address newAddress

    PoolAdded(address,uint)

    • address poolToken

    • uint bridge

    PoolRemoved(address)

    • address poolToken

    BridgeHelperUpdated(uint, address)

    • uint bridgeID

    • address helper

    Functions

    Common parameters for retireCarbon functions:

    Name
    Type
    Description

    retireCarbon

    Transfers and uses tokens from caller's wallet to swap to the pool if needed and then retire the pool tokens.

    retireCarbonFrom

    Same function as retireCarbon, but does not initiate the transfer of the source tokens to the aggregator. Source tokens must be transferred prior to calling retireCarbonFrom.

    • Additional parameter:

      • address _initiator: Address where any trade dust should be returned.

    retireCarbonSpecific

    Allows a user to specify the underlying offset they choose to retire. This action is subject to any fees imposed by a bridge for the selective redemption of a pool token.

    • Additional parameter:

      • address[] _carbonList: Array of addresses used to redeem pool tokens in order.

    retireCarbonSpecificFrom

    Similar to retireCarbonFrom, this operates the same way and allows a caller to transfer the needed source tokens to the aggregator prior to calling for specific retirement.

    • Additional parameters:

      • address[] _carbonList: Array of addresses used to redeem pool tokens in order.

      • address _initiator: Address where any trade dust should be returned.

    getSourceAmount

    This function calls the specific bridge helper for the supplied pool token and returns both the source and carbon amounts. Parameters are the same as if you were going to use a retireCarbon function call.

    Return Values:

    • uint256 sourceAmount: The total amount of source tokens needed.

    • uint256 carbonAmount: The total amount of carbon tokens needed or used.

    getSourceAmountSpecific

    This function does the same thing as getSourceAmount, but also factors in any pool redemption fees incurred by performing a selective retirement.

    Return Values:

    • uint256 sourceAmount: The total amount of source tokens needed.

    • uint256 carbonAmount: The total amount of carbon tokens needed or used.

    Tokens

    KLIMA

    KLIMA is the primary currency token of KlimaDAO. Backed by carbon credits, KLIMA is the key liquidity pair for the Digital Carbon Market.

    • V1: 0x4e78011Ce80ee02d2c3e649Fb657E45898257815

    sKLIMA

    sKLIMA is the staked form of KLIMA. This allows stakers to gain rebasing rewards.

    • V1:

    wsKLIMA

    wsKLIMA is the wrapped, staked version of KLIMA. This allows you to get the rebasing rewards of sKLIMA, while having a static balance in your wallet.

    • V1:

    aKLIMA

    aKLIMA was Alpha KLIMA, and was given to the LBP participants. This was migrated 1:1 to KLIMA once the protocol was live.

    • V1:

    alKLIMA

    alKlima is Alchemist KLIMA, and was given to users participating in interim Crucible staking program for aKLIMA. This was traded 1:1 to KLIMA once the protocol was live.

    • V1:

    pKLIMA

    pKLIMA is a supply-vested KLIMA derivative token given to stakeholders, advisors, core team, and the DAO. It gives the holder the option to mint KLIMA by burning pKLIMA and providing the intrinsic value of KLIMA. For example, an investor would provide 1 BCT and 1 pKLIMA to mint 1 KLIMA.

    • V1:

    0xb0C22d8D350C67420f06F48936654f567C73E8C8
    0x6f370dba99e32a3cad959b341120db3c9e280ba6
    0xeb935614447185eeea0abc756ff2ddc99fbb9047
    0xd50EC6360f560a59926216Eafb98395AC430C9fD
    0x0af5dee6678869201924930d924a435f6e4839c9
    V1
  • KLIMA

  • Address of carbon token to be retired

  • Retirement Aggregator
    this page

    Staking

  • Staking Helper

  • Treasury

  • Klima Retirement Storage

  • bool

    This flags whether the amount being passed is in carbon to retire (true) or total source tokens to spend (false).

    _beneficiaryAddress

    address

    The address of the account receiving the benefit of retirement.

    _beneficiaryString

    string

    A string representation of the beneficiary. Useful for specifying a company or protocol name in a readable format.

    _retirementMessage

    string

    Represents a specific message related to this retirement transaction. Example being "Retirement for 2022 Q1 travel."

    _sourceToken

    address

    The contract address of the source token being used to retire.

    _poolToken

    address

    The contract address of the pool token being used to retire.

    _amount

    uint256

    Either the amount of pool tokens to retire or the amount of source tokens to use. See _amountInCarbon. Expected values are in the number of decimals for the used token.

    0xEde3bd57a04960E6469B70B4863cE1c9d9363Cb8
    Hardhat
    Foundry
    KLIMA
    sKLIMA
    wsKLIMA
    USDC

    _amountInCarbon

    // SPDX-License-Identifier: MIT
    
    pragma solidity ^0.8.0;
    
    interface IERC20 {
        function decimals() external view returns (uint8);
        /**
         * @dev Returns the amount of tokens in existence.
         */
        function totalSupply() external view returns (uint256);
    
        /**
         * @dev Returns the amount of tokens owned by `account`.
         */
        function balanceOf(address account) external view returns (uint256);
    
        /**
         * @dev Moves `amount` tokens from the caller's account to `recipient`.
         *
         * Returns a boolean value indicating whether the operation succeeded.
         *
         * Emits a {Transfer} event.
         */
        function transfer(address recipient, uint256 amount) external returns (bool);
    
        /**
         * @dev Returns the remaining number of tokens that `spender` will be
         * allowed to spend on behalf of `owner` through {transferFrom}. This is
         * zero by default.
         *
         * This value changes when {approve} or {transferFrom} are called.
         */
        function allowance(address owner, address spender) external view returns (uint256);
    
        /**
         * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
         *
         * Returns a boolean value indicating whether the operation succeeded.
         *
         * IMPORTANT: Beware that changing an allowance with this method brings the risk
         * that someone may use both the old and the new allowance by unfortunate
         * transaction ordering. One possible solution to mitigate this race
         * condition is to first reduce the spender's allowance to 0 and set the
         * desired value afterwards:
         * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
         *
         * Emits an {Approval} event.
         */
        function approve(address spender, uint256 amount) external returns (bool);
    
        /**
         * @dev Moves `amount` tokens from `sender` to `recipient` using the
         * allowance mechanism. `amount` is then deducted from the caller's
         * allowance.
         *
         * Returns a boolean value indicating whether the operation succeeded.
         *
         * Emits a {Transfer} event.
         */
        function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    
        /**
         * @dev Emitted when `value` tokens are moved from one account (`from`) to
         * another (`to`).
         *
         * Note that `value` may be zero.
         */
        event Transfer(address indexed from, address indexed to, uint256 value);
    
        /**
         * @dev Emitted when the allowance of a `spender` for an `owner` is set by
         * a call to {approve}. `value` is the new allowance.
         */
        event Approval(address indexed owner, address indexed spender, uint256 value);
    }
    
    interface IKlimaRetirementAggregator {
        function retireCarbon(address _sourceToken,address _poolToken,uint256 _amount,bool _amountInCarbon,address _beneficiaryAddress,string memory _beneficiaryString,string memory _retirementMessage) external;
        function isPoolToken(address poolToken) external view returns ( bool );
    }
    
    contract MyContract {
        address public immutable KlimaRetirementAggregator;
        
        address public immutable KLIMA;
        address public immutable BCT;
        
        address public beneficiaryAddress;
        string public beneficiaryName;
        string public retirementMessage;
        
        
        /**
         * @notice This function will attempt to swap KLIMA to the selected carbon token and then retire.
         *
         * @param _amount The total amount of KLIMA you want to use to retire.
         */
        function retire( uint _amount ) public {
            IERC20(KLIMA).approve( KlimaRetirementAggregator, _amount );
            IKlimaRetirementAggregator( KlimaRetirementAggregator ).retireCarbon( KLIMA, BCT, _amount, false, beneficiaryAddress, beneficiaryName, retirementMessage );
        } 
    }
    // SPDX-License-Identifier: MIT
    
    pragma solidity ^0.8.0;
    
    interface IERC20 {
        function decimals() external view returns (uint8);
        /**
         * @dev Returns the amount of tokens in existence.
         */
        function totalSupply() external view returns (uint256);
    
        /**
         * @dev Returns the amount of tokens owned by `account`.
         */
        function balanceOf(address account) external view returns (uint256);
    
        /**
         * @dev Moves `amount` tokens from the caller's account to `recipient`.
         *
         * Returns a boolean value indicating whether the operation succeeded.
         *
         * Emits a {Transfer} event.
         */
        function transfer(address recipient, uint256 amount) external returns (bool);
    
        /**
         * @dev Returns the remaining number of tokens that `spender` will be
         * allowed to spend on behalf of `owner` through {transferFrom}. This is
         * zero by default.
         *
         * This value changes when {approve} or {transferFrom} are called.
         */
        function allowance(address owner, address spender) external view returns (uint256);
    
        /**
         * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
         *
         * Returns a boolean value indicating whether the operation succeeded.
         *
         * IMPORTANT: Beware that changing an allowance with this method brings the risk
         * that someone may use both the old and the new allowance by unfortunate
         * transaction ordering. One possible solution to mitigate this race
         * condition is to first reduce the spender's allowance to 0 and set the
         * desired value afterwards:
         * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
         *
         * Emits an {Approval} event.
         */
        function approve(address spender, uint256 amount) external returns (bool);
    
        /**
         * @dev Moves `amount` tokens from `sender` to `recipient` using the
         * allowance mechanism. `amount` is then deducted from the caller's
         * allowance.
         *
         * Returns a boolean value indicating whether the operation succeeded.
         *
         * Emits a {Transfer} event.
         */
        function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    
        /**
         * @dev Emitted when `value` tokens are moved from one account (`from`) to
         * another (`to`).
         *
         * Note that `value` may be zero.
         */
        event Transfer(address indexed from, address indexed to, uint256 value);
    
        /**
         * @dev Emitted when the allowance of a `spender` for an `owner` is set by
         * a call to {approve}. `value` is the new allowance.
         */
        event Approval(address indexed owner, address indexed spender, uint256 value);
    }
    
    interface IKlimaRetirementAggregator {
        function retireCarbon( address _sourceToken, address _poolToken, uint256 _amount, bool _amountInCarbon, address _beneficiaryAddress, string memory _beneficiaryString, string memory _retirementMessage) external;
        function isPoolToken( address poolToken) external view returns ( bool );
        function getSourceAmount( address _sourceToken, address _poolToken, uint256 _amount, bool _amountInCarbon ) external view returns ( uint256, uint256 );
    }
    
    contract MyContract {
        address public immutable KlimaRetirementAggregator;
        
        address public immutable USDC;
        
         /**
         * @notice This function will attempt to swap USDC to specified number of the selected carbon token and then retire.
         *
         * @param _amount The total amount of tons you want to retire.
         * @param _poolToken The contract address of the carbon token being retired.
         * @param _beneficiaryAddress Address of the beneficiary of the retirement.
         * @param _beneficiaryString String representing the beneficiary. A name perhaps.
         * @param _retirementMessage Specific message relating to this retirement event.
         */
        function swapAndRetire( uint _amount, address _poolToken, address _beneficiaryAddress, string memory _beneficiaryString, string memory _retirementMessage ) public {
            (uint approvalAmount, ) = IKlimaRetirementAggregator( KlimaRetirementAggregator ).getSourceAmount( USDC, _poolToken, _amount, true );
            IERC20(USDC).approve( KlimaRetirementAggregator, approvalAmount );
            IKlimaRetirementAggregator( KlimaRetirementAggregator ).retireCarbon( USDC, _poolToken, _amount, true, beneficiaryAddress, beneficiaryName, retirementMessage );
        } 
    }
    function retireCarbon(
            address _sourceToken,
            address _poolToken,
            uint256 _amount,
            bool _amountInCarbon,
            address _beneficiaryAddress,
            string memory _beneficiaryString,
            string memory _retirementMessage
        ) publicid
    function retireCarbonFrom(
            address _initiator,
            address _sourceToken,
            address _poolToken,
            uint256 _amount,
            bool _amountInCarbon,
            address _beneficiaryAddress,
            string memory _beneficiaryString,
            string memory _retirementMessage
        ) public
    function retireCarbonSpecific(
            address _sourceToken,
            address _poolToken,
            uint256 _amount,
            bool _amountInCarbon,
            address _beneficiaryAddress,
            string memory _beneficiaryString,
            string memory _retirementMessage,
            address[] memory _carbonList
        ) public
    function retireCarbonSpecificFrom(
            address _initiator,
            address _sourceToken,
            address _poolToken,
            uint256 _amount,
            bool _amountInCarbon,
            address _beneficiaryAddress,
            string memory _beneficiaryString,
            string memory _retirementMessage,
            address[] memory _carbonList
        ) public
    function getSourceAmount(
            address _sourceToken,
            address _poolToken,
            uint256 _amount,
            bool _amountInCarbon
        ) public view returns (uint256, uint256)
    function getSourceAmountSpecific(
            address _sourceToken,
            address _poolToken,
            uint256 _amount,
            bool _amountInCarbon
        ) public view returns (uint256, uint256)

    Stake KLIMA

    Staking KLIMA via Solidity

    Requirements

    • Get some MATIC to pay for gas fees

    • Get some KLIMA tokens to stake

    • Get the contract addresses from here:

    1. Transfer KLIMA to your contract

    You can transfer KLIMA tokens to your contract via web3.js and JSON RPC (like using Metamask) or choose to implement a deposit function that calls KLIMA's standard ERC20 approve and transfer functions to allow your contract to transfer users' KLIMA tokens to your contract.

    2. Approving the StakingHelper contract

    Your contract's function calls the KLIMA token's standard ERC20 approve function to allow the StakingHelper contract to withdraw KLIMA tokens from your contract. In the example below, an interface named IERC20 to interact with the KLIMA token smart contact.

    3. Staking KLIMA tokens

    Your contract's function calls the StakingHelper contract's stake function. In the example below, an interface named IStakingHelper is used to interact with the StakingHelper contract.

    Once staked, you will receive a proportional amount of sKLIMA to represent the staked KLIMA. sKLIMA is an ERC20 and can transferred using the IERC20 interface.

    Example

    Unstaking KLIMA via Solidity

    Requirements

    • Get some MATIC to pay for gas fees

    • Get some sKLIMA tokens to unstake

    • Get the contract addresses from here:

    The following assumes your contract already holds sKLIMA. You can follow the same steps above to transfer sKLIMA to your contract if necessary.

    1. Approving the Staking contract

    Your contract's function calls the sKLIMA token's standard ERC20 approve function to allow the Staking contract to withdraw sKLIMA tokens from your contract. In the example below, an interface named IERC20 to interact with the sKLIMA token smart contact.

    2. Unstaking sKLIMA tokens

    Your contract's function calls the Staking contract's unstake function. In the example below, an interface named IStaking is used to interact with the Staking contract. The default value for bool _trigger is false unless you wish to trigger the rebase.

    Once unstaked, you will receive a proportional amount of KLIMA. KLIMA is an ERC20 and can transferred using the IERC20 interface.

    Example

    Wrap sKLIMA

    Why would you wrap sKLIMA?

    wsKLIMA is an index-adjusted wrapper for sKLIMA. Some people may find this useful for accounting purposes. Unlike an sKLIMA balance, a wsKLIMA balance will not increase over time.

    When wsKLIMA is unwrapped, holders receive sKLIMA based on the latest (ever-increasing) index, so the total yield is the same.

    Policy

    The policy contract is an address guarded by a simple Gnosis safe implementation. The policy address manages adjustments of the monetary policy of the KlimaDAO protocol. This includes BCV and reward rate adjustments.

    Access to the policy address is controlled by a 3 of 5 multi-sig held by members of the Core Team. Changes made via the policy address are either voted on by the token holders specifically as a KIP, or implemented under a specific power delegated to the Policy Team via a KIP.

    • V1:

    0xD2f4A710b7dB5C0A05f17b68Fd5dA3C4c6b63be1

    sKLIMA

  • KLIMA

  • sKLIMA

  • StakingHelper
    Staking
    KLIMA
    Staking
    // SPDX-License-Identifier: MIT
    
    pragma solidity ^0.8.0;
    
    interface IERC20 {
        function decimals() external view returns (uint8);
        /**
         * @dev Returns the amount of tokens in existence.
         */
        function totalSupply() external view returns (uint256);
    
        /**
         * @dev Returns the amount of tokens owned by `account`.
         */
        function balanceOf(address account) external view returns (uint256);
    
        /**
         * @dev Moves `amount` tokens from the caller's account to `recipient`.
         *
         * Returns a boolean value indicating whether the operation succeeded.
         *
         * Emits a {Transfer} event.
         */
        function transfer(address recipient, uint256 amount) external returns (bool);
    
        /**
         * @dev Returns the remaining number of tokens that `spender` will be
         * allowed to spend on behalf of `owner` through {transferFrom}. This is
         * zero by default.
         *
         * This value changes when {approve} or {transferFrom} are called.
         */
        function allowance(address owner, address spender) external view returns (uint256);
    
        /**
         * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
         *
         * Returns a boolean value indicating whether the operation succeeded.
         *
         * IMPORTANT: Beware that changing an allowance with this method brings the risk
         * that someone may use both the old and the new allowance by unfortunate
         * transaction ordering. One possible solution to mitigate this race
         * condition is to first reduce the spender's allowance to 0 and set the
         * desired value afterwards:
         * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
         *
         * Emits an {Approval} event.
         */
        function approve(address spender, uint256 amount) external returns (bool);
    
        /**
         * @dev Moves `amount` tokens from `sender` to `recipient` using the
         * allowance mechanism. `amount` is then deducted from the caller's
         * allowance.
         *
         * Returns a boolean value indicating whether the operation succeeded.
         *
         * Emits a {Transfer} event.
         */
        function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    
        /**
         * @dev Emitted when `value` tokens are moved from one account (`from`) to
         * another (`to`).
         *
         * Note that `value` may be zero.
         */
        event Transfer(address indexed from, address indexed to, uint256 value);
    
        /**
         * @dev Emitted when the allowance of a `spender` for an `owner` is set by
         * a call to {approve}. `value` is the new allowance.
         */
        event Approval(address indexed owner, address indexed spender, uint256 value);
    }
    
    interface IStakingHelper {
        function stake(uint256 _amount) external;
    }
    
    contract MyContract {
        address public immutable stakingHelper;
        address public immutable KLIMA;
        
        function stake( uint _amount ) public {
            IERC20( KLIMA ).approve( stakingHelper, _amount );
            IStakingHelper( stakingHelper ).stake( _amount );
        } 
    }
    // SPDX-License-Identifier: MIT
    
    pragma solidity ^0.8.0;
    
    interface IERC20 {
        function decimals() external view returns (uint8);
        /**
         * @dev Returns the amount of tokens in existence.
         */
        function totalSupply() external view returns (uint256);
    
        /**
         * @dev Returns the amount of tokens owned by `account`.
         */
        function balanceOf(address account) external view returns (uint256);
    
        /**
         * @dev Moves `amount` tokens from the caller's account to `recipient`.
         *
         * Returns a boolean value indicating whether the operation succeeded.
         *
         * Emits a {Transfer} event.
         */
        function transfer(address recipient, uint256 amount) external returns (bool);
    
        /**
         * @dev Returns the remaining number of tokens that `spender` will be
         * allowed to spend on behalf of `owner` through {transferFrom}. This is
         * zero by default.
         *
         * This value changes when {approve} or {transferFrom} are called.
         */
        function allowance(address owner, address spender) external view returns (uint256);
    
        /**
         * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
         *
         * Returns a boolean value indicating whether the operation succeeded.
         *
         * IMPORTANT: Beware that changing an allowance with this method brings the risk
         * that someone may use both the old and the new allowance by unfortunate
         * transaction ordering. One possible solution to mitigate this race
         * condition is to first reduce the spender's allowance to 0 and set the
         * desired value afterwards:
         * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
         *
         * Emits an {Approval} event.
         */
        function approve(address spender, uint256 amount) external returns (bool);
    
        /**
         * @dev Moves `amount` tokens from `sender` to `recipient` using the
         * allowance mechanism. `amount` is then deducted from the caller's
         * allowance.
         *
         * Returns a boolean value indicating whether the operation succeeded.
         *
         * Emits a {Transfer} event.
         */
        function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    
        /**
         * @dev Emitted when `value` tokens are moved from one account (`from`) to
         * another (`to`).
         *
         * Note that `value` may be zero.
         */
        event Transfer(address indexed from, address indexed to, uint256 value);
    
        /**
         * @dev Emitted when the allowance of a `spender` for an `owner` is set by
         * a call to {approve}. `value` is the new allowance.
         */
        event Approval(address indexed owner, address indexed spender, uint256 value);
    }
    
    interface IStaking {
        function unstake(uint256 _amount, bool _trigger) external;
    }
    
    contract MyContract {
        address public immutable staking;
        address public immutable sKLIMA;
        
        function unstake( uint _amount ) public {
            IERC20( sKLIMA ).approve( staking, _amount );
            IStaking( staking ).unstake( _amount, false );
        } 
    }
    What is the index?

    The Index refers to the amount of KLIMA tokens accumulated if a staker had staked 1 KLIMA token from the first rebasing epoch.

    The index can be used to track or check an sKLIMA position by marking down the index number at the point that KLIMA is staked, and that sKLIMA is unstaked.

    Similarly, the index can be used to define a wsKLIMA position. This is achieved by dividing the index number when wsKLIMA is unwrapped by the index at the time of wrapping.

    The wsKLIMA smart contract also has handy functions wKLIMATosKLIMA(uint256 _amount) and sKLIMATowKLIMA(uint256 _amount) to calculate the conversion of sKLIMA to wsKLIMA and vice versa.

    Wrapping sKLIMA via Solidity

    Requirements

    • Get some MATIC to pay for gas fees

    • Get some sKLIMA tokens to wrap

    • Get the contract addresses from here:

      • StakingHelper

    1. Transfer sKLIMA to your contract

    You can transfer sKLIMA tokens to your contract via web3.js and JSON RPC (like using Metamask) or choose to implement a deposit and stake function that calls KLIMA's standard ERC20 approve and transfer functions to allow your contract to transfer users' KLIMA tokens to your contract and stake it.

    2. Approving the wsKLIMA contract

    Your contract's function calls the sKLIMA token's standard ERC20 approve function to allow the wsKLIMA contract to withdraw sKLIMA tokens from your contract. In the example below, an interface named IERC20 to interact with the sKLIMA token smart contact.

    3. Wrapping sKLIMA tokens

    Your contract's function calls the wsKLIMA contract's wrap function. In the example below, an interface named IwsKLIMA is used to interact with the wsKLIMA contract.

    Once wrapped, you will receive wsKLIMA tokens proportional to the amount of sKLIMA divided by the current index. to represent the staked KLIMA. sKLIMA is an ERC20 and can transferred using the IERC20 interface.

    Example

    Unwrapping wsKLIMA via Solidity

    Requirements

    • Get some MATIC to pay for gas fees

    • Get some wsKLIMA tokens to unwrap

    • Get the contract addresses from here:

      • Staking

    The following assumes your contract already holds wsKLIMA. You can follow the same steps above to transfer wsKLIMA to your contract if necessary.

    There is no need to approve wsKLIMA to be unwrapped because it is a function of the wsKLIMA contract.

    1. Unwrapping wsKLIMA tokens

    Your contract's function calls the wsKLIMA contract's unwrap function. In the example below, an interface named IwsKLIMA is used to interact with the wsKLIMA contract.

    Once unwrapped, you will receive a proportional amount of sKLIMA multiplied by the current index. sKLIMA is an ERC20 and can transferred using the IERC20 interface.

    Example

    // SPDX-License-Identifier: MIT
    
    pragma solidity ^0.8.0;
    
    interface IERC20 {
        function decimals() external view returns (uint8);
        /**
         * @dev Returns the amount of tokens in existence.
         */
        function totalSupply() external view returns (uint256);
    
        /**
         * @dev Returns the amount of tokens owned by `account`.
         */
        function balanceOf(address account) external view returns (uint256);
    
        /**
         * @dev Moves `amount` tokens from the caller's account to `recipient`.
         *
         * Returns a boolean value indicating whether the operation succeeded.
         *
         * Emits a {Transfer} event.
         */
        function transfer(address recipient, uint256 amount) external returns (bool);
    
        /**
         * @dev Returns the remaining number of tokens that `spender` will be
         * allowed to spend on behalf of `owner` through {transferFrom}. This is
         * zero by default.
         *
         * This value changes when {approve} or {transferFrom} are called.
         */
        function allowance(address owner, address spender) external view returns (uint256);
    
        /**
         * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
         *
         * Returns a boolean value indicating whether the operation succeeded.
         *
         * IMPORTANT: Beware that changing an allowance with this method brings the risk
         * that someone may use both the old and the new allowance by unfortunate
         * transaction ordering. One possible solution to mitigate this race
         * condition is to first reduce the spender's allowance to 0 and set the
         * desired value afterwards:
         * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
         *
         * Emits an {Approval} event.
         */
        function approve(address spender, uint256 amount) external returns (bool);
    
        /**
         * @dev Moves `amount` tokens from `sender` to `recipient` using the
         * allowance mechanism. `amount` is then deducted from the caller's
         * allowance.
         *
         * Returns a boolean value indicating whether the operation succeeded.
         *
         * Emits a {Transfer} event.
         */
        function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    
        /**
         * @dev Emitted when `value` tokens are moved from one account (`from`) to
         * another (`to`).
         *
         * Note that `value` may be zero.
         */
        event Transfer(address indexed from, address indexed to, uint256 value);
    
        /**
         * @dev Emitted when the allowance of a `spender` for an `owner` is set by
         * a call to {approve}. `value` is the new allowance.
         */
        event Approval(address indexed owner, address indexed spender, uint256 value);
    }
    
    interface IwsKLIMA {
        function wrap(uint256 _amount) external returns (uint256);
    
        function unwrap(uint256 _amount) external returns (uint256);
    
        function wKLIMATosKLIMA(uint256 _amount) external view returns (uint256);
    
        function sKLIMATowKLIMA(uint256 _amount) external view returns (uint256);
    }
    
    contract MyContract {
        address public immutable wsKLIMA;
        address public immutable sKLIMA;
        
        function wrap( uint _amount ) public {
            IERC20( sKLIMA ).approve( wsKLIMA , _amount );
            IwsKLIMA( stakingHelper ).wrap( _amount );
        } 
    }
    // SPDX-License-Identifier: MIT
    
    pragma solidity ^0.8.0;
    
    interface IERC20 {
        function decimals() external view returns (uint8);
        /**
         * @dev Returns the amount of tokens in existence.
         */
        function totalSupply() external view returns (uint256);
    
        /**
         * @dev Returns the amount of tokens owned by `account`.
         */
        function balanceOf(address account) external view returns (uint256);
    
        /**
         * @dev Moves `amount` tokens from the caller's account to `recipient`.
         *
         * Returns a boolean value indicating whether the operation succeeded.
         *
         * Emits a {Transfer} event.
         */
        function transfer(address recipient, uint256 amount) external returns (bool);
    
        /**
         * @dev Returns the remaining number of tokens that `spender` will be
         * allowed to spend on behalf of `owner` through {transferFrom}. This is
         * zero by default.
         *
         * This value changes when {approve} or {transferFrom} are called.
         */
        function allowance(address owner, address spender) external view returns (uint256);
    
        /**
         * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
         *
         * Returns a boolean value indicating whether the operation succeeded.
         *
         * IMPORTANT: Beware that changing an allowance with this method brings the risk
         * that someone may use both the old and the new allowance by unfortunate
         * transaction ordering. One possible solution to mitigate this race
         * condition is to first reduce the spender's allowance to 0 and set the
         * desired value afterwards:
         * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
         *
         * Emits an {Approval} event.
         */
        function approve(address spender, uint256 amount) external returns (bool);
    
        /**
         * @dev Moves `amount` tokens from `sender` to `recipient` using the
         * allowance mechanism. `amount` is then deducted from the caller's
         * allowance.
         *
         * Returns a boolean value indicating whether the operation succeeded.
         *
         * Emits a {Transfer} event.
         */
        function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    
        /**
         * @dev Emitted when `value` tokens are moved from one account (`from`) to
         * another (`to`).
         *
         * Note that `value` may be zero.
         */
        event Transfer(address indexed from, address indexed to, uint256 value);
    
        /**
         * @dev Emitted when the allowance of a `spender` for an `owner` is set by
         * a call to {approve}. `value` is the new allowance.
         */
        event Approval(address indexed owner, address indexed spender, uint256 value);
    }
    
    interface IwsKLIMA {
        function wrap(uint256 _amount) external returns (uint256);
    
        function unwrap(uint256 _amount) external returns (uint256);
    
        function wKLIMATosKLIMA(uint256 _amount) external view returns (uint256);
    
        function sKLIMATowKLIMA(uint256 _amount) external view returns (uint256);
    }
    
    contract MyContract {
        address public immutable wsKLIMA;
        address public immutable sKLIMA;
        
        function unwrap( uint _amount ) public {
            IwsKLIMA( wsKLIMA ).unwrap( _amount );
        } 
    }
    Staking
    wsKLIMA
    sKLIMA
    KLIMA
    sKLIMA

    Deployment Addresses

    See this constants file in our public frontend repository for a complete listing of the testnet contract addresses.

    Name
    Address
    Source Code
    Explorer

    KlimaToken

    0x4e78011Ce80ee02d2c3e649Fb657E45898257815

    Liquidity Pools (LP)

    Name
    Address
    Source Code
    Explorer

    Name
    Address
    Source Code
    Explorer

    Name
    Address
    Source Code
    Explorer

    MCO2/KLIMA

    0x64a3b8cA5A7e406A78e660AE10c7563D9153a739

    UBO/KLIMA

    0x5400A05B8B45EaF9105315B4F2e31F806AB706dE

    NBO/KLIMA

    0x251cA6A70cbd93Ccd7039B6b708D4cb9683c266C

    NCT/KLIMA

    0xb2D0D5C86d933b0aceFE9B95bEC160d514d152E1

    0xa79cd47655156b299762dfe92a67980805ce5a31

    Liquidity Pools (LP)

    Name
    Address
    Explorer

    KLIMA/WETH

    0xB37642E87613d8569Fd8Ec80888eA6c63684E79e

    KLIMA/USDC

    0x958682eC6282BC7E939FA8Ba9397805C214c3A09

    KLIMA/BCT

    0x6e2f9520919bd95889b27E0B2f735ac7ED149837

    BCT/USDC

    wsKLIMA

    Code

    Link

    KlimaStaking

    0x2960DCE5aE04eF503b36f8581EA5Ac5238632092

    StakingHelper

    0x4D70a031Fc76DA6a9bC0C922101A05FA95c3A227

    Distributor

    0xd49869652B3F194F73eC29a6954bC5DE6baeA8b8

    KlimaRetirementAggregator

    Code

    Link

    KlimaCarbonRetirements

    Code

    Link

    KlimaProV2

    Code

    Link

    KlimaTreasury

    Code

    Link

    DAO Multisig Wallet

    Code

    Link

    Liquidity Pools (LP)

    Name
    Address
    Source Code
    Explorer

    KLIMA/USDC

    Code

    Link

    BCT/KLIMA

    0xb7225519550ED89C9B36c88d57d6059F698AaE97

    Code

    Link

    BCT/USDC

    sKLIMA

    0xb0C22d8D350C67420f06F48936654f567C73E8C8

    Code

    Link

    wsKLIMA

    0x6f370dba99E32A3cAD959b341120DB3C9E280bA6

    Code

    Link

    BCT

    0x2F800Db0fdb5223b3C3f354886d907A671414A7F

    Code

    Link

    KlimaStaking

    0x25d28a24Ceb6F81015bB0b2007D795ACAc411b4d

    Code

    Link

    StakingHelper

    0x4D70a031Fc76DA6a9bC0C922101A05FA95c3A227

    Code

    Link

    Distributor

    0x4cC7584C3f8FAABf734374ef129dF17c3517e9cB

    Code

    Link

    KlimaRetirementAggregator

    0xEde3bd57a04960E6469B70B4863cE1c9d9363Cb8

    Code

    Link

    KlimaRetirementAggregator V2

    0x8cE54d9625371fb2a068986d32C85De8E6e995f8

    Code

    Link

    KlimaCarbonRetirements

    0xac298CD34559B9AcfaedeA8344a977eceff1C0Fd

    Code

    Link

    KlimaProV2

    0xcf37f6B4754b34eA32a49cF5def3095a17732C1b

    Code

    Link

    KlimaTreasury

    0x7Dd4f0B986F032A44F913BF92c9e8b7c17D77aD7

    Code

    Link

    DAO Multisig Wallet

    0x65A5076C0BA74e5f3e069995dc3DAB9D197d995c

    Code

    Link

    KLIMA/USDC.e

    0x5786b267d35F9D011c4750e0B0bA584E1fDbeAD1

    Code

    Link

    BCT/KLIMA

    0x9803c7ae526049210a1725f7487af26fe2c24614

    Code

    Link

    BCT/USDC

    KLIMA

    0xdcefd8c8fcc492630b943abcab3429f12ea9fea2

    Code

    Link

    BCT

    0x576Bca23DcB6d94fF8E537D88b0d3E1bEaD444a2

    Code

    Link

    KlimaToken

    0x6b4499909fD8947A3bdEa5d524Fb3697018fC750

    Code

    Link

    sKLIMA

    0xDe0cD0D51b9981BaB50DB974a1877c1C01b86e91

    Code

    Code
    Link

    0x1e67124681b402064cd0abe8ed1b5c79d2e02f64

    KlimaDAO Multisig

    0x77e09a5043820820390904357463BfB739a76104

    Link

    KLIMA/CHAR

    0xDA1a472eb7b27933BAA4EB985392db51f6799eee

    Link

    0x1c08a37dfFc0f482B61E802781f2c29eD9316ba6

    Code

    Link

    MCO2/KLIMA

    Code

    Link

    UBO/KLIMA

    Code

    Link

    NBO/KLIMA

    Code

    Link

    Code
    Link
    Code
    Link
    Code
    Link
    Code
    Link
    Code
    Link
    Code
    Link
    Link
    Link
    Link
    Link
    Code
    Link
    Code
    Link
    Code
    Link