Carbon offset projects provide an important avenue for individuals and corporations to decrease their carbon footprint and help mitigate the effects of climate change.

The purpose of these projects is to reduce or remove greenhouse gas emissions in the atmosphere, which balances the emissions generated by their supporters, resulting in a net neutral carbon output.

Forestry initiatives are a common focus of these offset projects, as they involve the protection and growth of carbon-capturing trees. Examples of these initiatives include:

  • Conservation: Protecting established forests that would otherwise be cut down for logging or farming.
  • Reforestation: Replenishing areas of forest which have previously been cut down by planting new trees.
  • Afforestation: Creating new forests by planting trees in areas where there was previously no forest.

For supporters, it is important to know that the projects they are backing are delivering on their stated goals and making a positive impact on the environment. While carbon registries are responsible for certifying a project's claims, a public verification process is still needed.

ForestWatch is a web app that enables users to validate forest-related carbon offset projects using satellite imagery.

The app allows users to view a database of offset projects on a world map, monitor how their forest coverage changes over time, and visually verify that the project's sustainability claims are being achieved.

ForestWatch Advantages

ForestWatch combines multiple components to create an easy-to-use, online tool for verification:

  • Map Interface: Users are presented with a map of the world that highlights the boundaries of 100+ registered offset projects. Exploring projects in a specific part of the world is as easy as zooming in the map there.

  • Historical Imagery: 10 years of Sentinel high-resolution imagery can be overlaid on the map to visualize the land-cover history of any project, along with False-Color and NDVI products to highlight vegetation and trees.

  • Standardized Projects: Project data is stored on CO2.Storage as assets that conform to a ForestWatch template. Projects from any registry can be uploaded using this standardized schema to grow the database of projects.

What it does

ForestWatch is a web app that allows users to monitor forest-related carbon offset projects using satellite imagery.

The app displays the details and geographic boundaries of various projects within a map interface. Historical satellite imagery can be overlaid on the map to explore land-cover changes through time.

Users can assess whether a project is meeting its goals by visually investigating the changes in tree coverage within the project boundaries over time. For example, reforestation projects should exhibit new growth; conservation projects should display no loss of trees.

ForestWatch provides a transparent, public way for supporters to track the progress of the projects they are backing, and independently validate their offset claims.

App Interface

The ForestWatch interface is comprised of two main components: a project menu and an interactive world map. An example of the interface is shown below:


The menu lists carbon offset project data obtained from CO2.Storage. Upon loading, the app queries CO2.Storage for all assets created with the ForestWatch template, and displays the results as project cards within the menu.

Information such as name, description, state, category, and more are included for each project. A link to the project's official registry page is located at the bottom of the card. The project's area in hectares is highlighted in the top corner. An example project card is shown below:

Project Card

The map displays the boundary polygons for each of the listed projects, which are stored as GeoJSON data on IPFS. Users can pan, zoom, and measure acreage using the available map tools.

Along the bottom of the map are selection controls for the satellite imagery overlay. Users can select between True Color, False Color, and NDVI imagery projects, captured each year from 2013 to 2023.

The three imagery products each provide a different visualization of land cover. False Color and NDVI products work to highlight vegetation within the imagery and can help users in observing changes to a project's tree coverage. Examples of each imagery product are below:

Imagery Products


CO2.Storage is an online platform for storing structured environmental data in a decentralized manner. With CO2.Storage, users can create data schemas, or templates, that define the format of their environmental data elements, called assets.

Data uploaded to CO2.Storage is content addressed and stored on a network of decentralized nodes, provided by IPFS. This architecture offers several benefits, including faster data access, increased redundancy, and improved security.

ForestWatch utilizes carbon offset project data that is stored on CO2.Storage as assets based on a ForestWatch template.

This template includes common data fields for registered projects - Id, Description, State, Category, Credit Period, and more. The GeoCID field expects the CID of a GeoJSON object defining the project's boundary, stored on IPFS.

Explore the ForestWatch template here, and an example asset here.


ForestWatch currently has access to 100+ carbon offset projects from around the world, which were collected from Verra and stored on CO2.Storage. These projects have been certified by Verra's Verified Carbon Standard (VCS) program.

Users can explore projects in two ways: by clicking a menu card or a map polygon. Both actions will bring up the selected project's information card, zoom and center the map on the project's boundary, and overlay the chosen satellite imagery.

From the project's card, users can read its description and learn about its carbon offset initiatives, such as conservation, reforestation, or afforestation efforts. The timeline of the project can also be interpreted from the card details.

To verify the project's progress and status, users can adjust the date of the satellite imagery and observe changes in land cover occurring within the project boundaries over the years.

