Metadata Viewer
O Metadata Viewer em viewer.carrot.eco — ferramenta pública que abre o documento de proveniência por trás de um registro de MassID, Certificado ou recibo da Carrot, com um conjunto deliberadamente estreito de conferências sobre o que esse documento diz.
Last updated on
O que é o Metadata Viewer
Os tipos de registro que a Rede Carrot escreve um a um no registry público — um MassID, um Certificado, um Recibo de Compra de Crédito ou um Recibo de Aposentadoria de Crédito — carregam cada um um documento de proveniência endereçado por conteúdo e armazenado no IPFS. A entrada on-chain guarda a referência, não o conteúdo de proveniência. Ela não é vazia de dados — um Certificado acompanha na cadeia seus montantes total, comprado, aposentado e disponível, e um recibo registra as partes, os montantes e as alocações de certificado —, mas a cadeia de custódia por trás do registro é o que vive no IPFS. Tokens de crédito fungíveis também são registros do registry, mas não carregam documento de proveniência próprio e o viewer não os abre.
O Metadata Viewer (viewer.carrot.eco) é a ferramenta que segue essa referência e renderiza o documento por trás dela. Ele lê a URI de metadados do token diretamente do smart contract, busca o documento no IPFS e o confere contra o schema que o próprio registro declara — tudo no navegador de quem está lendo.
Ele responde uma pergunta mais estreita que a do Carrot Registry: não "o que este registro significa em contexto", e sim "o que exatamente este registro diz, e ele concorda com a cadeia". Ele não é, por si só, prova de que um registro está íntegro — o que ele confere é mais estreito que isso, e a diferença está detalhada abaixo.
Como abrir um registro
O viewer lê sua entrada a partir da URL, então qualquer registro pode ser linkado diretamente. Na maioria das vezes quem lê chega por um link já gerado pela plataforma (veja Onde esses links aparecem); o contrato da URL está documentado aqui para que um registro também possa ser aberto à mão.
Por endereço de contrato. A forma canônica. Um registro é endereçado pela tripla endereço do contrato, rede e identificador do token:
https://viewer.carrot.eco/?contractAddress=0x<endereço>&network=polygon&tokenId=<token id>network aceita polygon para a mainnet pública da Polygon (chain ID 137) e amoy para a rede de testes Polygon Amoy (chain ID 80002). O host é o mesmo nas duas — o viewer escolhe a rede por esse parâmetro, e endereços e identificadores de token são locais a cada cadeia, então network precisa nomear a cadeia em que o registro foi escrito.
Por tipo de registro. Na mainnet, o viewer consegue resolver o endereço do contrato sozinho, através do ContractRegistry on-chain, então um tipo de registro substitui o endereço:
https://viewer.carrot.eco/?recordType=mass-id&network=polygon&tokenId=<token id>recordType | Registro |
|---|---|
mass-id | Um lote verificado de material residual |
recycled-id | Prova de que o material foi reciclado |
gas-id | Reduções de emissões de gases de efeito estufa |
credit-purchase-receipt | Prova de que créditos foram comprados |
credit-retirement-receipt | Prova de que créditos foram aposentados |
Por referência IPFS. Um documento de proveniência também pode ser aberto diretamente pelo seu identificador de conteúdo, sem saber qual contrato o guarda:
https://viewer.carrot.eco/?cid=<cid>Isso ainda lê a cadeia: o registro nomeia o próprio contrato e token, e a conferência de ida e volta descrita abaixo relê esse contrato para confirmar que o documento bate. O que o identificador poupa é ter que saber o endereço.
O viewer também aceita um documento colado ou enviado da máquina de quem está lendo, e é isso que dá sentido a essa ida e volta: dá para saber se um documento que chegou até você é o mesmo que o contrato e o token do próprio registro resolvem.
Onde esses links aparecem
Links do viewer são gerados sempre que um registro é apresentado como evidência:
- O Certificado de Impacto — o PDF emitido para uma compra de créditos — lista os registros públicos daquele pedido na seção Registros públicos, cada um deles um link para o viewer: o recibo de compra e, quando o pedido foi aposentado na mesma transação, o recibo de aposentadoria. Um pedido aposentado depois, em transação separada, gera o recibo de aposentadoria após a emissão do PDF.
- Registros de certificado carregam um link do viewer para a sua própria entrada no registry, ao lado do link do explorador de blockchain para o mesmo token.
Um Certificado de Impacto emitido é um documento fixo: os links impressos nele são escritos no momento da emissão e nunca são reescritos, então cada um continua apontando para o registro para o qual foi emitido.
O que o registro fixa
As âncoras de integridade do registro fazem parte do seu formato e existem independentemente de qualquer ferramenta lê-las:
- O schema, fixado de três formas — uma URL com a versão, uma referência IPFS para esse schema e o hash SHA-256 da versão exata contra a qual o registro foi escrito. Os schemas de registro da Carrot são open source em carrot-foundation/schemas.
- Um hash de auditoria — um hash SHA-256 gravado no momento da emissão, para que quem tenha os dados de origem — enviados pelos Integradores — possa reconciliá-los com o registro publicado. Quem lê o registro público não consegue recalculá-lo apenas a partir dele, porque o documento publicado é tarjado (veja abaixo).
- Uma referência ao build do viewer — veja a seção final desta página.
O que o viewer confere
Três conferências rodam, e cada uma reporta o seu próprio status. Elas são mais estreitas que as âncoras acima, e a diferença importa se você depende delas:
- Estrutura — O documento é validado contra a cópia do schema fixada no build do viewer, casada pela URL de schema que o registro declara. Quando um registro declara uma versão que o build não carrega, o viewer reporta não conferido estruturalmente em vez de validar, e campos introduzidos depois daquele build não são renderizados.
- Ida e volta on-chain — Quando um documento é aberto pela referência IPFS, ou colado ou enviado, o viewer relê a URI de metadados do contrato e do token que o próprio registro nomeia e exige que ela resolva para o mesmo documento: verified ou mismatch. É a conferência mais forte que o viewer faz. Ela não roda quando o registro é aberto por endereço de contrato, porque nesse caso o documento veio daquele contrato desde o início.
- Rede — A rede embutida no registro precisa ser uma das duas cadeias suportadas; caso contrário o registro é rejeitado.
O viewer não recalcula nenhum dos hashes do registro, e não verifica se os bytes devolvidos por um gateway realmente correspondem ao identificador de conteúdo solicitado. O endereçamento por conteúdo torna essa conferência possível — qualquer alteração no documento produz um identificador diferente — mas ela é feita por quem lê, buscando o identificador através de um cliente que valida endereçamento por conteúdo, ou fixando o documento novamente no IPFS e comparando os identificadores.
Documentos de proveniência são públicos, então atributos pessoais e comercialmente sensíveis são omitidos ou mascarados antes da publicação: um atributo marcado como privado fica de fora do documento publicado por completo, e um que continua público mas é sinalizado como sensível é publicado mascarado, com o valor completo preservado para auditores. O que o viewer renderiza é o registro publicado — a cadeia de custódia como ela foi liberada para publicação. A visibilidade é definida por evento, além de por atributo, então um evento marcado como privado fica ausente do documento por completo; o que você está lendo não é necessariamente o histórico operacional completo que um auditor vê.
O viewer também é verificável
Uma ferramenta de verificação pela qual só o autor pode responder desloca o problema de confiança em vez de resolvê-lo. Todo registro de proveniência da Carrot embute uma referência IPFS para o próprio build do viewer, de modo que a ferramenta que lê o registro fica fixada por endereço de conteúdo, exatamente como o documento que ela lê. Quem não quiser confiar na cópia servida em viewer.carrot.eco pode executar o build referenciado.
Onde ele se encaixa
Três superfícies apresentam os mesmos fatos em profundidades diferentes:
| Superfície | O que mostra | Lê de |
|---|---|---|
| Carrot Registry | Registros em contexto ambiental — metodologias, resultados de verificação, credenciamentos, ciclo de vida dos créditos | A plataforma da Carrot |
| Metadata Viewer | O documento de proveniência por trás de um registro, conferido contra o schema que o registro declara | A cadeia e o IPFS |
| Explorador de blockchain (ex.: PolygonScan) | Transações on-chain brutas, chamadas de contrato e logs de eventos | A cadeia |
O Registry é onde quem lê começa, partindo de uma pergunta sobre impacto. O Metadata Viewer é onde essa pessoa chega quando a pergunta passa a ser se um registro específico se sustenta por conta própria.
Saiba mais sobre o Carrot Registry · Saiba mais sobre a criação de registros no registry
Interoperabilidade
Como o registry público de créditos é projetado para integração externa, verificabilidade independente e interoperabilidade com sistemas externos.
Registry
Como a Carrot emite, rastreia e aposenta créditos ambientais como registros públicos duráveis — e por que a infraestrutura de registry importa para a integridade dos créditos.