Skip to main contentA-REX Foundation

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ãoRelação
ERC-1155base; o A-REX Core é uma extensão
ERC-165descoberta de interfaces; cinco identificadores publicados
ERC-7943obrigatório; superfície de enforcement adotada literalmente
ERC-3643adaptador 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 ONCHAINIDos 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 Serviceos 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-7201layout de armazenamento da implementação de referência
ERC-7573, padrões de retenção e escrowa entrega contra pagamento e o escrow são hooks ou contratos complementares; o padrão não prescreve a liquidação
ERC-7802 / Chainlink CCIPadaptadores 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-chainEPCIS 2.0
BatchCreatedObjectEvent 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 / TransferBatchObjectEvent 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
BatchTransformedTransformationEvent (inputQuantityList, outputQuantityList, transformationID a partir de processRef); bizStep = repackaging para um reagrupamento, creating_class_instance para processamento
BatchCreated com referências upstreamTransformationEvent 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
ForcedTransferObjectEvent OBSERVE, holding quando os bens são colocados sob retenção judicial
BatchStatusChangedObjectEvent com disposition a partir da tabela de status do emissor
Attested / AttestationRevokedObjectEvent (inspecting, ou sampling no caso de um laboratório) com a referência do certificado
metadados gs1.*GTIN, LGTIN, SSCC, GLN, Digital Link
metadados extensionsilmd 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-REXCredencial do UNTPEmitida por
o lote, a sua origem, a instalação e os certificadosDigital 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 metadadosDigital Traceability Events: MakeEvent; MoveEvent; ModifyEvent, cada um ligado à sua transaçãoo emissor do lote
uma atestação de um certificador ou de um laboratóriouma referência à Digital Conformity Credential do avaliadoro 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:

InstrumentoOnde resideComo o token o referencia
Recibo de armazém eletrônico dos EUA (7 CFR 869)provedor de EWR autorizado pelo USDAdocuments[].registry, originRef
CPR-e, CDA/WA brasileirosregistradoras autorizadas pelo Banco Centraldocuments[].registryId; lote de pré-colheita com producedAt == 0
Certificado de depósito / warrant argentino (Lei 9.643)armazémhash em originRef
Conhecimento de embarque eletrônico (jurisdições da MLETR)plataforma de eBLhash do documento; em jurisdições da MLETR, o próprio token pode satisfazer o controle exclusivo
Declaração de devida diligência do EUDRSistema de Informação da UEorigin.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 canTransfer do 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_ROLE e chama createBatch a partir de eventos do ERP (ticket de balança, emissão de recibo); setBatchStatus/setBatchMetadata a partir de eventos do armazém; transform a 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: transferCheck permite 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

CapacidadeSituação
Carteiras / marketplaces ERC-1155nativo
Ferramentas de conformidade ERC-7943nativo
Ferramentas ERC-3643 que leem lotesadaptador de referência (ADR-020, Proposto)
Módulos de conformidade ERC-3643 como hooksprojeto, não implementado
Declarações do ONCHAINID a partir da situação no A-REXemissor de declarações de referência (ADR-021, Proposto)
Atestações ERC-735 / EASmapeamento de tópicos; espelho no EAS (ADR-022, Proposto)
Exportação EPCIS 2.0mapeamento informativo de eventos; nomes de campos no esquema; no lado do indexador
Credenciais UNTP 0.7.0mapeamento informativo; assinadas pelo emissor (did:web, VC-JOSE-COSE)
Pegadas PACT 3.0.3extensions.pact_pcf (ADR-018, Proposto)
Descritores de regrasarex.module/1 (informativo, Proposto)
Linhagem entre tokensmetadados upstream (esquema 1.2.0)
EVM permissionadamesmo bytecode
Cross-chainwrappers; a linhagem permanece na origem