By visually inspecting these changes, users can validate that the projects are working as intended. For example, an increase in tree cover over the years may signify successful reforestation initiatives, while no changes in tree cover can confirm that conservation efforts are preventing trees from being cut down.

Example Project

The SuruĂ­ Forest Carbon Project is a Verra certified offset project that "aims to halt deforestation and its associated greenhouse gas (GHG) emissions in an area under deforestation pressure" in the Amazon rainforest.

This project's data has been stored on CO2.Storage as a ForestWatch asset, making it available for viewing within ForestWatch. Users can find the project within the app's menu to read its full description and details.


Clicking the project's menu card will center the map on the project's boundary. It is clear to see on the map that the outline defines the area of the Amazon rainforest this project aims to protect. The surrounding area outside of the boundary shows many farm plots and evidence of deforestation.

From here, users can overlay historical satellite imagery to help visualize the land cover changes over time. For this project, users would be investigating that no deforestation or farming activities have begun to happen inside the project boundaries, confirming that the project's conservation efforts are working.

How we built it

The build process for ForestWatch involved two distinct parts - processing Verra project data for CO2.Storage, and building the web frontend which interacts with that data.

Verra Data

The Verra carbon registry was used as an initial source of certified project data for ForestWatch to consume. Verra's website includes an online search that allows users to search for projects by category.

I wrote a Node.js script that scraped this registry for all projects in the "Agriculture and Forest" category and saved the project details into a JSON file locally. The script also downloaded the KML file that defined the project's boundary and converted it to GeoJSON data.

Next, I created the ForestWatch template on CO2.Storage. This template is general to all carbon projects and includes fields like project name, description, registry name, and more.

Finally, I wrote a Node.js script that used the CO2.Storage Javascript API to upload each Verra project as an asset based on the ForestWatch template. During this process, the GeoJSON data was separately uploaded to IPFS, and its CID was included in the GeoCID field of the asset.

The result of this effort created over 100 new assets on CO2.Storage that represents Verra-certified projects.

Source code for these data processing scripts can be found on Github here.

Web Frontend

React.js was used as the development framework for the ForestWatch web frontend that users interact with.

The app's map is powered by Leaflet.js, an open-source library for interactive maps. Satellite imagery is provided through a SentinelHub web map tile service.

When the app loads, project data is fetched in a two-step process. First, a request is made to the CO2.Storage API for all assets created with the ForstWatch template. This request provides the CID's of the assets but not the data itself.

Next, follow-up requests must be made to an IPFS node using the CID of each asset to get the full data. Another request must be made to IPFS to obtain the GeoJSON data stored separately. These requests are processed quickly by running a local IPFS node.

Source code for the ForestWatch web frontend can be found on Github here.

Challenges we ran into

At first, getting familiar with CO2.Storage was a slow process, simply because I had never been exposed to the platform before. However, I was able to read through the online documentation, explore the API source code, and ask questions directly to the developers on Discord.

With these resources provided by the CO2.Storage team, I became proficient in each aspect of CO2.Storage that my project required - including creating templates, creating assets, and using the search API.

Accomplishments that we're proud of

I'm proud of the overall design of ForestWatch's user interface. I believe it is intuitive to use, and users don't need any guidance to begin exploring the map and analyzing projects.

This is an accomplishment for me because UI design is not one of my strong talents. I spent a significant amount of time refining the size and layout of the components until they delivered a look and feel that promotes ease of use.

I'm also proud of the data processing capabilities of the app. Requests need to be made to the CO2.Storage API, followed by IPFS, to fully obtain a set of project data. I'm proud of the coding I created to accomplish this, which consistently works without errors.

What we learned

During the course of this project, I learned about carbon offset projects and the carbon credit market they enable. This system benefits both buyers looking to reduce their carbon footprint and sellers who want to protect a piece of the earth.

I've learned that registered carbon projects exist all around the world. Using ForestWatch, it is easy to see on the map that these projects are located everywhere there are large forests, from Asia to South America.

Before beginning this project I had not worked significantly with IPFS. I consumed many resources online to learn about how decentralized storage and content addressing work. By the end of the project, I had set up my own local IPFS node and was hosting data on it.

What's next for ForestWatch

I plan to grow the database of carbon offset projects that ForestWatch can access. This would benefit users whose projects of interest are certified by alternative carbon registries such as Eco Registry and Gold Standard.

This process can be automated by writing a script that scrapes project data from the registry websites, formats it to match the ForestWatch template, and uploads it as assets to CO2.Storage using their Javascript API.

Once they are uploaded, the ForestWatch app will have immediate access to search and display the projects.

Built With

Share this project: