Skip to content

Commit 6855f00

Browse files
committed
update README and mention Open Source roadmap
Also add CONTRIBUTING.md.
1 parent 19cd5ff commit 6855f00

File tree

5 files changed

+70
-83
lines changed

5 files changed

+70
-83
lines changed

CONTRIBUTING.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Contributing to Toucan Protocol
2+
3+
You are welcome to [file issues][issues] or [pull requests][PRs] in
4+
this repository.
5+
6+
You can also reach us on our [Discord server][].
7+
8+
We are currently very early in our journey towards publishing the
9+
protocol as Open Source, and this is a big task which will take time,
10+
so please bear with us. As we publish more components, collaboration
11+
with the community will become progressively easier.
12+
13+
[issues]: https://github.com/ToucanProtocol/contracts/issues
14+
[PRs]: https://help.github.com/articles/using-pull-requests/
15+
[Discord server]: https://toucan.earth/discord

README.md

Lines changed: 55 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,55 @@ SPDX-FileCopyrightText: 2021 Toucan Labs
44
SPDX-License-Identifier: LicenseRef-Proprietary
55
-->
66

7-
# Smart contracts of the Toucan Protocol
8-
This repository contains only the smart contracts of Toucan Protocol.
9-
Since Toucan Protocol has upgradable smart contracts built with the UUPS proxy system by Open Zeppelin, changes of already deployed contracts are realized on-chain by an upgrade process, which is subject to scheduling. In order to view the latest state, we recommend viewing the implementation contract's source code on the respective block explorer (e.g. Polygonscan).
7+
![Toucan logo](docs/images/GitHub-header.jpg)
108

11-
# Toucan Protocol tokenizer
9+
# Toucan Protocol smart contracts
1210

13-
We're building a protocol that allows anybody to bring carbon credits on-chain via tokenization, directly sell or aggregate them in carbon index pools.
11+
This repository contains Toucan Protocol's smart contracts and
12+
corresponding deployment artifacts.
1413

