/blackbelt

Self defense against scams directly in your metamask

Primary LanguageTypeScript

Blackbelt

Self-defense against scammers, directly in your wallet.

Blackbelt provides additional security-related information about the contract you are interacting with, in real-time, directly in your wallet. This is vital for improving the security of new and non-technical users.

Overview

We provide security assessments for smart contract interactions directly in metamask and on our website. The risk score is calculated in real-time based on on-chain data.

Furthermore, we experimented with a revert feature that transforms the transaction focused execution to an intend focused value transfer. The feature uses a smart contract to check if the balance changes are in line with what is expected and reverts the transaction if the criteria is not fulfilled.

This was a prize-winning submission at ETHBogota (Pokt Network, MetaMask, IPFS, Polygon and Coinbase Cloud Prizes) and also at the MetaMask Snaps Sozu Haus in October 2022.

News: Metamask Blog Post, Nov 2022

Repo Structure and Stack

Stack:

There are 3 scripts to run concurrently for the demo: back-end, front-end, and snap. Each is in its own folder. NOTE: Check that the ports for each server is different and the BACKEND_URL in the front-end demo is calling the correct endpoint based on the url the back-end generates.

back-end

Flask server for retrieving blockchain data and computing security score.

Usage:

  • Create a python virtual environment (recommended)
  • install requirements pip install -r requirements.txt
  • add API keys to .env file
  • run server python app.py

front-end

Website to set up snaps and trial usage.

Usage:

  • npm install
  • npm start

snap

Add the Blackbelt snap to metamask.

Usage:

  • Follow instructions from the metamask snap template documentation.

revert

Smart contracts for reverting transactions if intent not met.