project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4

Oh Snap!

Oh Snap! provides context about a contract, before a transaction. The context can show if a contract is malicious or display relevant information. The context is voted on by the community. The voting logic is based on Vitalik's blog post about the X Community Notes algorithm.

Oh Snap!

Created At

ETHGlobal Brussels

Winner of

Zircuit - Best Gaming, NFT, or Social Project on Zircuit

Blockscout - Best use of Blockscout Block Explorer

Prize Pool

Worldcoin - Pool Prize

Prize Pool

Zerion - Best build on ZERϴ Network or Zerion API 3rd place

ETHGlobal - 🏆 ETHGlobal Brussels Finalist

Project Description

Always falling for rugs and scams? Afraid to claim airdrops because you're unsure if the contract is safe? Chain Notes provides context about a contract, before a transaction. The context can show if a contract is malicious or safe, or provide other insightful information. What is shown is based on notes that are linked to an address, and voted on by the community. The voting logic is a slightly simplified version on Twitter/X's voting algorithm of Community Notes and we used Vitalik's blog post for guidance. We have set the contract up in such a way so that we can easily implement the full algorithm with some offchain computing when we continue after the hackathon.

✅ User friendly UX: Our Metamask Snap shows the most useful note/context before the user approves a transaction, to ensure the user does not interact with any malicious contracts. 🧱 Sybil resistant: Using Worldcoin WorldID ensures that every person can only vote once on a note. ⛓️ Available on all chains: Chain Notes is available on all EVM chains!

How it's Made

We closely analyzed Vitalik Buterin's blog post to understand the implementation of the x dot com algorithm and created a simplified version for our smart contracts. Our system has two types of participants: NoteAuthors and NoteVoters. Each author can vote on a contract only once, and each voter can vote on a note only once. The available voting options are SOMEWHAT_HELPFUL, HELPFUL, and NOT_HELPFUL.

Notes can be tagged as consideredHelpful similar to x dot com's community notes. A note needs a score of 40 or more, with over 10 votes, to be tagged as such. The score is calculated using the following formula:

((x * 80) + (y * 40)) / z

Where:

x = amount of HELPFUL votes y = amount of SOMEWHAT_HELPFUL votes z = total amount of votes

If a note's score falls below 10 after being tagged as consideredHelpful, the tag will be removed. We may adjust these values in the future, but for now, this serves as our MVP. Only consideredHelpful notes are displayed on the dashboard, and the highest voted note is shown in the MetaMask snap.

We also track each user's positive vs. negative ratio to potentially implement a voting prediction system similar to x dot com's, which would require some off-chain computation.

For chains that support World ID, it serves as an identification layer for writing and voting on notes.

The note text is stored on IPFS, with only the URI stored within the contract.

background image mobile

Join the mailing list

Get the latest news and updates