15-
We want to bring carbon as an asset class to DeFi and unlock the myriad possibilities for its integration into decentralized products.
14+
During normal development, the code here may be slightly ahead or
15+
behind of the active contracts onchain. In order to view the latest
16+
state onchain, we recommend viewing the implementation contract's
17+
source code on the respective block explorer (e.g. Polygonscan).
18+
These can be found easily via our web app which provides [this full
19+
list of the active contracts](https://toucan.earth/contracts).
1620

17-
This repository contains an MVP for the tokenization of legacy (real-world) carbon credits.
21+
# About Toucan Protocol
1822

19-
## Install
23+
Toucan builds infrastructure to accelerate global climate action.
24+
Since our launch in 2021, we've led in real-world asset (RWA)
25+
tokenization, bringing $100 million in carbon credits onchain and
26+
enabling $4 billion in transactional volume. Our focus is on
27+
integrating high-integrity carbon removal throughout the crypto
28+
ecosystem, making climate action more transparent, accessible, and
29+
efficient.
30+
31+
Our website is <https://toucan.earth>.
32+
33+
# Documentation
34+
35+
To find out the technical details of Toucan Protocol, please see
36+
<https://docs.toucan.earth>.
37+
38+
# Roadmap to an Open Source protocol
39+
40+
In addition to what's published in this repository, we have many other
41+
technical components which we intend to publish as part of a planned
42+
initiative to incrementally Open Source the protocol, including the
43+
following:
44+
45+
- Test suite for the smart contracts
46+
- Protocol deployment / maintenance scripts (hardhat tasks etc.)
47+
- Source code for [the protocol's
48+
subgraphs](https://thegraph.com/explorer/profile/0xbf2dfa6ca10f115861f23fd9733eb0b02a21919a?view=Subgraphs&chain=arbitrum-one)
49+
50+
We are currently working on preparing these in a form suitable for
51+
publication. This is quite a big task, so it will happen gradually.
52+
53+
# Technical details
54+
55+
## Installation
2056

2157
```console
2258
git clone https://github.com/ToucanProtocol/contracts
@@ -25,91 +61,28 @@ yarn
2561
yarn compile
2662
```
2763

28-
## Stack
64+
## Tech stack
2965

3066
- Smart contracts are written in [Solidity](https://soliditylang.org/)
3167
- [Hardhat development environment](https://hardhat.org/) and various plugins
3268
- [`ethers.js`](https://docs.ethers.io/v5/)
3369
- [TheGraph](https://thegraph.com) for indexing of blockchain data
70+
- Since some of the smart contracts are upgradable via the UUPS proxy
71+
system provided by Open Zeppelin, changes of already deployed
72+
contracts are realized on-chain by an upgrade process, which is
73+
subject to scheduling and governance processes.
3474

35-
## Tokenization overview
36-
37-
The diagram below depicts a simplified version of the Toucan Protocol.
38-
The entry point is a user that wants to tokenize their carbon offset credits.
39-
The project NFTs that contain meta data about offsetting projects are not depicted in this diagram for simplification purposes.
40-
![Tokenization](documentation/diagrams/MVP-Arch-overview-v0.7.png)
41-
42-
> See [our documentation][defi-refi] for more information about Toucan's goals and strategy, and the [carbon bridge].
43-
44-
### Steps 1-4: Bridging carbon offsets
45-
46-
1. Alice, the offset owner first mints an empty batch NFT. The NFT stores information related to the Verra retirement event, including serial number, project-vintage and quantity in tonnes.
47-
48-
1.1. Alice retires the corresponding VCUs in the Verra registry with all the retirement details provided by the front-end, including the TXID of the transaction which minted the batch NFT in the retirement details. This links the retired [VCUs] in the registry to the batch NFT.
49-
50-
1.2. The retirement (cancellation) of the VCUs generates a serial number in the Verra registry. Depending on whether Alice has direct access to Verra, she either gets the serial number herself, or her retailer sends it to her.
51-
52-
1.3. Alice updates the NFT to add the serial number and the quantity of carbon tonnes retired. This provides a link back from the NFT to the VCUs in the Verra registry.
53-
54-
2. After updating the batch with data, a number of validation protocols on the pending batch are run, cross checking information in the NFT against the Verra registry, to confirm that the offsets exist as specified, and have been retired correctly. This protects against any double-counting of offsets.
55-
56-
3. During the confirmation process, it is ensured that the corresponding data tokens (ProjectData-NFT, ProjectVintageData-NFT) and a corresponding ERC20 contract (named TCO2) for fractionalizaton of the Batch-NFTs exist.
75+
# Contributing
5776

58-
4. The Batch-NFT, which in this example represents 100k tons of CO2-equivalent offsets, is [fractionalized] into 100k ERC20 tokens. The supply of the TCO2 contract depends on the batches fractionalized, and the credit issuance specific to the project[^1].
77+
Please see [the `CONTRIBUTING` file](CONTRIBUTING.md).
5978

60-
4.1. After the Batch-NFT is locked in the corresponding TCO2 contract, all of the minted ERC20 tokens are credited to Alice's wallet address via an `onERC721Received` hook.
79+
# Copyright / Licensing
6180

62-
[^1]: The `totalSupply` of the contract is the total TCO2s bridged so far, for this project & vintage. The TCO2 (ERC20) contract furthermore has a `supplyCap`, which is the based on the `totalVintageQuantity` attribute of the corresponding vintage. This is the amount of issued carbon offset tonnes for this project & vintage (not all of which might be bridged).
63-
64-
### Step 5: Pooling offset ERC20 tokens
65-
66-
The ERC20 tokens generated by bridging a batch of offsets may be added to a "pool", provided they match the entry criteria.
67-
The pool holds ERC20 tokens from batches considered "equivalent enough" to be traded.
68-
69-
The offset owner transfers their qualifying ERC20 tokens to the pool, and receives pool tokens in return. These tokens are currently issued on a 1:1 basis - i.e. for each qualifying batch ERC20 token, the offset owner receives one BCT.
70-
71-
This is how Toucan provides deeper liquidity for tokenised carbon offsets, allowing them to participate in the wider DeFi ecosystem.
72-
73-
Currently, there are two pools available: [BCT] & [NCT](https://www.coingecko.com/en/coins/toucan-protocol-nature-carbon-tonne). More information about Toucan Carbon Pools is available [here][pools].
74-
75-
### Blockchain entities
76-
77-
- **Batch NFT**: Each batch of equivalent tonnes of carbon offsets that the project owner wishes to bridge on-chain is represented by an NFT containing metadata about the batch, including which Verra registry project generated the offsets, their vintage (period in which the emissions were avoided/captured), and quantity (in tonnes of CO2 equivalent). The Verra registry serial number of the batch is stored in the NFT to ensure that all batches are verifiable and unique.[^3]
78-
79-
Currently, all Toucan batches consist of a number of [VCUs] on the [Verra registry]. i.e. The set of all carbon offsets which have been bridged via Toucan is a subset of the set of all VCUs.
80-
81-
[^3]: It is quite normal for a single project & vintage to have their credits retired/cancelled in multiple batches. A credit owner can chose to retire the corresponding carbon offsets in separate events rather than all at once. Or they might sell the credits to various brokers retailers, which then resell them to end-customers.
82-
83-
- **TCO2: Project-Vintage ERC20 Contract**: There is an ECR20 contract for each project-vintage, where each token represents a single tonne of carbon credits. These tokens are all equivalent (fungible) within the single ERC20 contract, but are not fungible wrt. credit tokens from different ERC20 contracts belonging to different vintages (and projects). There are usually multiple TCO2 contracts for the same project.
84-
85-
- **Credit/Offset owner**: The entity which owns/controls the Verra carbon offsets, and wants to use the Toucan bridge to turn them into blockchain tokens to trade or burn (burn functionality is coming soon).
86-
87-
#### Glossary
88-
89-
- **[Verra registry]**: a record of carbon offsets generated by different projects, and the single source of truth about when those offsets have been "retired" - i.e. when they are considered "spent", and can no longer be traded off-chain.
90-
- **Project**: A real-world activity which generates/generated some amount of tonnes of carbon offsets, recorded as [VCUs] on the [Verra registry]
91-
92-
For example, credits/offsets from a hydroelectric power plant in the United States are very different in terms of quality and attributes compared to a tonne of offsets from a direct air capture and sequestration project in Finland.
93-
94-
- **[BCT]**: Base Carbon Tonne. A tradeable ERC20 token, where 1 token represents 1 tonne of CO2-equivalent carbon offsets.
95-
- **[NCT](https://www.coingecko.com/en/coins/toucan-protocol-nature-carbon-tonne)**: Nature Carbon Tonne. An ERC20-based token that represents 1 tonne of CO2-equivalent avoided or removed via a nature-based project, verified by Verra.
96-
- **Vintage**: A monitoring period for a carbon offsetting project. Not always equivalent to one full calendar year. A single project can issue credits/offsets which are not fully equivalent (e.g. the way the carbon amount is measured might be different from one monitoring period (vintage) to the next). Usually, different vintages have different quality and attributes.
97-
98-
## Copyright / Licensing
99-
100-
The files in this repository are (currently) unlicensed but are likely to
101-
be released under a Free / Open Source license later.
81+
The files in this repository are currently unlicensed
82+
(i.e. proprietary), but will be released under a Free / Open Source
83+
license as per above.
10284

10385
We have used the [`reuse`](https://github.com/fsfe/reuse-tool/) tool
10486
to aim for compliance with [the REUSE
10587
standard](https://reuse.software/), using SPDX identifiers where
10688
appropriate.
107-
108-
[verra registry]: https://registry.verra.org/
109-
[bct]: https://coinmarketcap.com/currencies/toucan-protocol-base-carbon-tonne/
110-
[vcus]: https://verra.org/project/vcs-program/registry-system/verified-carbon-units-vcus/
111-
[defi-refi]: https://docs.toucan.earth/protocol/introduction/defi-refi
112-
[carbon bridge]: https://docs.toucan.earth/protocol/bridge/carbon-bridge
113-
[fractionalized]: https://docs.toucan.earth/protocol/bridge/fractionalize
114-
[pools]: https://docs.toucan.earth/protocol/pool/pools
115-
[tco2s]: https://docs.toucan.earth/protocol/bridge/tco2-toucan-carbon-tokens

docs/images/GitHub-header.jpg

184 KB
Loading
-346 KB
Binary file not shown.

documentation/diagrams/MVP-Arch-overview-v0.7.png.drawio

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)