EAS Attestation
EAS (Ethereum Attestation Service) on Maroo — attestation structure, indexer reverse lookups, and the x/eas chain-internal helper that PCL uses for fast attestation evaluation. Use this section when implementing KYC/KYB attestation flows. AI agent identity (ERC-8004 Identity Registry, Agent precompile) lives in the AI Agents section.
Identity
An Attestation in Maroo follows the standard EAS structure defined in Solidity. It contains metadata about the issuer, recipient, expiration, and the actual encoded data payload. The x/eas module decodes this structure from the EVM ABI into a consumable JSON/Protobuf format.
The EAS Indexer is a smart contract that maintains a mapping of attestations received by specific addresses. While the core EAS contract stores attestations by UID, the Indexer allows for reverse lookups, enabling developers to find all attestations of a specific schema that have been issued to a particular user.
Maroo integrates the Ethereum Attestation Service (EAS) as a core primitive for identity and reputation. EAS lives as standard Solidity contracts at canonical addresses; the chain's x/eas helper lets PCL read those contracts efficiently whenever it evaluates policies, before and after execution. dApp callers see the standard EAS surface — getAttestation, the Indexer's reverse lookups — and don't need to know the chain helper exists.
x/eas is a chain-internal helper that lets PCL evaluate KYC/KYB attestations wherever it checks an EAS_POLICY: before execution (at RPC submission and again in the chain's pre-execution checks), during execution (in the PCL preCall / postCall hooks and in the policy-aware Privacy precompile), and after execution. It does NOT add a developer-facing surface — dApps that need to read attestations should call the EAS contract preinstall at 0x...007 (or the Indexer at 0x...008 for reverse lookups) directly via JSON-RPC, exactly as on any other EVM chain.
The EAS precompile at 0x1000000000000000000000000000000000000009 is a thin discovery surface. It exposes a single view method — getParams() — that returns the canonical schemaRegistry, eas, and indexer addresses on this chain. The actual attestation API (issue, query, revoke) lives on the EAS contract preinstall, not on this precompile. As of the latest interface, IEas inherits IPrecompile, so argument-shape failures surface as typed errors from the shared set.
Maroo supports both standard anonymous wallets (Unverified) and KYC-linked wallets (Verified). This distinction is managed via the Ethereum Attestation Service (EAS) and dictates which transaction paths an account can use.