Skip to main contentA-REX Core

Registros de decisão · ADR-001

ADR-001: Standardize interfaces only; modules stay outside the standard

Only the specification and the interfaces in contracts/standard/ are normative; the reference token, hooks and extensions are implementations that may change without changing the standard.

Accepted
ID do documento
ADR-001
Data
2026-09-21
Disponível somente em inglês
Este documento é publicado em inglês. Os capítulos do whitepaper e os diagramas estão traduzidos; o padrão normativo, os guias de projeto do sistema e os registros de decisão permanecem em inglês para que exista um único texto de referência.
FieldValue
IDADR-001
Subject areaScope of the standard
StatusAccepted
Date2026-09-21
OwnersA-REX Contributors
Related requirementsFR-01, C-01 (SDD §3)
Supersedes / superseded by—

Context

A token standard is adopted when implementing it costs less than staying incompatible. The code base that preceded A-REX Core put a farm registry, an identity contract, enumerations of crops and grades and a valuation formula into its specification, and marked the registry and the identity contract as REQUIRED. An elevator in Argentina or an exporter in Colombia would have had to adopt somebody else's registry, identity model and crop list to be conformant.

The standards that did get adopted followed the opposite path. ERC-3643 (T-REX) and ERC-7943 each define a small interface, ship a working reference implementation, and let the ecosystem build compliance modules around them. ERC-1400, which tried to cover everything, gathered few independent implementations.

Issue

What exactly is normative in A-REX, and what is only a demonstration?

Assumptions

  • Independent teams implement a standard only if conformance is cheap and does not force a product choice on them.
  • ERC editors and reviewers reject proposals that prescribe a product or a business model.
  • Domain rules (perishability, seasons, custody, carbon, insurance) differ per issuer and per jurisdiction.

Constraints

  • The standard must be publishable as an ERC (CC0, ERC format, RFC 2119 keywords).
  • Nothing outside the token may be required for conformance (C-01).

Alternatives considered

AlternativeForAgainstOutcome
Keep the earlier 19-function surface with a required registry and identityFeature-complete out of the boxNo independent implementer would accept a mandatory registry and identity stack; every new crop needs a new versionRejected
Standardize only four interfaces (batch, hook, hook manager, attestations) plus ERC-7943Small, implementable, composable; domain rules live in hooksThe reference must demonstrate that the small core is sufficientAccepted
Publish a product and no standardFastest to shipNo interoperability; contradicts the goal of a public standardRejected

Decision

Only standard/AREX-CORE.md and the files in contracts/standard/ (IARexBatch, IARexHook, IARexHookManager, IARexAttest, IERC7943MultiToken, ARexCodes, ARexInterfaceIds) are normative, under CC0. Everything in contracts/reference/ (the token, the attestation registry, the seven hooks and three extensions) is a reference implementation or a demonstration, under MIT, and may change in any release without a change to the standard.

Argument

A small normative surface is what makes the standard adoptable; the reference implementation and the demonstrations are what make it credible. Keeping them separate lets the demonstrations evolve quickly while the interfaces stay frozen, which is the pattern that took ERC-3643 from a product to a standard.

Consequences

Positive

  • A third party can be conformant by implementing five interfaces, with no dependency on this repository.
  • Domain rules can be added, replaced or removed without a standards process.

Negative

  • The standard alone does not solve a business problem; adopters need hooks, from this repository or their own.
  • Every document must say whether a statement is normative or illustrative, which costs editorial discipline.

Obligations it creates

  • A change to contracts/standard/ is a major version with a migration note and needs confirmation from two independent implementers (standard/README.md).
  • No normative text may reference a contract in contracts/reference/.

Implementation and evidence

WhatWhere
Normative textstandard/AREX-CORE.md
Normative interfacescontracts/standard/
Reference and demonstrationscontracts/reference/
A token with no hooks is conformanttest/standard/ARexToken.test.js: reports the standard interface ids, including ERC-7943 multi-token 0x41c4fbad
  • ADR-002: ERC-1155 as the base token standard
  • ADR-003: Adopt ERC-7943 (multi-token variant) verbatim for enforcement
  • ADR-004: One hook interface, flags cached at registration, ordered evaluation