Skip to content
@CarbonMint

CarbonMint

🌍 CarbonMint

On-chain carbon credits you can trust.

Mint verified carbon-credit batches, trade them on a transparent marketplace, and retire them forever — with an immutable on-chain offset certificate to prove it.


Stellar Soroban Rust React Node.js License: MIT PRs Welcome

CarbonMint is a tokenized carbon-credit marketplace built on Soroban, the smart-contract platform for Stellar. Issuers mint verified carbon-credit batches as on-chain assets, buyers trade them on an open marketplace, and holders retire (burn) credits to claim a permanent, tamper-proof offset certificate. Every minted and retired credit is recorded in a transparent on-chain registry — so double-counting is impossible and every offset is auditable by anyone, forever.


📚 Table of Contents


✨ Why CarbonMint?

Legacy carbon registries are opaque spreadsheets behind closed doors — slow to settle, hard to audit, and notorious for credits being sold (or retired) twice. CarbonMint puts the entire ledger on-chain, where the rules are enforced by code, not trust.

Capability 🗄️ Legacy Carbon Registries 🌱 CarbonMint
Transparency Private databases, periodic PDF reports Public, real-time on-chain registry
Double-counting prevention Manual reconciliation, prone to error Enforced by contract — a retired credit can never be re-spent
Settlement speed Days to weeks via intermediaries Seconds, with Stellar finality
Auditability Trust the registry operator Verify every mint & retirement on Stellar
Offset proof Certificate emailed by a third party Immutable on-chain certificate owned by you
Fees High brokerage & administrative overhead Low, predictable Stellar network fees

🚀 Features

Feature Description
🏭 Mint verified batches Accredited issuers mint carbon-credit batches with verifiable metadata (project, vintage, methodology, tonnage).
🛒 Marketplace trading List, browse, and buy credits in an open, on-chain order flow — settled atomically on Stellar.
🔥 On-chain retirement Burn credits to offset emissions and permanently remove them from circulating supply.
🧾 Immutable certificate Each retirement emits a tamper-proof offset certificate bound to the retiring account.
📒 Transparent registry Track minted vs. retired vs. circulating supply for every batch, in real time.
🛡️ Double-retirement prevention The contract guarantees a credit can be retired exactly once — no replays, no fraud.

🏗️ Architecture

flowchart TD
    Issuer([🏭 Issuer])
    Buyer([🛒 Buyer / Holder])

    subgraph Client["🖥️ CarbonMint-Frontend · React + Vite"]
        UI["Marketplace UI<br/>mint · trade · retire"]
    end

    subgraph Server["⚙️ CarbonMint-Backend · Node + Express"]
        API["REST API"]
        Registry["📒 Registry Indexer<br/>minted vs retired supply"]
    end

    subgraph Chain["🔗 Soroban · CarbonMint-Contract (Rust)"]
        Contract["Credit Registry &<br/>Marketplace Contract"]
    end

    Stellar[("⭐ Stellar Network")]

    Issuer -->|connect wallet| UI
    Buyer -->|connect wallet| UI
    UI <-->|query listings & supply| API
    API --> Registry
    Registry -. indexes events .- Contract
    UI -->|"mint_batch()"| Contract
    UI -->|"buy()"| Contract
    UI -->|"retire() → burn"| Contract
    Contract -->|"emits certificate"| UI
    Contract <-->|submit & settle txns| Stellar
    Registry -. reads ledger .- Stellar
Loading

♻️ Credit Lifecycle

A carbon-credit batch flows through four on-chain states. Once Retired, it is gone forever — and the offset certificate is yours to keep.

stateDiagram-v2
    [*] --> Minted: issuer calls mint_batch()
    Minted --> Listed: issuer lists on marketplace
    Listed --> Traded: buyer calls buy()
    Traded --> Listed: holder re-lists for resale
    Traded --> Retired: holder calls retire() 🔥 (burn)
    Listed --> Retired: holder calls retire() 🔥 (burn)
    Retired --> [*]: 🧾 immutable certificate issued

    note right of Retired
        Burned & removed from supply.
        Cannot be re-traded or re-retired.
    end note
Loading

🧩 Repositories

Repository Description Tech
🖥️ CarbonMint-Frontend The marketplace dApp — mint, trade, and retire credits with a wallet-connected UI. React Vite
⚙️ CarbonMint-Backend REST API and registry indexer tracking minted vs. retired supply across all batches. Node.js Express
🔗 CarbonMint-Contract The Soroban credit-registry & marketplace contract — mint, buy, and retire logic in Rust. Rust Soroban

🛠️ Tech Stack

Frontend

React Vite TypeScript

Backend

Node.js Express

Smart Contracts & Chain

Rust Soroban Stellar


⚡ Quick Start

📦 Clone & run all three repos

1. Smart contract — CarbonMint-Contract

git clone https://github.com/CarbonMint/CarbonMint-Contract.git
cd CarbonMint-Contract

# Build & test the Soroban contract
stellar contract build
cargo test

# Deploy to testnet
stellar contract deploy \
  --wasm target/wasm32-unknown-unknown/release/carbonmint.wasm \
  --network testnet

2. Backend API & registry — CarbonMint-Backend

git clone https://github.com/CarbonMint/CarbonMint-Backend.git
cd CarbonMint-Backend

npm install
cp .env.example .env   # set CONTRACT_ID, STELLAR_RPC_URL, NETWORK
npm run dev            # API on http://localhost:3000

3. Frontend marketplace — CarbonMint-Frontend

git clone https://github.com/CarbonMint/CarbonMint-Frontend.git
cd CarbonMint-Frontend

npm install
cp .env.example .env   # set VITE_API_URL, VITE_CONTRACT_ID
npm run dev            # dApp on http://localhost:5173

🗺️ Roadmap

  • Core Soroban contract: mint_batch, buy, retire
  • On-chain offset certificates on retirement
  • Transparent minted-vs-retired registry indexer
  • React marketplace MVP with wallet connect
  • Issuer verification & accreditation workflow
  • Batch metadata standard (project, vintage, methodology)
  • Secondary-market order book & price discovery
  • Third-party auditor dashboard & public API
  • Mainnet launch 🚀

🤝 Contributing

Contributions are welcome and appreciated! 🌱

  1. Fork the relevant repository and create a feature branch.
  2. Make your changes with clear, conventional commits.
  3. Ensure tests pass (cargo test / npm test).
  4. Open a Pull Request describing your change and the problem it solves.

Found a bug or have an idea? Open an issue on the appropriate repo — every contribution helps make carbon markets more transparent.


📜 License

Distributed under the MIT License. See the LICENSE file in each repository for full details.


Built with 🌱 on Stellar · Powered by Soroban

⬆ Back to top

Popular repositories Loading

  1. CarbonMint-Frontend CarbonMint-Frontend Public

    JavaScript 14

  2. CarbonMint-Backend CarbonMint-Backend Public

    JavaScript 6

  3. CarbonMint-Contracts CarbonMint-Contracts Public

    Rust 7

  4. .github .github Public

Repositories

Showing 4 of 4 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…