Building an On-Chain Review System with EAS

Hey everyone,

I wanted to post a quick update on our progress regarding our Season 5 Builder’s Grant :saluting_face:


Objective of the Builder Grant

Our Builder grant was aimed at creating an onchain review web app with EAS / an Attestation-Based Dapp Rating System :point_right: essentially an onchain Yelp for dApps.

The goal of this Attestation-Based Dapp Rating web app is to allow anyone to review dApps and tools, with all reviews stored onchain (on OP mainnet, though other networks can be configured).

By leveraging the Ethereum Attestation Service, users can share their experiences 100% onchain, offering:

Transparency

  • Onchain reviews are tamper-proof and verifiable by anyone.
  • Traditional databases can be opaque and prone to manipulation. Plus if Yelp or TrustPilot go bankrupt, their reviews disappear.

Composability

Anyone can easily enable their users to leave reviews onchain:

  • Instead of relying on web2 services like G2, Capterra, or ProductHunt, dApps can encourage their users to leave reviews 100% onchain.
  • Official ecosystem pages from networks like Base and Optimism can integrate this attestation-based rating system.
  • Unofficial ecosystem pages such as Superchain.eco, dappRadar, and DefiLlama can also benefit from this setup.

Similar to Farcaster, which is a protocol on which multiple clients like Warpcast and Supercast build, this system allows multiple frontends to build on the same foundation. This means that all reviews added onchain can be reused by anyone.


Progress Update

We began developing this project even before the grant was approved and released our initial working MVP at the end of April. Since then, we have continuously added new functionalities. You can view the source code on Github and check out the demo app here.

Here are the milestones we set and our progress on each:

Milestone 1: Implement Wallet Connection and Sign-In Functionality

We used wagmi and web3modal to implement seamless wallet connection and sign-in functionality. This ensures users connect their wallets and are on the correct network to leave a review. We also addressed various edge cases, such as prompting users to switch networks automatically, preventing transactions on unsupported networks, and handling errors in case a transaction fails.

You can test the entire login and sign-in flow by adding a 100% onchain review, for instance, for Synthetix.

Milestone 2: User Interface Development

We designed a user-friendly interface specifically for dApp reviews. Users can view all reviews per project, sort by date, and filter by rating (from 1 to 5 stars). Additionally, hovering over a reviewer’s profile displays various information about the reviewer.

Milestone 3: On-Chain Publishing and Reputation System

Users can easily leave reviews onchain through various frontends, including our demo web app, Ethereum Ecosystem, the Ethereum Attestation Service website, or any other third-party frontend that supports the review schema. Reviews can also be added programmatically by directly calling the EAS smart contract.

Review Submission Flow Through Our Frontend

  1. Wallet Connection: Users connect their wallet (or create one with Coinbase smart wallet) and switch to the correct chain.
  2. ENS Check: We check if the user has an ENS set. If they do, we sponsor the gas fees, and the user only needs to sign the review using their wallet. If they don’t, they cover the gas fees themselves (usually about $0.02).
  3. Review Confirmation: Once the review is confirmed, it’s pulled into our PostgreSQL database, where we collect various data points about the reviewer to establish a credibility/reputation score. Criteria include Coinbase verification, POAP collection, Farcaster profile and followers, crypto assets, Gitcoin passport score, ENS name, etc.
  4. Reputation Score: Based on these data points, we assign a score. If it’s above a certain threshold, we display that the reviewer is highly trusted on our frontend.

Since we cannot prevent anyone (nor would we want to) from adding reviews onchain due to the permissionless nature of the blockchain, we have implemented checks to guide users on the trustworthiness of certain reviews. By pulling the data from the blockchain into our database, we can warn users on our frontend about the credibility of reviews based on a series of data points.

Milestone 4: Algorithm Enhancement

Users can sort projects by number of reviews, overall review score, and alphabetical order. Although the current number of reviews is low, we expect this to become more effective as more reviews are posted.

Milestone 5: Farcaster Frame Integration

We used framejs to enable straightforward reviewing within Farcaster. Users can post a link to either a dApp on Ethereum Ecosystem or our demo app, which turns the link into a Farcaster frame, allowing users to leave a review without leaving e.g. Warpcast.

Warpcast post

Milestone 6: Marketing Strategy Execution

This is a work in progress. We’ve focused primarily on development over the last 3.5 months and will now shift our focus to attracting reviews and boosting user participation.

Live Demo

To see the onchain review system in action on a real-production app, check out Ethereum Ecosystem, where users can review various dApps and tools. Alternatively, we have built a simpler project that focuses on listing all apps that have been reviewed: Onchain Reviews.

This project is fully open-sourced and accessible on Github.

Thank you for your support and we look forward to sharing more updates as we continue to develop and enhance this project!

Cheers,
Maxime

4 Likes

For those who prefer a visual demonstration, here it is:

3 Likes

@MaximeServais thank you for sharing here. When you mention, “By pulling the data from the blockchain into our database, we can warn users on our frontend about the credibility of reviews based on a series of data points”, can you expand a bit on what data points you are assessing to determine the credibility of reviews? Assuming there is not a sybil detection mechanism here, so these data points would be interesting to see if you can share.

