Carbon offset NFT marketplace with Dutch auction pricing and collateralized lending vault on Ethereum.
- v1: ✅ Dutch auction marketplace
- v2: ✅ Released (2025-08-25) - EcoStabilizer vault (250 tests passing)
- QA Testing: 🧪 Available on Ethereum Sepolia testnet
- Deployment: Live on Ethereum mainnet since 2026-10-04 (contracts deployed 2026-10-02; addresses in CHANGELOG.md and
deployments/ethereum-mainnet/) - Gas (measured on a mainnet fork, 2026-10-04): vault deposit 167k–216k, withdraw 109k–120k, purchase of one token 176k–287k, mint about 245k + 163k per token (a 50-token mint is 8.4M gas)
The marketplace runs on Ethereum mainnet (https://ecotradezone.bionerg.com), with Ethereum Sepolia as the
QA testnet (https://test.ecotradezone.bionerg.com). The earlier Arbitrum One deployment remains on chain
and is untouched by this workflow; its commands survive under the arbitrum-* script names. See the Deployment Guide for the network table and env setup.
- Agents Guide - Canonical instructions for AI assistants and contributors
- Development Guide - Setup, structure, and workflow
- Testing Guide - Comprehensive testing documentation
- Operating Guide - Running the live marketplace: minting, prices, funds, pausing, the upload key
- Deployment Guide - Production deployment and checklist
- QA Testing Guide - QA testing guide and checklist
- SSC Plan - v2 vault technical specification
- ERC-1155 NFTs representing verified carbon offsets
- Dynamic pricing: Base price adjusts with market demand
- Dutch auction: price drops daily to a 40 USDC floor (contract default 1 USDC a day; the mainnet launch setting is 5 USDC, see Pricing)
- 30% default platform commission (configurable up to 50%), remainder to producers
- Deposit NFTs to mint 20 SCC stablecoins
- No liquidations - withdraw your exact NFT by repaying loan
- Redeemed NFTs cannot be used as collateral
- Access control; SCC admin renunciation is opt-in (
RENOUNCE_SCC_ADMIN=true, non-Sepolia networks only)
# Install dependencies
npm install
# Run tests
npm run test
# Configure webapp env (untracked)
cp webapp/.env.local.example webapp/.env.local
# Start dev webapp (Ethereum Sepolia)
npm run dev:sepolia
# Access webapp at http://localhost:3002npm run test # Run all tests
npm run compile # Compile contracts
npm run dev:sepolia # Start webapp (Ethereum Sepolia)
npm run qa:fast # Quick contract verification
npm run deploy:testnet # Deploy to Ethereum Sepolia
npm run deploy:mainnet # Deploy to Ethereum mainnetSee AGENTS.md for the complete command reference and workflows.
- AGENTS.md - Canonical guide for agents and developer workflows
- SSC_PLAN.md - v2 vault specification
- DEPLOYMENT.md - Deployment instructions
- contracts/README.md - Contract specifications
- test/TESTING_GUIDE.md - Testing documentation
- Immutable contracts with no upgrade mechanisms
- Role-based access control; SCC admin renunciation is opt-in at deploy time
- Reentrancy protection and pausability
- Comprehensive test coverage (250 tests)
- Redeemed NFT protection in vault
The EcoStabilizer vault system is deployed on Ethereum Sepolia testnet for client testing.
- QA Testing Guide - Complete guide for testing the vault system
- Test URL: https://test.ecotradezone.bionerg.com
- Network: Ethereum Sepolia (testnet)
-
Deploy Contracts to Testnet:
npm run deploy:testnet
-
Configure Webapp:
cp webapp/.env.local.example webapp/.env.local # Edit webapp/.env.local with testnet addresses + RPC -
Deploy to Vercel:
vercel --prod
See QA Testing Guide for detailed testing instructions.
MIT