The Synthesis Hackathon — ENS-powered agent for identity, communication, and discovery.
Uses ENS names for all onchain interactions — no raw addresses in the UX.
- ENS Communication ($600) — Send messages and pay by ENS name
- ENS Identity ($600) — Resolve, verify, and manage agent identity via ENS
- ENS Open Integration ($300) — Discover agents and capabilities via ENS
- Identity: Resolve ENS → address, reverse lookup, text records, profile management
- Communication: Send messages and payments using ENS names only
- Discovery: Find agents under domains, register subdomains, lookup capabilities
npm installCreate .env:
ETH_RPC_URL=https://eth.llamarpc.com
# Optional, for sending txs / setting records:
# PRIVATE_KEY=0x...
# AGENT_ENS_NAME=youragent.eth# Demo with real ENS names (vitalik.eth, nick.eth, etc.)
npm run demo
# Full agent demo
npm start10-ens-agent/
├── src/
│ ├── ens-identity.ts # ENS for agent identity
│ ├── ens-communication.ts # ENS for communication
│ ├── ens-discovery.ts # ENS for agent discovery
│ └── agent.ts # Main ENSAgent
├── scripts/
│ └── demo.ts # Resolve real ENS names, show UX
├── package.json
├── tsconfig.json
└── README.md
resolveAddress(ensName)— ENS → addressreverseLookup(address)— address → ENS namegetTextRecords(ensName)— profile data (avatar, description, url, etc.)setAgentProfile(ensName, records, dryRun)— set identity via text recordsverifyIdentity(ensName)— verify name ↔ address
sendMessage(toEns, message, dryRun)— send onchain message by ENS nameresolvePaymentTarget(ensName)— resolve payment addresspayByName(ensName, amount, dryRun)— pay using ENS name
discoverAgents(domain)— find agents under a domainregisterSubdomain(parentName, label, dryRun)— register agent subdomainlookupAgentCapabilities(ensName)— read capabilities from text records
MIT