Attestation Station

  • Name: Attestation Station (ATST)
  • URL: https://github.com/ethereum-optimism/optimism-starter/blob/main/attestation-station.md
  • Category: minimal attestation registry / onchain key-value claims store / Optimism identity primitive
  • Tags: ethereum-ecosystem
  • Summary: Attestation Station is a minimal onchain claims registry. That is the point. It stores creator / subject / key / value, lets anyone write, and pushes schema discipline, issuer filtering, indexing, and trust interpretation out to surrounding apps. Useful lower-bound contrast, not a full attestation rail.
  • What it does:
    • Stores attestations in a three-level mapping keyed by creator, subject (about), and bytes32 key
    • Lets any caller write a single attestation or batch multiple attestations in one transaction
    • Treats the attested payload as arbitrary bytes, so the contract does not enforce a shared schema format
    • Emits an AttestationCreated event for each write, making external indexing and interpretation straightforward
    • Provides a lightweight SDK / CLI / hackathon-oriented integration surface in Optimism’s starter materials
    • Encourages ecosystem-specific keys, conventions, and indexers rather than embedding resolver logic or issuer governance onchain
  • Key claims:
    • The official Optimism starter docs describe the Attestation Station as being “as simple as possible so you, the community, lead the direction it takes,” which is the clearest signal that it belongs in the corpus as minimal claims infrastructure rather than as a vertically opinionated identity product.
    • Those same docs define every attestation as just four properties — Creator, About, Key, and Val — which makes the protocol analytically valuable because it exposes the irreducible storage primitive underneath more elaborate attestation stacks.
    • The reviewed Solidity contract makes the design even clearer: attestations live in mapping(address => mapping(address => mapping(bytes32 => bytes))), meaning the base layer only cares who made a claim, who it is about, what namespace key it uses, and what raw bytes were stored.
    • Anyone can call attest, and the contract also supports batched attestations. That means issuer admission is permissionless at the contract layer; any trust filtering has to happen through conventions, downstream app logic, or indexers rather than through an onchain gatekeeper.
    • The contract exposes no schema registry, resolver hook, native revocation flow, or issuer allowlist in the reviewed source. That absence is the key reason to keep it in the active corpus: it provides a clean baseline for comparing what later attestation systems add on top.
    • Because writes overwrite the value at the same creator/about/key slot, the primitive is closer to a namespaced signed note or mutable key-value claim store than to an immutable credential ledger.
    • The starter materials also highlight SDK, CLI, and indexer surfaces, showing that the intended ecosystem model is not one canonical frontend but many downstream tools that read, write, and reinterpret the shared attestation substrate.
    • Attestation Station is especially useful in the corpus because it helps separate storage minimalism from trust policy: schema governance, issuer discovery, resolver-enforced rules, tokenized credentials, and revocation semantics all become visibly optional layers rather than properties every attestation system must have.
  • Whitepaper: No standalone Attestation Station whitepaper or litepaper surfaced in this pass. The strongest primary materials were the official Optimism starter documentation and the reviewed contract source collected in ../whitepapers/attestation-station-primary-sources-2026-05-11.md.
  • Sources:

Internal linkages

Practical control points

  • Control is mostly offchain: key naming conventions, issuer allowlists, indexer policy, and which readers decide a given creator / subject / key / value tuple means anything.

  • That is why the note matters. It shows how much of attestation infrastructure usually lives outside the bare contract.

  • Last reviewed: 2026-06-04 UTC