26 example walkthrough
Overview
This document provides a concrete, end-to-end example walkthrough demonstrating how the platform works in practice. It's written to be layman-friendly but developer-precise.
Example: Solar Project Rajasthan
Project Details
Project Name: Solar Rajasthan 2024
Project Type: Renewable Energy
Location: Rajasthan, India
Methodology: VCS (Verified Carbon Standard)
Vintage Year: 2024
Verifier: Verra
Verifier Reference: VCS-12345
Verified Credits: 10,000 tons CO₂
Project Submission
Project Owner Actions
Rahul (Project Owner) wants to issue carbon credits for his solar project.
Rahul creates project:
Name: "Solar Rajasthan 2024"
Type: Renewable Energy
Location: Rajasthan, India
Methodology: VCS
Vintage: 2024
Verifier: Verra
Verifier Ref: VCS-12345
Rahul uploads documents:
Ownership certificate
Verifier report (VCS-12345)
MRV data (Monitoring, Reporting, Verification)
GPS coordinates
Project photos
Rahul submits for PoAI review
System Status: Project status → PendingPoAI
PoAI Verification
Reviewer Actions
Jane (PoAI Reviewer) is assigned to review the project.
Jane opens PoAI case:
Case ID: POAI-456
Project: Solar Rajasthan 2024
Jane performs integrity checks:
Asset Integrity:
✅ Project ownership verified
✅ Geo coordinates verified (matches documents)
✅ Project exists in real world
Data Integrity:
✅ Verifier report valid (VCS-12345)
✅ Vintage year consistent (2024)
✅ MRV data matches verifier report
Process Integrity:
✅ Submission workflow authentic
✅ Reviewer assignment valid
✅ All required documents present
Jane approves PoAI case:
All checks passed
Proof bundle generated
Proof hashes created:
bundleHash: 0xdef456...assetHash: 0x789ghi...dataHash: 0x123jkl...processHash: 0x456mno...
System Status: PoAI status → Approved, Project status → PendingDAO
Governance Approval
Governance Actions
DAO members vote on project approval.
Proposal created:
Type: OnboardProject
Project: Solar Rajasthan 2024
Proposed cap: 10,000 tons
PoAI proof hashes attached
Voting window opens (7 days)
Votes cast:
FOR: 65%
AGAINST: 20%
ABSTAIN: 15%
Proposal passes:
Quorum met
Majority FOR
Project approved
System Status: Project status → Approved
Mint Project Record (On-Chain)
System Actions
System triggers on-chain minting.
Transaction: mintProjectRecord
projectRegistry.mintProjectRecord(
projectId = 101,
metadataHash = 0xabc123...,
capUnits = 10_000 * UNIT, // 10,000,000,000 (UNIT = 1e6)
poaiBundleHash = 0xdef456...,
poaiAssetHash = 0x789ghi...,
poaiDataHash = 0x123jkl...,
poaiProcessHash = 0x456mno...
);Result:
ProjectRecord NFT minted
Token ID: 101
Cap: 10,000,000,000 units
PoAI hashes stored on-chain
Transaction Hash: 0xProjectRecordTx...
Configure Credit Units
System Actions
System configures credit units contract.
Transaction: setProjectConfig
carbonCredit1155.setProjectConfig(
tokenId = 101, // Same as ProjectRecord tokenId
capUnits = 10_000_000_000,
policy = TransferPolicy.OPEN,
active = true
);Result:
Project tokenId 101 configured
Can now issue credits
Issue Credit Units
Issuer Actions
Rahul (or platform admin) issues credits.
Transaction: mintCredits
carbonCredit1155.mintCredits(
tokenId = 101,
to = treasuryAddress, // 0xTreasury...
amountUnits = 2_000 * UNIT // 2,000,000,000 units (2,000 tons)
);Result:
2,000 tons issued to treasury
issued[101] = 2,000,000,000balanceOf(treasury, 101) = 2,000,000,000Available: 8,000 tons remaining
Transaction Hash: 0xIssueTx...
Retail Purchase
Retail User Actions
Priya (Retail User) wants to offset her carbon footprint.
Priya browses marketplace:
Sees "Solar Rajasthan 2024" project
Sees PoAI verification badge ✅
Price: $25.50 per ton
Available: 2,000 tons
Priya views project details:
Project information
PoAI verification details
Verifier information (Verra)
Priya connects wallet:
Connects MetaMask
Wallet address: 0xPriya...
Priya purchases 0.25 tons:
Quantity: 0.25 tons
Total: $6.38
Confirms transaction
Transaction: transfer (from marketplace contract)
carbonCredit1155.safeTransferFrom(
from = treasuryAddress,
to = 0xPriya...,
id = 101,
amount = 250_000 // 0.25 * UNIT
);Result:
Priya receives 250,000 units (0.25 tons)
balanceOf(0xPriya..., 101) = 250,000Treasury balance: 1,999,750,000 units
Transaction Hash: 0xPurchaseTx...
Priya's Dashboard:
Holdings: 0.25 tons from Solar Rajasthan 2024
Purchase date: 2026-01-10
Purchase price: $25.50/ton
Enterprise Purchase
Enterprise Actions
Acme Corporation needs to offset 12,437.62 tons for Q1 2024.
Acme maps emissions:
Scope 1: 5,000 tons
Scope 2: 3,000 tons
Scope 3: 4,437.62 tons
Total: 12,437.62 tons
Acme selects project portfolio:
Solar Rajasthan 2024: 12,437.62 tons
Acme purchases exact quantity:
Quantity: 12,437.62 tons
Total: $317,159.31
Confirms purchase
Transaction: transfer (from marketplace contract)
carbonCredit1155.safeTransferFrom(
from = treasuryAddress,
to = 0xAcme...,
id = 101,
amount = 12_437_620_000 // 12,437.62 * UNIT
);Result:
Acme receives 12,437,620,000 units (12,437.62 tons)
balanceOf(0xAcme..., 101) = 12,437,620,000Treasury balance: 1,987,312,380 units
Transaction Hash: 0xEnterprisePurchaseTx...
Acme's Dashboard:
Holdings: 12,437.62 tons from Solar Rajasthan 2024
Purchase date: 2026-01-12
Purchase price: $25.50/ton
Retirement (Retail)
Retail User Actions
Priya wants to retire her credits for personal ESG proof.
Priya selects credits to retire:
Project: Solar Rajasthan 2024
Quantity: 0.25 tons
Purpose: Personal offset
Priya confirms retirement
Transaction: retire
carbonCredit1155.retire(
tokenId = 101,
amountUnits = 250_000 // 0.25 * UNIT
);Result:
250,000 units burned from Priya's balance
balanceOf(0xPriya..., 101) = 0retired[101] = 250_000Total supply: 1,999,750,000 units
Transaction Hash: 0xRetirementTx...
Event Emitted:
CreditsRetired(
tokenId = 101,
from = 0xPriya...,
amountUnits = 250_000
);Certificate Generation
Indexer detects retirement event and triggers certificate generation.
Certificate Generated:
{
"certificateId": "CERT-123",
"project": {
"id": "PJT-101",
"name": "Solar Rajasthan 2024",
"tokenId": 101
},
"retirement": {
"quantity": 0.25,
"quantityUnits": 250000,
"retiredBy": "0xPriya...",
"timestamp": "2026-01-14T10:00:00Z",
"transactionHash": "0xRetirementTx..."
},
"poai": {
"bundleHash": "0xdef456...",
"assetHash": "0x789ghi...",
"dataHash": "0x123jkl...",
"processHash": "0x456mno..."
},
"onChainProof": {
"contractAddress": "0xCarbonCredit1155...",
"tokenId": 101,
"eventIndex": 0
}
}Priya receives:
Certificate PDF
Certificate JSON
Download link
Shareable link
Priya's Dashboard:
Retirement history: 0.25 tons retired on 2026-01-14
Certificate: CERT-123 (downloadable)
Retirement (Enterprise)
Enterprise Actions
Acme Corporation schedules quarterly retirements.
Acme configures retirement schedule:
Schedule: Quarterly
Amount: 3,109.405 tons per quarter (12,437.62 / 4)
Start: Q1 2024
Approval: Required (Finance team)
Q1 Retirement triggered:
System creates retirement request
Finance team approves
Retirement executed
Transaction: retire
carbonCredit1155.retire(
tokenId = 101,
amountUnits = 3_109_405_000 // 3,109.405 * UNIT
);Result:
3,109,405,000 units burned
balanceOf(0xAcme..., 101) = 9,328,215,000retired[101] = 3,359,405,000(including Priya's 250,000)
Certificate Generated:
Q1 retirement certificate
Includes all retirement details
PoAI proof references
Acme's Dashboard:
Q1 retirement: 3,109.405 tons
Certificate: CERT-456 (downloadable)
Remaining holdings: 9,328.215 tons
Next retirement: Q2 2024
Final State Summary
Project State
ProjectRecord: Token ID 101
Cap: 10,000 tons (10,000,000,000 units)
Issued: 2,000 tons (2,000,000,000 units)
Retired: 3,359.655 tons (3,359,655,000 units)
Priya: 0.25 tons
Acme Q1: 3,109.405 tons
Circulating: 1,999,750,000 units (1,999.75 tons)
Available: 8,000 tons (not yet issued)
Balance State
Treasury: 1,987,312,380 units (1,987.31238 tons)
Priya: 0 units (retired)
Acme: 9,328,215,000 units (9,328.215 tons)
Audit Trail
Complete Chain:
ProjectRecord minted (tokenId 101) →
0xProjectRecordTx...Credits issued (2,000 tons) →
0xIssueTx...Priya purchased (0.25 tons) →
0xPurchaseTx...Acme purchased (12,437.62 tons) →
0xEnterprisePurchaseTx...Priya retired (0.25 tons) →
0xRetirementTx...→ Certificate CERT-123Acme retired Q1 (3,109.405 tons) →
0xAcmeRetirementTx...→ Certificate CERT-456
All links traceable:
ProjectRecord → Credits → Ownership → Retirement → Certificate
PoAI proof hashes included in all certificates
On-chain transaction hashes for verification
Last updated