EthStars Logo

Decentralized stars protocol for ENS domains

Add a star to any domain or wallet address.
Create a signal that anyone can see onchain.

|
Price: 0.000001 ETH • Stars are stored on Base Mainnet.
Loading...

Leaderboard

Loading leaderboard...

What is EthStars?

EthStars is a decentralized onchain credential that lets anyone add stars to Ethereum addresses and domain names. Stars are stored permanently and can be resolved using ENS or any client supporting the credential interface.

🚧 EthStars is in beta, v0.1.0

How It Works

Vitalik Buterin
vitalik.eth
⭐ 12k stars
👥 4.8k EFP followers
*example, not actual numbers
  • Star any address or domain - Ethereum addresses, ENS names, or traditional domains
  • 👥 EFP Integration - Integrated with Ethereum Follow Protocol followers for amplified social signal
  • 🔗 Onchain storage - All stars are permanently recorded on Base Mainnet
  • 🌐 Universal resolution - Query stars via ENS (coming soon!) or any compatible client
  • 📊 Real-time events - Track new stars with indexed blockchain events

EthStars Protocol Constitution

This living constitution sets forth the principles that guide the EthStars protocol.

Version: 0.1.0
  1. 1Every domain deserves a star, no matter its value, high or low.
  2. 2The EthStars protocol is dedicated to enhancing the security and trustworthiness of ENS domains and Ethereum as a whole by providing a trust signal for legitimate domains.
  3. 3A star can never be removed from a domain and will be stored in a cryptographically provable way by anyone.
  4. 4The EthStars protocol will be progressively decentralized, eventually becoming owned solely by the ENS domains community.
  5. 5It is the etiquette of the community to use stars only to celebrate others and bring people together, not to exclude or divide. If someone gives you one star, give two to others.

Build with EthStars

Stars are stored onchain in two contracts, one for wallet addresses and one for domain names. Both use the ICredentialResolver interface. Applications can call credential() on either contract on Base to get star counts. Events are emitted when stars are added for indexing.

📍
StarResolver
★ Addresses
🌐
StarNameResolver
★ Domains

Credential Resolver Interface

/** * @title ICredentialResolver * @dev Interface for ECS credential resolvers that handle credential resolution. */ interface ICredentialResolver { /** * @dev Returns credential data for the given identifier and credential. * @param identifier The DNS-encoded identifier to resolve. * @param credential_ The credential key to look up. * @return The credential data, or empty string if not found. */ function credential(bytes calldata identifier, string calldata credential_) external view returns (string memory); }

Direct Link

Create direct links to any domain's star page for easy sharing and discovery.

Anyone can create a direct link to a domain's star page. This allows users to easily share domains they want others to star, or showcase domains they've starred.

HTML Examples:
vitalik.eth ⭐️ 12k [+]
Features:
  • Direct access to any domain's star page
  • Allows visitors to add their own star
  • Perfect for sharing on social media, websites, or documentation

EthStars API

Access onchain star counts programmatically with our public API.

GET/api/stars- Get star count for domains and addresses
Query Parameters
  • domain (string, optional): Domain name to query (e.g., vitalik.eth)
  • address (string, optional): Ethereum address to query
  • coinType (number, optional): Coin type for address queries (default: 60)
Sample Queries
// Domain query curl https://ethstars.info/api/stars?domain=vitalik.eth // Address query curl https://ethstars.info/api/stars?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&coinType=60
// Domain response { "domainIdentifier": "0x07766974616c696b0365746800", "domainName": "vitalik.eth", "starCount": 4, "timestamp": "2025-08-05T05:29:41.472Z" } // Address response { "targetAddress": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "coinType": 60, "starCount": 1, "timestamp": "2025-08-05T05:29:41.831Z" }
POST/api/stars/batch- Query multiple star counts efficiently
Request Body
  • queries (array): Array of query objects (max 20)
Sample Query
curl -X POST https://ethstars.info/api/stars/batch \ -H "Content-Type: application/json" \ -d '{ "queries": [ {"domain": "vitalik.eth"}, {"domain": "ethereum.org"}, {"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "coinType": 60} ] }'
// sample response { "results": [ { "success": true, "domain": "vitalik.eth", "data": { "domainIdentifier": "0x07766974616c696b0365746800", "domainName": "vitalik.eth", "starCount": 4 } }, { "success": true, "domain": "ethereum.org", "data": { "domainIdentifier": "0x08657468657265756d036f726700", "domainName": "ethereum.org", "starCount": 1 } }, { "success": true, "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "coinType": 60, "data": { "targetAddress": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "coinType": 60, "starCount": 1 } } ], "batchSize": 3, "timestamp": "2025-08-05T05:29:57.062Z" }
GET/api/leaderboard- Get top starred domains and addresses
Query Parameters
  • type (string): "names" or "addresses"
  • limit (number, optional): Number of results to return (default: 50)
  • offset (number, optional): Number of results to skip for pagination (default: 0)
Sample Query
curl https://ethstars.info/api/leaderboard?type=names&limit=3
// sample response { "stars": [ { "id": "0x9a704664009d615A90ddDf9345B6b8B2A214cFb2-0x07766974616c696b0365746800", "buyer": "0x9a704664009d615a90dddf9345b6b8b2a214cfb2", "domainIdentifier": "0x07766974616c696b0365746800", "domainName": "vitalik.eth", "starredAtTimestamp": "1753326415", "starredAtBlock": "33268534", "starCount": 2 }, { "id": "0x9a704664009d615A90ddDf9345B6b8B2A214cFb2-0x08657468657265756d036f726700", "buyer": "0x9a704664009d615a90dddf9345b6b8b2a214cfb2", "domainIdentifier": "0x08657468657265756d036f726700", "domainName": "ethereum.org", "starredAtTimestamp": "1753630285", "starredAtBlock": "33420469", "starCount": 1 }, { "id": "0x9a704664009d615A90ddDf9345B6b8B2A214cFb2-0x03656e730365746800", "buyer": "0x9a704664009d615a90dddf9345b6b8b2a214cfb2", "domainIdentifier": "0x03656e730365746800", "domainName": "ens.eth", "starredAtTimestamp": "1753631121", "starredAtBlock": "33420887", "starCount": 1 } ], "pagination": { "limit": 3, "offset": 0, "total": 3 }, "timestamp": "2025-01-21T12:00:00Z" }

Supported by

Unruggable