Docs
ProtocolBlockchain InfrastructureSmart Contracts

Fluxos On-Chain

Descrições passo a passo dos principais fluxos de transação on-chain — minting, compra de créditos, recompensas, aposentadoria e revogação.

Visão geral

Os smart contracts do Ecossistema Carrot executam cinco fluxos on-chain principais. Cada fluxo é projetado para ser atômico — ou todos os passos são concluídos com sucesso ou nenhum deles é, prevenindo alterações parciais de estado.

Todas as transações são registradas on-chain e visíveis por meio de qualquer explorador de blockchain (por exemplo, PolygonScan). As principais operações também são exibidas no Carrot Explorer com contexto ambiental e dados de rastreabilidade.

Minting

Quando dados verificados estão prontos para minting, o InventoryManager cria os ativos on-chain fundamentais em uma operação coordenada.

Passo 1 — Minting de MassID

NFTs MassID são mintados para o Vault, cada um com uma URI de metadados no IPFS contendo dados de proveniência: tipo de material, peso, origem geográfica e a cadeia de custódia completa, desde a geração do resíduo até a coleta e triagem.

Passo 2 — Minting de certificado e crédito

NFTs de certificado são mintados e vinculados aos MassIDs correspondentes por meio do CertificateRegistry. Tokens de crédito fungíveis (ERC-20) são mintados em quantidades equivalentes e depositados no Vault.

Após a minting, todos os ativos ficam mantidos pelo Vault e prontos para compra de créditos. O CertificateRegistry registra qual MassID respalda cada certificado, estabelecendo a cadeia de rastreabilidade que persiste por toda a vida útil desses ativos.

Compra de créditos

Uma transação atômica executada pelo CreditPurchaseManager que realiza toda a compra em uma única operação. Se qualquer passo falhar, toda a transação é revertida.

Passo 1 — Validação da assinatura de compra

A ordem de compra é verificada usando uma assinatura de dados tipados EIP-712 de um signatário autorizado. Essa validação criptográfica garante que apenas ordens de compra legítimas e pré-aprovadas sejam executadas on-chain.

Passo 2 — Pagamento

USDC é transferido do pagador para o RewardsVault, onde fica disponível para distribuição de recompensas aos participantes.

Passo 3 — Atualização do certificado

O valor comprado é registrado em cada certificado de respaldo, reduzindo o inventário disponível. Isso garante que os mesmos créditos não possam ser vendidos duas vezes.

Passo 4 — Transferência de créditos

Tokens de crédito (por exemplo, C-BIOW, C-CARB.CH4) são transferidos do Vault para o endereço da carteira do comprador. Neste ponto, o comprador detém tokens de crédito fungíveis que pode manter ou aposentar.

Passo 5 — Minting do recibo

Um NFT CreditPurchaseReceipt é mintado para o Vault como prova permanente e imutável da transação. O recibo registra os certificados envolvidos, o comprador, o valor e os detalhes do pagamento.

Passo 6 — Registro de recompensas

Uma raiz Merkle representando a distribuição completa de recompensas é registrada no RewardsVault. Isso permite que os participantes reivindiquem sua parcela do pagamento sem revelar detalhes de identidade on-chain.

Aposentadoria integrada

Se o comprador optar pela aposentadoria integrada, os créditos são queimados (em vez de transferidos ao comprador) na mesma transação, e um CreditRetirementReceipt também é mintado. Isso permite que compradores adquiram e aposentem créditos em um único passo — útil para quem pretende reivindicar imediatamente a compensação ambiental.

Distribuição de recompensas

A distribuição de recompensas utiliza um mecanismo de preservação de privacidade que mantém as identidades individuais dos participantes off-chain, enquanto preserva a verificabilidade on-chain.

Registro

Durante cada compra de créditos, uma raiz Merkle é registrada on-chain no RewardsVault. Essa raiz representa a distribuição completa de recompensas para aquela transação. As identidades dos participantes são anonimizadas — apenas compromissos com hash são armazenados publicamente on-chain. Os dados de distribuição subjacentes são mantidos off-chain pelo backend.

Reivindicação

Os participantes podem reivindicar suas recompensas fornecendo provas Merkle que verificam seu direito contra a raiz on-chain. O RewardsVault valida a prova e libera o USDC alocado ao requerente. Cada alocação só pode ser reivindicada uma vez — o contrato rastreia o status de reivindicação para prevenir reivindicações duplicadas.

Auditabilidade

Embora as identidades individuais dos participantes não sejam visíveis on-chain, auditores autorizados podem acessar os dados de distribuição subjacentes para identificar participantes para fins de conformidade. As raízes Merkle on-chain servem como compromissos criptográficos de que os dados off-chain não foram adulterados.

Aposentadoria de crédito (independente)

Para detentores de créditos que desejam aposentar créditos que já possuem, o CreditRetirementManager executa um fluxo de aposentadoria independente.

Passo 1 — Validação da assinatura de aposentadoria

A ordem de aposentadoria é verificada usando uma assinatura de dados tipados EIP-712, garantindo que apenas solicitações de aposentadoria autorizadas sejam processadas.

Passo 2 — Queima de créditos

Tokens de crédito são queimados (destruídos permanentemente) do saldo do detentor. Tokens queimados nunca podem ser recuperados ou reemitidos — a compensação ambiental é permanentemente reivindicada.

Passo 3 — Rastreamento de certificado

Os valores aposentados são registrados nos certificados de respaldo, atualizando seus totais de aposentadoria. Isso mantém a contabilidade precisa em toda a camada de certificados.

Passo 4 — Minting do recibo

Um NFT CreditRetirementReceipt é mintado para o Vault como prova permanente da aposentadoria. Este recibo é a evidência definitiva on-chain de que os créditos foram aposentados.

Créditos aposentados são registrados na blockchain e visíveis por meio do Carrot Explorer, fornecendo evidência transparente e auditável de que a compensação ambiental foi reivindicada e não pode ser contada duas vezes.

Revogação

Ativos podem ser revogados quando os dados subjacentes são considerados incorretos ou fraudulentos. A revogação é um mecanismo de proteção que preserva a credibilidade das reivindicações ambientais do Ecossistema Carrot.

Revogação de MassID

Revogar um MassID aciona uma revogação em cascata:

  • Todos os certificados vinculados ao MassID revogado são automaticamente revogados.
  • Quaisquer créditos não vendidos respaldados por esses certificados são queimados.
  • Proteção: A revogação é bloqueada se quaisquer créditos dos certificados vinculados já tiverem sido vendidos. Isso impede a invalidação retroativa de créditos que compradores já adquiriram de boa-fé.

Revogação de certificado

Certificados individuais podem ser revogados independentemente sem afetar o MassID correspondente ou certificados relacionados. Isso permite correções direcionadas quando apenas reivindicações ambientais específicas precisam ser invalidadas.

  • Assim como na revogação de MassID, a revogação de certificado é bloqueada se créditos daquele certificado já tiverem sido vendidos.

Preservação da trilha de auditoria

A revogação preserva a trilha de auditoria completa. Os metadados IPFS originais dos ativos revogados permanecem acessíveis, e o motivo da revogação é registrado on-chain. Isso garante que mesmo ativos revogados possam ser examinados por auditores e reguladores — nada é ocultado ou excluído, apenas marcado como inválido.

Próximos passos

On this page