Blockchain / Web3
endorse.fun — Ethereum Endorsement Service
On-chain endorsements for any Ethereum address, built on EAS attestations
The challenge
Reputation on-chain is hard to express: there's no native, portable way for one Ethereum account to vouch for another and have that vouch be permanent, queryable, and tied to real value. Social proof today lives in silos off-chain, disconnected from the wallets it describes.
What we built
Lutra Labs built EES, the Ethereum Endorsement Service, letting any address endorse another on-chain with a typed category, a comment, and a social handle. Each endorsement is written as an Ethereum Attestation Service (EAS) attestation through an upgradeable EESCore contract, and any fee paid above the base endorsement price is forwarded to the endorsee as a donation. A The Graph subgraph indexes endorsements, donations, and aggregated per-account and global statistics, which power a Next.js dapp featuring profiles, an interactive social graph, and Farcaster frames. A companion Farcaster bot surfaces top endorsees to the network.
Highlights
- Endorsements minted as EAS attestations via an upgradeable UUPS EESCore contract (Solidity ^0.8.24, OpenZeppelin)
- Endorse-to-donate model: fees above the 0.00042 ETH base price flow to the endorsee, with a 1% protocol donation fee
- The Graph subgraph indexes endorsements, donations, withdrawals, and aggregated account and global stats
- Next.js 14 dapp with wagmi/viem, RainbowKit, profiles, and an interactive force-directed social graph
- Farcaster frames (Frog) plus a hub bot that casts the top endorsees, with Airstack for social identity resolution
- Nx monorepo spanning contracts (Foundry + Hardhat), dapp, subgraphs, and bot
Outcome
EESCore contracts are deployed on Base mainnet and on the Sepolia and Base Sepolia testnets, and the ees-base subgraph is published on The Graph Network.
Tech stack
- Solidity
- Ethereum Attestation Service (EAS)
- Base
- Ethereum
- The Graph
- Foundry
- Hardhat
- OpenZeppelin (UUPS Upgradeable)
- Next.js
- React
- TypeScript
- wagmi
- viem
- RainbowKit
- TanStack Query
- Tailwind CSS
- Farcaster (Frog frames)
- Airstack
- Nx