← agentwallet.md

EAS (Ethereum Attestation Service)

by EAS (open source) · attest.org
Identity Open Source
Best for: Building agent reputation systems; issuing verifiable credentials on-chain; trust scores
Not ideal for: Off-chain identity; non-EVM chains; simple name resolution

Key Signals

Mechanism
On-chain attestations
Chains
EVM (10+ chains)
Integration
SDK
Pricing
Free (gas only)

Features

📜
Schema-Based Attestations
Define custom schemas for any type of claim: "this agent completed a task successfully", "this agent passed safety review", "this agent's operator is KYC-verified". Schemas are registered on-chain and reusable by anyone.
⚙️
On-chain and Off-chain Modes
Attestations can be stored fully on-chain (highest trust, costs gas) or off-chain (free, stored in IPFS or other systems with a signed hash anchored on-chain). Off-chain mode makes EAS practical for high-volume reputation systems.
🌱
Composable Reputation
Attestations from multiple issuers can be aggregated to build composite reputation scores. An agent can hold attestations from its operator, from users it has served, from auditors who reviewed its code, and from platforms it has integrated with.
🆓
Free to Use
EAS contracts are free to call — you only pay the network gas fee. Deployed on Ethereum, Base, Optimism, Arbitrum, Polygon, Scroll, and more. For high-volume use cases, L2 deployment keeps attestation costs negligible.

Ratings

Flexibility
4.8
Decentralization
4.7
Ecosystem Maturity
4.0
Ease of Setup
4.2
Ratings based on documentation review, GitHub activity, and public developer reports. Not independently verified in production.

Integration

npm install @ethereum-attestation-service/eas-sdk import { EAS, SchemaEncoder } from '@ethereum-attestation-service/eas-sdk'; import { ethers } from 'ethers'; const EAS_CONTRACT = '0x4200000000000000000000000000000000000021'; // Base const eas = new EAS(EAS_CONTRACT); const provider = new ethers.JsonRpcProvider('https://mainnet.base.org'); const signer = new ethers.Wallet(process.env.PRIVATE_KEY, provider); eas.connect(signer); // Register a schema: "agent task completion" const SCHEMA_UID = '0xYOUR_SCHEMA_UID'; // registered via SchemaRegistry const schemaEncoder = new SchemaEncoder( 'address agentAddress, string taskId, bool success, uint8 qualityScore' ); const encoded = schemaEncoder.encodeData([ { name: 'agentAddress', value: '0xAGENT_ADDRESS', type: 'address' }, { name: 'taskId', value: 'task-42', type: 'string' }, { name: 'success', value: true, type: 'bool' }, { name: 'qualityScore', value: 95, type: 'uint8' }, ]); const tx = await eas.attest({ schema: SCHEMA_UID, data: { recipient: '0xAGENT_ADDRESS', expirationTime: 0n, revocable: true, data: encoded }, }); const attestationUID = await tx.wait(); console.log('Attestation UID:', attestationUID);

Alternatives

Coinbase Verifications
KYC-backed attestations — pre-built schemas for verified identity backed by Coinbase KYC
Spectral
Credit scoring — ML-based on-chain credit scores as an alternative reputation mechanism
World ID
Proof-of-personhood — single attestation proving a unique human operator, not a reputation system