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:

2 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