Secondly, is there any current incentive structure you have for users to leave reviews?

Thanks again for sharing this update.

Hey,

Thanks for your questions!!

  1. When someone adds a review onchain, we pull it into our database and then query a few APIs to retrieve data about the reviewer. Here are the data points we currently assess:
  • Does the person have an ENS name set?
  • How many POAPs does the person hold?
  • Does the person have a Farcaster account?
  • Is the person active on Farcaster?
  • Does the person have followers?
  • What is the person’s total asset balance (using DeBank for info)?
  • Is the person followed by other people on DeBank?
  • What’s their Gitcoin score?
  • Is the person verified by Coinbase?

Ideally, we would like to use much more data, such as whether the person is an active voter on Snapshot or active on Lens. Additionally, we plan to run checks against the sybil list released by LayerZero. We are aware there may be false positives, so this is just one of many data points to assess a reviewer’s credibility score.

  1. Regarding your second question, there are currently no incentives for users to leave a review. So far, we have focused all our efforts on building out the solution. We also plan to make it possible for people to sign in with Farcaster and leave a review for free by sponsoring the gas cost. Starting in August, we will begin working on the incentive structure to attract quality and real reviews.

Thanks again for your interest!!

Cheers,
Maxime

1 Like

Season 5 Builder’s Grant Update: Onchain Review System Progress

Hey everyone,

I wanted to share an update on the progress of the Attestation-Based Dapp Rating System, which I’ve been developing as part of the Season 5 Builder’s Grant since early April. As a reminder, my goal is to create an onchain Yelp/Trustpilot for dApps, leveraging the Ethereum Attestation Service (EAS) to store reviews transparently and immutably on the blockchain.

New Features and Improvements

Since my last update in July, I’ve focused on enhancing the functionality and user experience of the platform:

  1. Improved Review Flow: Completely revamped based on user feedback to be more intuitive.
  2. Reviews Page: A dedicated page showing the latest reviews across all dApps.
  3. Leaderboard: Introduced to showcase top reviewers and encourage healthy competition.
  4. Reviewer Profiles: Users now have their own profiles, adding authenticity and displaying review history.
  5. Farcaster Integration: Users can now sign in with their Farcaster accounts.
  6. Revamped Landing Page: Redesigned to better communicate the value of onchain reviews.
  7. Profile Page: Users can now easily view all their reviews, connect/disconnect their wallet, switch chain, and manage their account settings.

I’ve been “building in public” and sharing my progress along the way. You can see some of the features and improvements I’ve implemented in these tweets: tweet 1, tweet 2 & tweet 3.

User Acquisition Efforts and Lessons Learned

Attracting reviews has proven more challenging than initially anticipated. I’ve been experimenting with multiple strategies to see what works best. Here’s a breakdown of my efforts and the rationale behind each:

  1. Social Media Promotion:
  • Rationale: I tried posting past user reviews on social media, hoping it would drive engagement and traffic to Ethereum-Ecosystem from people interested in leaving their own reviews.
  • Results: This yielded mixed results, with minimal conversion to actual reviews. The effectiveness of this strategy at scale is questionable due to low conversion rates and Twitter’s external link penalties.
  • Examples: High engagement, Low engagement 1, Low engagement 2
  • Next steps: I’ll continue experimenting with social media but explore other types of content that might be more effective.
  1. Partner Promotion:
  • Rationale: I believed that if an app asked its users for reviews, it would generate a significant number of reviews. While these might be biased towards positive feedback from core users, it would still get reviews in.
  • Results: Collaborated with Sablier for a social media push, but it resulted in zero new reviews.
  • Next steps: I’ll try again with other partners, refining the approach based on this experience.
  1. Bounty/Questing:
  • Rationale: I hoped that organizing raffles/contests would yield good results in attracting reviews.
  • Challenges: It’s incredibly difficult in web3 to capture attention, especially with a limited budget.
  • Results: Experimented with Bountycaster, receiving slightly under 100 reviews for 100 USDC.
  • Next steps: I plan to refine this approach and try again with adjusted parameters. I’m also exploring other platforms:
    • Tested Zealy but found it unsuitable for our needs.
    • In discussions with Layer3, Galxe, and Boost.xyz to explore additional incentivization options.

Throughout these experiments, I’ve learned that attracting reviews is more challenging than expected. However, each attempt provides valuable insights that I’m using to refine my strategies. I’m committed to continuing these experiments, tweaking approaches, and finding the most effective ways to encourage user participation in onchain reviews.

Next Steps

The challenge of attracting reviews has been greater than expected, leading me to focus on:

  1. User Experience: Significantly improved the review flow based on feedback.
  2. Incentivization: Future focus on collaborating with quest platforms, organizing contests/raffles, and refining bounty strategies.

I welcome any suggestions or ideas from the community on how I can further improve and promote the use of onchain reviews. Thank you for your continued support, and I look forward to sharing more updates as I progress.

Cheers,
Maxime

1 Like

