Whitepaper · 12
Interoperabilidade
Como um token A-REX se encaixa no mundo existente: padrões de token do Ethereum, mecanismos de conformidade, padrões de dados de rastreabilidade e de passaporte de produto, pegadas de carbono, registros de documentos jurídicos, sistemas de identidade, infraestrutura cross-chain e sistemas já existentes nas propriedades rurais.
Com o ecossistema Ethereum
Um token A-REX Core é um token ERC-1155. Carteiras, exploradores, marketplaces e indexadores que entendem o ERC-1155 funcionam sem alterações: saldos, transferências múltiplas, uri(id), aprovações, verificações do receptor em transferências seguras. O A-REX acrescenta eventos e views; não remove nada.
Um token A-REX Core é um multi-token ERC-7943. Os mecanismos de conformidade e as plataformas de custódia que têm o ERC-7943 como alvo (o Automated Compliance Engine da Chainlink demonstrou compatibilidade; as plataformas de emissão da coalizão do ERC-7943 o estão adotando) reconhecem canTransfer, forcedTransfer, setFrozenTokens, canSend e canReceive sem adaptação.
| Padrão | Relação |
|---|---|
| ERC-1155 | base; o A-REX Core é uma extensão |
| ERC-165 | descoberta de interfaces; cinco identificadores publicados |
| ERC-7943 | obrigatório; superfície de enforcement adotada literalmente |
| ERC-3643 | adaptador de referência (ADR-020, Proposto): cada lote pode ser lido como um token ERC-3643 (saldos, elegibilidade, quantidades congeladas, pausa, movimentações) por meio de uma visão que lê diretamente do token e de um hook apenas de notificação que não pode permitir nem recusar nada; o token do A-REX não muda. Testado com o T-REX 4.1.6. Encapsular um módulo de conformidade do ERC-3643 como um IARexHook, e encapsular um lote como um valor mobiliário ERC-3643, continuam sendo projetos não implementados. Ler um lote por meio do ERC-3643 não o torna um valor mobiliário. |
| ERC-735 / declarações do ONCHAINID | os tópicos de declaração mapeiam-se diretamente para tópicos de IARexAttest (bytes32(uint256 topic)); um emissor de declarações de referência (ADR-021, Proposto) apresenta a situação de uma empresa no A-REX como declarações do ONCHAINID que só são válidas enquanto o A-REX confia no seu signatário, verificadas no momento em que são lidas, e só o signatário as revoga. Testado com o ONCHAINID 2.2.1. |
| Ethereum Attestation Service | os UIDs de esquema são tópicos válidos de IARexAttest; um espelho de referência (ADR-022, Proposto) publica no EAS os certificados e os registros de lote vigentes sob dois esquemas sem contrato resolver, e revoga suas cópias quando o A-REX os revoga, deixa de confiar neles ou os altera. Testado com o EAS 1.4.0. Um registro IARexAttest baseado no EAS continua sendo um projeto não implementado. |
| ERC-7201 | layout de armazenamento da implementação de referência |
| ERC-7573, padrões de retenção e escrow | a entrega contra pagamento e o escrow são hooks ou contratos complementares; o padrão não prescreve a liquidação |
| ERC-7802 / Chainlink CCIP | adaptadores cross-chain de cunhagem/queima podem encapsular o token; a linhagem permanece na rede de origem, as referências viajam |
Com os padrões de dados de rastreabilidade
GS1 EPCIS 2.0 / CBV
O padrão publica um mapeamento informativo, evento por evento:
| On-chain | EPCIS 2.0 |
|---|---|
BatchCreated | ObjectEvent ADD, bizStep = creating_class_instance (no nível do lote) ou commissioning quando são atribuídos ids de instância, quantityList (unidade da Rec. 20), dados mestres do lote em ilmd |
TransferSingle / TransferBatch | ObjectEvent OBSERVE com as partes titulares como origem e destino; nenhum bizStep para uma simples mudança de titularidade, shipping/receiving apenas quando os metadados ou um hook de rastreabilidade indicam que os bens se moveram |
BatchTransformed | TransformationEvent (inputQuantityList, outputQuantityList, transformationID a partir de processRef); bizStep = repackaging para um reagrupamento, creating_class_instance para processamento |
BatchCreated com referências upstream | TransformationEvent quando os bens foram processados a partir do lote de outro token; caso contrário, um ObjectEvent com o fornecedor como origem; o epcClass compartilhado o liga ao próprio evento do fornecedor |
ForcedTransfer | ObjectEvent OBSERVE, holding quando os bens são colocados sob retenção judicial |
BatchStatusChanged | ObjectEvent com disposition a partir da tabela de status do emissor |
Attested / AttestationRevoked | ObjectEvent (inspecting, ou sampling no caso de um laboratório) com a referência do certificado |
metadados gs1.* | GTIN, LGTIN, SSCC, GLN, Digital Link |
metadados extensions | ilmd do evento de criação; uma pegada declarada como arex:declaredFootprint |
O esquema de metadados usa de propósito os nomes do EPCIS/CBV, para que um exportador mapeie campos, e não conceitos.
UN Transparency Protocol (UNTP 0.7.0)
Um mapeamento informativo converte um lote, os seus eventos e as suas atestações em credenciais do UNTP 0.7.0, com os mesmos identificadores do mapeamento EPCIS, para que os dois possam ser cruzados:
| A-REX | Credencial do UNTP | Emitida por |
|---|---|---|
| o lote, a sua origem, a instalação e os certificados | Digital Product Passport (credentialSubject um Product, um por lote) | o emissor do lote |
| cunhagem e processamento; transferências e recebimentos; queimas, mudanças de status e correções de metadados | Digital Traceability Events: MakeEvent; MoveEvent; ModifyEvent, cada um ligado à sua transação | o emissor do lote |
| uma atestação de um certificador ou de um laboratório | uma referência à Digital Conformity Credential do avaliador | o avaliador, nunca o emissor do lote |
As credenciais seguem o W3C Verifiable Credentials Data Model 2.0 e são assinadas com VC-JOSE-COSE sob o did:web do emissor; a revogação usa uma Bitstring Status List. Uma credencial assinada também pode ser ancorada ao seu lote como uma atestação cuja referência é o hash da credencial; a âncora prova o compromisso, a assinatura prova o conteúdo. Uma credencial traz apenas o que o token ou os seus metadados contêm, e os valores que exigem um método (uma pegada, uma pontuação de risco) só aparecem quando uma parte identificada os declarou. O mapeamento declara o que não cobre, a começar pelo Passaporte Digital de Produto da UE: o ESPR não se aplica a alimentos, rações nem a plantas e animais vivos, e o A-REX não faz nenhuma afirmação de passaporte para eles.
Pegadas de carbono declaradas (PACT 3.0.3)
O ADR-018 (Proposto) permite que um lote traga uma pegada de carbono de produto calculada por um terceiro, em extensions.pact_pcf do documento de metadados. O fragmento segue campo a campo as WBCSD PACT Technical Specifications 3.0.3: quem a declarou, a unidade declarada e o período de referência, a pegada com e sem a absorção biogênica e um status de verificação obrigatório que indica o verificador quando a pegada é verificada. Ela é copiada, nunca calculada, somada nem transmitida aos lotes feitos a partir do lote, e não é um crédito de carbono (ADR-014). O mapeamento é um derivado separado do PACT e não copia nenhum arquivo do PACT.
Códigos de commodity e de unidade
Um código de commodity é keccak256("<SCHEME>:<CODE>") para qualquer esquema: o Sistema Harmonizado (HS), nomenclaturas tarifárias nacionais (NCM no Mercosul, CN e TARIC na UE, HTS nos Estados Unidos, entre outras), FAO, CPC, GTIN ou um esquema próprio do emissor. Desde o esquema de metadados 1.1.0, o esquema no documento também é aberto, de modo que os metadados podem espelhar o código on-chain. As unidades são códigos da Recomendação 20 da UN/CEFACT (KGM, TNE, LTR), a lista que EDI, EPCIS e alfândegas já usam.
FSMA 204
Os elementos-chave de dados são campos de metadados (traceabilityLotCode, GLN, datas, quantidades) e eventos; o CTE de transformação é BatchTransformed; a solicitação de registros em 24 horas é uma consulta ao indexador. Consulte o capítulo regulatório para o mapeamento completo.
Codex, ISO 22000, GLOBALG.A.P., esquemas orgânicos
Todos são tópicos de atestação. O padrão não os enumera: keccak256("GLOBALGAP:IFA"), keccak256("AREX:CERT:ORGANIC_EU"), keccak256("CODEX:MRL") são convenções que o emissor publica com seu esquema de metadados.
Com registros de documentos jurídicos
Os tokens A-REX referenciam instrumentos jurídicos; não os substituem até que uma jurisdição reconheça o próprio token:
| Instrumento | Onde reside | Como o token o referencia |
|---|---|---|
| Recibo de armazém eletrônico dos EUA (7 CFR 869) | provedor de EWR autorizado pelo USDA | documents[].registry, originRef |
| CPR-e, CDA/WA brasileiros | registradoras autorizadas pelo Banco Central | documents[].registryId; lote de pré-colheita com producedAt == 0 |
| Certificado de depósito / warrant argentino (Lei 9.643) | armazém | hash em originRef |
| Conhecimento de embarque eletrônico (jurisdições da MLETR) | plataforma de eBL | hash do documento; em jurisdições da MLETR, o próprio token pode satisfazer o controle exclusivo |
| Declaração de devida diligência do EUDR | Sistema de Informação da UE | origin.eudr.ddsReference, atestação EUDR:DDS |
Com sistemas de identidade
O token pergunta apenas canSend(account) / canReceive(account). Por trás dessa pergunta pode haver:
- uma lista de permissão/bloqueio mantida pelo emissor (
EligibilityHook); - um registro de identidade ONCHAINID com tópicos de declaração (o modelo do ERC-3643);
- atestações do Ethereum Attestation Service sobre a conta;
- credenciais verificáveis validadas off-chain e refletidas on-chain por um relayer;
- um esquema nacional de e-ID (carteira eIDAS 2.0 na UE) por meio de um verificador de credenciais.
Nenhum deles faz parte do padrão, razão pela qual um emissor no Brasil e outro na Alemanha podem usar provedores diferentes e continuar interoperáveis.
Com mecanismos de regras e plataformas
Uma regra ou um módulo adicional pode publicar um descritor arex.module/1: um documento JSON com os seus parâmetros, configurações, campos de lote exigidos, tipos de certificado, eventos, códigos de rejeição e como o seu estado passa para uma nova versão. Uma plataforma, carteira, indexador ou auditor que lê descritores integra uma nova regra sem código personalizado. O formato é informativo e está Proposto; passa a ser um formato recomendado quando um segundo implementador independente o consumir. A revisão 1.1 acrescenta uma lista opcional e informativa ops com as operações que uma regra governa; ausente, significa desconhecidas, e nunca é usada para aplicar controles.
Implantação cross-chain
O padrão é agnóstico quanto à blockchain. Modelos práticos:
- Uma única rede de origem por emissor (recomendado): a linhagem e o enforcement permanecem coerentes; as demais redes mantêm representações encapsuladas por meio de adaptadores no estilo ERC-7802 ou do CCIP.
- Rede EVM permissionada para emissores cuja autoridade de proteção de dados ou instituição âncora a exija; o EDPB favorece expressamente projetos permissionados. Mesmo bytecode.
- Espelhos para liquidez: um identificador de lote na rede de origem, um wrapper ERC-20 em outra; o wrapper deve respeitar
canTransferdo token de origem ou restringir-se a titulares elegíveis.
A linhagem nunca atravessa redes; as referências, sim. Entre tokens da mesma rede ou de redes diferentes, um lote feito a partir do lote de outro token o indica na lista upstream dos seus metadados (esquema 1.2.0) por chain id, contrato e id do token. Essas referências são afirmações do emissor, a serem confrontadas com o token a montante.
Com sistemas de gestão de propriedades rurais e ERP
Os pontos de integração são os mesmos de qualquer token ERC-1155, mais as views de lote:
- Caminho de escrita: um serviço de originação detém
ISSUER_ROLEe chamacreateBatcha partir de eventos do ERP (ticket de balança, emissão de recibo);setBatchStatus/setBatchMetadataa partir de eventos do armazém;transforma partir de ordens de processamento. - Caminho de leitura: um indexador materializa lotes, linhagem, atestações e eventos de enforcement nas tabelas de rastreabilidade do ERP; exportação EPCIS para parceiros e reguladores.
- Verificação prévia:
transferCheckpermite que um ERP explique uma recusa a um operador antes de enviar uma transação. - Identificadores: as chaves GS1 nos metadados fazem a ponte com repositórios EDI e EPCIS existentes; as unidades UN/CEFACT já estão nos ERPs.
Matriz de compatibilidade
| Capacidade | Situação |
|---|---|
| Carteiras / marketplaces ERC-1155 | nativo |
| Ferramentas de conformidade ERC-7943 | nativo |
| Ferramentas ERC-3643 que leem lotes | adaptador de referência (ADR-020, Proposto) |
| Módulos de conformidade ERC-3643 como hooks | projeto, não implementado |
| Declarações do ONCHAINID a partir da situação no A-REX | emissor de declarações de referência (ADR-021, Proposto) |
| Atestações ERC-735 / EAS | mapeamento de tópicos; espelho no EAS (ADR-022, Proposto) |
| Exportação EPCIS 2.0 | mapeamento informativo de eventos; nomes de campos no esquema; no lado do indexador |
| Credenciais UNTP 0.7.0 | mapeamento informativo; assinadas pelo emissor (did:web, VC-JOSE-COSE) |
| Pegadas PACT 3.0.3 | extensions.pact_pcf (ADR-018, Proposto) |
| Descritores de regras | arex.module/1 (informativo, Proposto) |
| Linhagem entre tokens | metadados upstream (esquema 1.2.0) |
| EVM permissionada | mesmo bytecode |
| Cross-chain | wrappers; a linhagem permanece na origem |