Interoperability
How the public credit registry is designed for external integration, independent verifiability, and interoperability with external systems.
Last updated on
Designed for integration
The Carrot Network's smart contracts are built on open standards and deployed on a public blockchain, making them inherently interoperable with external systems and standard tooling. Every operation — from minting MassIDs to purchasing credits to distributing rewards — emits on-chain events that external systems can monitor, index, and verify.
On-chain verifiability
All Carrot smart contract transactions are publicly visible on the blockchain. This means:
- Credit purchases and retirements can be independently verified by auditors, regulators, or any interested party.
- Token balances and recorded certificates are queryable in real time.
- The provenance chain — from MassID through certificate to retired credit — is traceable on-chain: the chain holds each record, its amounts and a content-addressed reference to its provenance document on IPFS.
Because this data lives on the public blockchain, transparency and trust do not depend on Carrot's infrastructure. Any blockchain block explorer (such as PolygonScan) or indexer can access raw transaction data directly on-chain, and the Metadata Viewer opens the provenance document behind a record. The Carrot Registry adds a domain-focused view — methodology definitions, rule execution and accreditations — for environmental context and traceability.
Queryable events
Every major operation emits structured events that can be indexed by off-chain systems:
| Operation | Key events |
|---|---|
| Minting | MassID minted, Certificate minted, Credits minted |
| Purchase | Purchase executed, Credits burned or transferred, Rewards assigned |
| Retirement | Credits retired, Credits burned, Retirement receipt minted |
| Rewards | Rewards recorded, Reward note withdrawals |
| Revocation | Token revoked |
Because every purchase is currently retired in full when it settles, a purchase emits a credit burn rather than a delivery transfer to the buyer. The transfer appears only on the partial-retirement path, which is not yet used in production.
These events enable third-party applications to build dashboards, analytics tools, or compliance reporting systems on top of Carrot data without requiring direct access to the platform.
Credit transferability
While all NFTs in the Carrot system are soulbound (non-transferable), credit tokens (ERC-20) are transferable by design. This means:
- Credits can be traded on decentralized exchanges or OTC markets.
- Secondary market liquidity can develop around environmental credits.
- Buyers can acquire credits from multiple sources and consolidate them before retirement.
Two deviations from a plain ERC-20 matter to integrators:
- Pausing halts every balance movement. Minting, transfers, and burns all stop while the Credit contract is paused, because the pause check sits on the single internal step every balance change passes through. Approvals and permits remain available.
- Holder-initiated burn is disabled.
burnandburnFromappear in the contract ABI but revert for any caller other than the Vault or the CreditRetirementManager, so retirement is the only path that destroys credits.
This fungibility and transferability make Carrot credits composable with the broader decentralized finance (DeFi) ecosystem while maintaining full traceability back to verified recycling work.
Registry-based contract discovery
The smart contract architecture uses a ContractRegistry that maps logical names to deployed addresses. This design enables:
- Seamless upgrades — Contracts use the UUPS (EIP-1967) proxy pattern, so the proxy address remains stable across upgrades. When the proxy is upgraded (
upgradeToAndCall), the proxy address and its ContractRegistry entry stay the same, so all dependent contracts continue operating without redeployment. The upgrade call can carry migration calldata, which the new implementation then runs against the proxy's existing storage. - Loose coupling — Contracts don't hardcode addresses of their dependencies, making the system more resilient and easier to evolve.
Deployment network
The Carrot Network is blockchain network agnostic: smart contracts are implemented in Solidity and could be deployed on any EVM-compatible network. Carrot currently deploys on Polygon PoS for these reasons:
- Low transaction costs — Environmental credit operations (minting, purchasing, retiring) can be executed affordably at scale.
- EVM compatibility — Full compatibility with Ethereum tooling, wallets, and developer ecosystem.
- Established ecosystem — Broad support from indexers, explorers, and DeFi protocols.
Production runs on Polygon PoS mainnet (chain ID 137, polygonscan.com). Non-production environments run on the Polygon Amoy testnet (chain ID 80002, amoy.polygonscan.com), so an integration pointed at a non-production environment should index Amoy rather than mainnet.
Learn about smart contracts · Learn about contract categories · View the Carrot Registry
Security
Security model — smart contract architecture, governance security, and anti-manipulation mechanisms.
Metadata Viewer
The Metadata Viewer at viewer.carrot.eco — a public tool that opens the provenance document behind a MassID, Certificate or receipt record, with a deliberately narrow set of checks on what that document says.