aere-docs/AERE-ERC8004-SUMMARY.md
Aere Network e4cead319d Initial public release
Aere Network public source. Everything here can be checked against the live
chain (chain id 2800, https://rpc.aere.network).

Scope note, stated up front rather than buried: consensus on chain 2800 is
classical secp256k1 ECDSA QBFT. The post-quantum work in this repository is at
the signature, precompile, account and transport layers. Nothing here makes the
consensus post-quantum, and no document in it should be read as claiming so.
2026-07-20 01:01:36 +03:00

4.5 KiB

Spec 5: ERC-8004 + x402/AP2 conformance for Aere's agent stack

What was built (all under aerenew/)

Thin ADAPTERS over the LIVE, already-deployed agent primitives. Nothing live was redeployed or modified.

New dir: aerenew/contracts/contracts/erc8004/

  • IERC8004.sol - modeled ERC-8004 Identity / Reputation / Validation interfaces ([VERIFY] flagged).
  • AereIdentityRegistry8004.sol - Identity adapter over the deployed AereAgentDID (0xce64..22C5). agentId == the DID's Falcon root key id; register binds AgentCard URI + domain to an existing DID agent, controller-gated; resolve by id/domain/address; DID string did:aere::.
  • AereReputationRegistry8004.sol - Reputation adapter over the deployed AereAIReputation (0x781e..feBF). READ path (getScore/getStats) reads the live scoreOf/statsOf directly. WRITE path (giveFeedback) forwards to live attest; needs the adapter to be a registered attestor (live set is immutable Foundation-only, so write-through is a founder-gated governance step -> honest AdapterNotAttestor revert + canWriteThrough()).
  • AereValidationRegistry8004.sol - THE DIFFERENTIATOR. ERC-8004 validation request/respond where the response proof is a Falcon-512 or ML-DSA-44 signature verified on-chain via the live precompiles (0x0AE1 / 0x0AE3) through AerePQCKeyRegistry.verifyWithKey. Fail-closed, non-replayable, challenge-bound.
  • AereAP2MandateVerifier.sol - x402/AP2 payment mandate ("agent X may spend up to N per period for purpose P") signed with Falcon-512 (PQC), verified via 0x0AE1. verifyMandate (view) + authorizeSpend (enforced: window + cap + PQC). Settlement routes through the existing AERE402 rail (not redeployed); optional SETTLEMENT_EXECUTOR gate.

Test: aerenew/contracts/test/erc8004-adapters.test.js Doc: aerenew/docs/AERE-ERC8004-X402-CONFORMANCE.md (mapping table + PQC differentiator + honest status)

REAL test result

npx hardhat test test/erc8004-adapters.test.js from aerenew/contracts -> 18 passing (~2s). Compiled 5 Solidity files (solc 0.8.23). Covers: identity register/resolve + controller gating; reputation attest->read (forward into live AereAIReputation, score reads back) + honest not-attestor revert; validation Falcon-512 (0x0AE1) accepted + ML-DSA-44 (0x0AE3) accepted + tampered rejected fail-closed + score-binding + stale-precompile-invalid; mandate verify/authorize/cap/expiry/tampered-fail-closed/revoke-halt/executor-gate.

Flags

  • [MEASURE] Local Hardhat has no PQC precompile. Test installs the repo's MockPQCPrecompile at 0x0AE1/0x0AE3 via hardhat_setCode (same as the AereRecoveryRegistry fault-harness). Mock parses at the LIVE precompile spec offsets (accept iff commitment == keccak256(pk||message)), so a pass proves correct input routing + fail-closed. Real precompile acceptance is proven separately vs live mainnet 2800 via eth_call (as AerePQCKeyRegistry/AerePQCAttestation are), NOT re-proven in this unit test. Adapters stay wired to 0x0AE1/0x0AE3 for production.
  • [VERIFY] ERC-8004 exact selectors are evolving (identity trending to ERC-721 register/tokenURI; reputation/validation arg orders unsettled). Adapters implement documented semantics; selector-level conformance reconcile pending. Marked in NatSpec + doc.
  • [VERIFY] x402/AP2 mandate field set still evolving (AP2 Intent vs Cart; x402 HTTP-402 payload). Struct captures the common "spend up to N per period for purpose Q" authorization.
  • [VERIFY] Reputation write-through needs Foundation to authorize this adapter as an attestor on mainnet (immutable live set) - external/founder-gated. Read path works against the live instance today.

Honesty boundaries respected

  • Adapters wrap live contracts, do NOT redeploy them. Consensus is NOT made post-quantum (still Besu QBFT classical ECDSA); only the validation-response and mandate AUTHENTICITY are PQC.
  • Standard-adoption by the wider ecosystem is external, stated as not controlled by Aere.
  • Brand "Aere Network"/"Aere" title case, ticker AERE uppercase; no em-dashes / "--" in doc prose.

Live addresses used (chain 2800)

AereAgentDID 0xce641d7d7C10553D82b06B7C21d423550e7522C5 | AereAIReputation 0x781ef746c08760aa854cDa4621d54db6734bfeBF AereAgentBond 0x32E0015F622a8719d1C380A87CE1a09bcd0cB86A | AerePQCKeyRegistry 0x1eCa3c5ADcBD0b22636D8672b00faC6D89363691 AERE402FacilitatorV2 0xFC2f7FAa94919caF1126b3c995F0F6AcCef291de | AereSink 0x69581B86A48161b067Ff4E01544780625B231676 Precompiles: 0x0AE1 Falcon-512, 0x0AE3 ML-DSA-44 (live, activation block 9,189,161)