Schema for Reviewing Apps

Hey everyone,

Maxime here from Ethereum Ecosystem (an unofficial ecosystem page for Ethereum and its layer 2s that currently features over 1000+ web3 apps).

We want to introduce a review system to our app so that users can rate dApps based on their personal experiences. We want to use OP Mainnet and the Ethereum Attestation Service (EAS) for these onchain reviews.


  1. This will shift our ranking criteria from potentially gameable proxies (like # twitter followers or # of discord members) to genuine user feedback.
  2. Anyone can reuse the attestations. If a dApp like Velodrome receives a high aggregate score from user ratings, they could then display a badge on their website showcasing these reviews, similar to Product Hunt badges.

I wanted to open up this discussion to gather feedback on the schema definition. I want to keep the design simple and modular while storing minimal data onchain.

Here is what I had in mind. Anyone’s got any feedback?

Schema 1 - Onchain

string appName: Name of the App being reviewed e.g. Velodrome.
uint8 score: A score between 1-100 indicating the reviewer’s evaluation of the App.
bool recommend: A boolean indicating whether the reviewer would recommend the App.
bytes32 appReview: A hash referencing offchain data

→ These attestations would be onchain on OP-Mainnet.

Schema 2 - Offchain

string review: A type of critique that provides an evaluation of a dApp (e.g “I really like Velodrome because they provide trades with minimal slippage and deep liquidity. I also really like their app’s UX”)

→ Attestations made with this schema could be offchain and allow anyone to review basically anything (a book, an app, a movie, etc.). This schema could be referenced by other schemas.

Any thoughts?


Hey everyone,

Considering user experience, managing two separate schemas—for offchain and onchain attestations—proves to be less than ideal. It requires users to authorize two transactions, which isn’t the smoothest process.

This is why I’m leaning towards consolidating everything into a single onchain schema.

Additionally, I’m contemplating implementing a resolver contract to enforce constraints, such as limiting the score to a range of 0 to 5 and setting a maximum character length for the appName field.

Would love to get your input on this approach!

Hello everyone,

After careful consideration, I’ve opted to implement a single on-chain schema and decided against using a resolver contract.

The “Onchain App Review” schema is now live on OP Mainnet.

You can submit reviews directly through EASscan or via Ethereum Ecosystem’s website. For instance, to give your opinion on Velodrome: What is Velodrome Finance? Overview, Related Apps & FAQs