ProtocolContracts & Interoperability

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:

OperationKey events
MintingMassID minted, Certificate minted, Credits minted
PurchasePurchase executed, Credits burned or transferred, Rewards assigned
RetirementCredits retired, Credits burned, Retirement receipt minted
RewardsRewards recorded, Reward note withdrawals
RevocationToken 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. burn and burnFrom appear 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

On this page