Terp Network Docs

ADR-7: External Architectural Decision Record References

Curated index of external ADRs, BIPs, EIPs, ZIPs, and protocol proposals that influence Terp Network architecture

ADR 7: External Architectural Decision Record References

Changelog

  • 2026-03-16: Initial stub with category headings
  • 2026-05-12: Expanded to full ADR-1 template format with curated references and rationale

Status

Accepted

Dependencies

  • ADR-1: Standard Template and Design Guidelines — this ADR follows the format defined in ADR-1
  • ADR-4: Sovereign Custody & Authentication — references Ethereum account abstraction proposals
  • ADR-5: HashMerchant — references ICS-23 and IBC specifications
  • ADR-6: ZK-WASM — references Zcash ZIPs and zero-knowledge proof standards
  • ADR-9: LM-Augmented Development — references Cosmos SDK ADR process

Abstract

This ADR serves as a curated index of external architectural decision records, improvement proposals, and protocol specifications that directly influence Terp Network's architecture. It organizes references by ecosystem (Cosmos, Ethereum, Bitcoin, Zcash, web/platform) and documents why each reference is relevant. This index enables contributors to trace Terp Network's architectural lineage and understand the reasoning behind adopted patterns without searching across multiple external repositories.

Context and Problem Statement

Terp Network's architecture draws from decisions made across multiple blockchain ecosystems. Cosmos SDK provides the base framework; IBC defines inter-chain communication; Ethereum's account abstraction influences our smart account design; Bitcoin's UTXO model informs certain state management patterns; Zcash's zero-knowledge work shapes our ZK-WASM module. Without a central index, contributors must discover these influences ad-hoc, leading to duplicated research and inconsistent understanding of why certain patterns were adopted.

Decision Drivers

  • Traceability: contributors should be able to trace any Terp architectural decision back to its external influences
  • Discoverability: relevant external ADRs should be findable by category without searching multiple repositories
  • Relevance filtering: only include external references that have a direct, documented influence on Terp Network architecture
  • Maintainability: the index should be updatable as new influences are identified

Considered Options / Alternatives

  • No index (status quo): contributors discover external references organically. Low maintenance but poor discoverability.
  • Automated cross-reference scraping: parse external repos and auto-generate references. Comprehensive but includes noise and lacks context about why a reference matters.
  • Curated index with rationale (selected): manually maintained list of external references organized by category, each with a brief note on its relevance to Terp Network. Requires maintenance but provides high-signal, contextual references.

Decision Outcome

We maintain a curated index organized by ecosystem. Each entry includes the reference identifier, title, and a note on its specific relevance to Terp Network.

Cosmos Ecosystem

ReferenceTitleRelevance to Terp
Cosmos SDK ADR-001Module scaffolding and CLI generationTerp-core module structure follows Cosmos SDK conventions
Cosmos SDK ADR-039Collections iteratorsUsed in terp-core store patterns
Cosmos SDK ADR-041Store migrationsUpgrade handler design for terp-core
Cosmos SDK ADR-058Avoid JSON in prototype definitionsAPI design patterns for CosmWasm contracts
Cosmos SDK ADR-063State listen notifyEvent emission patterns in x/smart-account
Cosmos SDK ADR-066Virtual keys in storeSmart account key isolation patterns
IBC-go ADR-008ICS-23 commitment proofsHashMerchant (ADR-5) reuses ICS-23 for Merkle verification
CometBFT ADR-013Vote extensionsHashMerchant validator attestation mechanism
CometBFT ADR-107ABCI++ specificationx/smart-account AnteHandler integration

Ethereum Ecosystem

ReferenceTitleRelevance to Terp
EIP-4337Account Abstraction Using Alt MempoolSmart account design (ADR-4) adapts the authenticator pattern to CosmWasm
EIP-712Typed structured data hashingTransaction signing format for Terp accounts
EIP-1271Smart contract signature validationCosmWasm authenticator signature verification pattern
EIP-3074AUTH and AUTHCALL opcodesInfluences composite authenticator delegation design

Bitcoin Ecosystem

ReferenceTitleRelevance to Terp
BIP-32Hierarchical Deterministic WalletsKey derivation for Terp account key rotation
BIP-39Mnemonic code for generating deterministic keysWallet recovery seed standard
BIP-340Schnorr Signatures for Secp256k1Signature scheme option for Terp authenticators

Zcash Ecosystem

ReferenceTitleRelevance to Terp
ZIP-200Network Upgrade MechanismInfluences Terp upgrade handler design
ZIP-221FlyClient — Consensus-Layer Light ClientLight client verification patterns for Terp
ZIP-225Block Commitments (NU5)Block commitment structure informs HashMerchant root storage
ZIP-226Transfer and Memo EncryptionPrivacy patterns for Terp account data

Zero-Knowledge Proof Standards

ReferenceTitleRelevance to Terp
Halo2 (Zcash/Pasta curves)Recursive proof composition without trusted setupZK-WASM module (ADR-6) uses halo2 circuits for authentication proofs
PLONKish arithmetizationPolynomial commitment schemeCircuit design for norick WASM demo and future zkVM
ICS-23 (non-ZK)Vector commitment proofsBaseline commitment scheme that ZK-WASM extends

Web and Platform

ReferenceTitleRelevance to Terp
W3C WebAuthn (L3)Web AuthenticationPasskey authentication in ADR-4 smart accounts (secp256r1 credential type)
W3C DID CoreDecentralized IdentifiersTerp account naming and identity resolution
CW-721 (CosmWasm)Non-Fungible Token standardTerp account NFT implementation
CW-2981 (CosmWasm)Royalty standardNFT royalty enforcement in cw-infuser contracts

Consequences

Positive

  • Single location to trace all external architectural influences
  • New contributors can quickly understand why Terp made specific design choices
  • Cross-references enable impact analysis when external specs change

Negative

  • Requires manual maintenance as new influences are identified
  • Risk of becoming stale if not updated alongside new ADRs

Neutral / Trade-offs

  • This ADR is inherently incomplete — it captures known influences at the time of writing
  • Relevance notes are subjective — what seems tangential now may become critical later

Backwards Compatibility

Fully additive. No existing code or on-chain behavior changes. This is a reference document only.

Test Cases

  • Verify each listed external reference still resolves (periodic link check)
  • Verify that every Terp ADR with an external influence has a corresponding entry in this index
  • Verify that new ADRs adding external references update this index as a dependency

Further Discussions / Open Questions

  • Should this ADR auto-generate from metadata tags in other ADRs' References sections?
  • What is the cadence for reviewing and updating this index?
  • Should we include rejected external proposals that influenced our decision to take a different path?

References

On this page