Hey everyone,

Since my last update a month ago, I’ve been focusing on both development and marketing efforts, with a particular emphasis on attracting quality review(er)s. Here’s a summary of the progress, challenges, and future plans:

Development Progress (20% of focus)

While the majority of my efforts have been directed towards marketing and user acquisition, I’ve continued to make improvements to the platform. I’ve enhanced the leaderboard functionality, improved the display of top reviewed apps, implemented gamification features with (offchain) badges, and developed proper spam detection and filtering.

Marketing and User Acquisition Efforts (80% of focus)

Attracting quality reviewers has proven to be significantly more challenging than anticipated. Here are the strategies I’ve experimented with in September:

Bountycaster Campaigns

I tried a new approach on Bountycaster: offering a guaranteed payout. Users could earn 1 USDC per review, with the reward scaling up to 5 USDC for 10 reviews. Unfortunately, this didn’t work as well as I hoped, with lower participation than expected. It seems users prefer the chance of winning larger rewards over small guaranteed payouts. Based on this insight, I am planning to combine guaranteed payouts with raffle entries in bounties I will set up in October.

Galxe Quest

I have set up a Galxe quest, organizing a raffle where 10 people could each win 20 USDC for leaving reviews. This experiment cost 200 USDC in rewards, plus 400 USD worth of G tokens staked to create a Galxe space. Unfortunately, the quest has received very little traction so far (from genuine users). Few people discovered it, and those who did often appeared to be low-quality wallets. I even encountered a situation where one user created 4,000 wallets to leave single reviews, hoping to qualify multiple times. Not sure I’ll continue experimenting with Galxe in the future.

Direct Founder Outreach

I reached out to numerous project founders, primarily via Telegram, to gather feedback and encourage them to leave reviews and share their app page with their communities. While most replied, very few actually left reviews and shared it with their communtiy. I think founders had ethical concerns about reviewing their own projects + they didn’t see an immediate benefit in doing so. And some mentioned they wanted guaranteed significant traffic to their dApps before engaging (it’s a bit the chicken & egg problem imho, if there are no reviews for an app, it doesn’t surface & climb up in the rankings which means the app doesn’t get any traffic since the listing is burried somewhere deep on the site).

Web2 Review Site Analysis

I looked at successful Web2 review platforms like G2 and found that most rely heavily on financial incentives, offering gift cards worth $5-10 for reviews. This model is sustainable for them due to high revenues from listed apps, but it’s not currently feasible for my project without significant funding. Anyway before blowing up tens of thousands of dollars, I would rather have experimented with smaller sums of money to find out what works well and what doesn’t work.

Main Challenges

Here are the key issues I’ve encountered so far to attract reviews:

  1. Wallet Connection Barrier: users seem very hesitant to connect wallets and sign transactions, even when gas is sponsored.
  2. Limited Active Onchain Users: the pool of regularly active onchain users is very small. I am hopeful this will increase, especially with smart wallets making it incredibly easier to spin up a wallet.
  3. Incentive Structure: it’s hard to find the right balance of incentives to encourage genuine, quality reviews without overspending.
  4. Chicken-and-Egg Problem: I need reviews to generate more traffic, but need traffic to attract high-quality reviews. Right now there are +20K monthly visitors on the site which is definitely not enough to get thousands of reviews in.

Plans for October

  1. Boost.xyz Campaign: I’m in talks with Brian about launching a campaign for direct reward claims after leaving reviews. This isn’t possible yet, as I’m waiting for Boost to release their newest version. I’m hopeful this will happen soon and open up new possibilities for user engagement.
  2. Bountycaster Experiments: I’ll continue experimenting with Bountycaster campaigns, adjusting based on what I’ve learned so far. My plan is to implement a hybrid incentive model that mixes guaranteed payouts with raffle entries. With Bountycaster’s recent addition of Twitter support, I’m optimistic about reaching a larger audience.
  3. Ongoing Tech Improvements: While focusing on user acquisition, I’ll continue development (e.g. improving the filter and spam detection algorithms as new types of spam surface).

Reflection

My vision from the very start has been to create a web3 “discovery and recommendation engine”. This engine would use people’s social graphs and the reviews they leave to suggest personalized dApp recommendations. Imagine getting app suggestions based on what your friends use and review positively, all verifiable onchain.

The crucial first step towards this vision was building a robust onchain review system, which I’ve been working on for the past 6 months.

EIP-4844 has made L2 transactions incredibly cheap - between 1/10th of a cent to a few cents per review. This should have made the project more viable. But the reality is tough. Getting people to leave reviews using their wallets is still a huge problem as there’s too much friction. User acquisition is slow and while each experiment gives insights, progress is much slower than I expected. Without enough reviews, moving towards the discovery engine isn’t possible yet.

After six months of focusing on this first step, I’m struggling to stay motivated. The lack of traction is a bit discouraging.

I’ll keep experimenting and welcome very much all your suggestions! Of course, also feel free to go leave your own onchain reviews for apps you like or dislike :smiley: https://www.ethereum-ecosystem.com/new-review

Cheers,
Maxime