Decentralized
Digital Credentials.

Ethereum Credential Service (ECS) is a decentralized registry of Smart Credentials including privacy-preserving credentials using Zero Knowledge Proofs (ZKPs).

9:41
Vitalik Buterin

vitalik.eth

Canadian Flag

Ethereum Co-founder

12K

4K Followers

vitalik.eth.limo
@VitalikButerin

Credentials

EthStars

eth.ecs.ethstars.stars

EFP Followers

eth.ecs.efp.followers

NationalitE

eth.ecs.nationalite.state

Powered by ECS Protocol

About ECS Protocol

Ethereum Credential Service (ECS) is a decentralized registry of Smart Credentials— verifiable onchain or offchain data about any identity. ECS supports both public and privacy-preserving credentials using Zero Knowledge Proofs (ZKPs), enabling users to prove attributes without revealing underlying data.

ECS is compatible with ENS, allowing Smart Credentials to be resolved in ENS profiles. Smart Credentials can also be resolved directly, or by any identity protocol including for AI agents. The decentralized architecture ensures no central authority controls the credential registry. Whether human or AI, any identity can discover and verify credentials in a trustless manner.

⚠️ Version 0.2.1-beta - Breaking Changes

ECS has been updated with major architectural changes. This version is not compatible with previous releases.

Deployed on Ethereum Sepolia Testnet

Simplified Architecture

Flat, single-label registry for easy integration

Smart Credentials

Registry of verifiable identity credentials

Privacy-Preserving

Zero Knowledge Proofs for private verification

ENS Compatible

Resolve in ENS profiles or directly

Universal Access

Works with any identity protocol

AI Agent Ready

Credentials for both humans and AI agents

Decentralized

No central authority or single point of failure

Namespace Ownership

Guaranteed control of credential domains

Built for Developers

ECS provides a decentralized registry of smart credentials with support for both public and privacy-preserving credentials. Compatible with ENS, resolvable directly, or through any identity protocol—including for AI agents.

Smart Credentials Registry

A decentralized registry of credentials about any identity. Smart credentials provide trusted, verifiable data that applications can easily discover and use.

Privacy with Zero Knowledge Proofs

Support for privacy-preserving credentials using ZKPs. Prove individual attributes while maintaining privacy.

Universal Resolution

ECS is compatible with ENS, allowing credentials to be resolved in ENS profiles. Smart Credentials can also be resolved directly or by any identity protocol—including for AI agents.

Decentralized & Trustless

ECS is a decentralized registry on L1 Ethereum. Registered Smart Credentials are fully controlled by their owners and accessible to anyone with a connection to the Ethereum blockchain.

Learn ECS

Get started with ecs.js to integrate smart credentials into your applications. Access verifiable credentials including privacy-preserving ZKP credentials through the decentralized registry.

Quick Start Example

// Install the ecs.js client
npm install @nxt3d/ecsjs@0.2.4-beta

// Example: Resolve credentials
import {
  createECSClient,
  sepolia,
  resolveCredential
} from '@nxt3d/ecsjs';

const client = createECSClient({
  chain: sepolia,
  rpcUrl: 'https://eth-sepolia.g.alchemy.com/v2/YOUR_KEY'
});

// Resolve credential from known resolver
const credential = await resolveCredential(
  client,
  '0x48A3D8Cec7807eDB1ba78878c356B3D051278891',
  'eth.ecs.name-stars.starts:vitalik.eth'
);

console.log(`Credential: ${credential}`);
// Returns: "100"

Resources

ecs.js GitHub Repository

View the source code, documentation, and examples for the ecs.js library.

View on GitHub →

ecs.js NPM Package

Install the ecs.js client directly from the NPM registry.

View on NPM →

Build with ECS

Install @nxt3d/ecsjs@0.2.4-beta to access smart credentials from the decentralized registry. Support for public and privacy-preserving credentials with ZKPs.

ECS Client Example

// Using @nxt3d/ecsjs v0.2.4-beta
import {
  createECSClient,
  sepolia,
  getResolverInfo,
  resolveCredential
} from '@nxt3d/ecsjs'

// Create client
const client = createECSClient({
  chain: sepolia,
  rpcUrl: 'https://eth-sepolia.g.alchemy.com/v2/YOUR_KEY'
})

// Get resolver info from address (for Hooks)
const { label, resolverUpdated, review } = await getResolverInfo(
  client,
  '0x48A3D8Cec7807eDB1ba78878c356B3D051278891'
)

// Resolve credential directly
const credential = await resolveCredential(
  client,
  '0xc8028D202838FF7D14835c75906A07839837C160',
  'eth.ecs.name-stars.starts:vitalik.eth'
)
// Returns: "100"

Development Steps

1

Install ECS.js

Install @nxt3d/ecsjs@0.2.4-beta to access the credential resolver client with ENS integration support.

2

Create Credential Resolver

Deploy a standard credential resolver (ENSIP-10 compatible) that serves your smart credentials.

3

Register Label

Register your label (e.g., my-service) via the ECS Registrar to make your resolver discoverable.

4

Enable Resolution Methods

Users can leverage ENS Hooks as one way to resolve smart credentials from your registered resolver.

ECS GitHub Repository

View the source code, documentation, and examples for the ECS protocol.

View on GitHub →

Testnet Contracts (Sepolia)

Deployment Date: December 23, 2025 |Network: Sepolia (Chain ID: 11155111) |Status: ✅ Live (Latest Deployment - Ownable + ERC-8049 Clone Pattern)

✨ New in v0.2.2: Ownable pattern for minimal clones + ERC-8049 integration for contract metadata + Factory pattern for gas-efficient deployments

Example Resolver (Minimal Clone)

Example Credential:
eth.ecs.name-stars.starts:vitalik.eth
Value: "100"

Supported by

Full Logo