Skip to content

Design Specification

Ethereum Follow Protocol Overview

Ethereum Follow Protocol (EFP) is a native Ethereum protocol for following and tagging Ethereum accounts.

To begin, users first mint an NFT called the “EFP List NFT”.

EFP List NFT

Users mint the EFP List NFT to create an EFP List.

Roles

Every EFP List NFT has two roles, each of which are held by an Ethereum account, either an EOA or contract address.

  1. Owner:
    • Is the owner of the EFP List NFT
    • Can transfer the Owner role
    • Can edit the User role
    • Can edit the List Records Storage Location
  2. User:
    • The Ethereum address for whom the list is intended; the Ethereum account that is following the Ethereum accounts in the list.

Typically, both roles (Owner, User) are the same Ethereum account, but they can be different.


Record Storage

Your EFP NFT specifies a List Records Storage Location where the List Records are stored, which can be one of the following:

  • Ethereum L1 smart contract address
  • Ethereum L2 smart contract address
  • CCIP-read pointers for off-chain storage

The List Records Storage Location itself (the smart contract or off-chain system) must specify a Manager role, typically an Ethereum account that is able to edit the List Records. Typically, the Manager will be the same Ethereum account as the Owner and User roles of the EFP NFT, but they can be different.


List Record Types

  • Entry Record:
    • Contains an Ethereum address, with zero or more tags.
    • These records are typically interpreted as a “follow” of the specified Ethereum address, with some exceptions explained in the Followers section below.

Tags

Each Entry Record can have zero or more tags.

Standard Tags

  • no tag

    • If an Entry Record has no tags, it is interpreted as a simple follow without further categorization.
  • “block”

    • This tag means neither the user nor the blocked account should see each other’s activity in a relevant app.
    • Entry Records with this tag are not included in Followers count, even if the Entry Record has other tags.
    • If both “block” and “mute” tags are present, “block” takes precedence.
  • “mute”

    • This tag means the user shouldn’t see the muted account’s activity in a relevant app, but the muted account might still be able to see the user’s activity.
    • Entry Records with this tag are not included in Followers count, even if the Entry Record has other tags.
    • If both “block” and “mute” tags are present, “block” takes precedence.

Custom Tags

Users can use additional arbitrary custom tags.


Followers/Following Counts

Definition

Followers is the total number of EFP NFTs that have at least one Entry Record with a specific Ethereum address, with the following additional conditions:

  • Exclude records with either the “block” or “mute” tags, even if the records have other tags.
  • Multiple EFP NFTs with an identical User are counted as a single follower.

Following is the total number of Entry Records of a user’s EFP NFT, with the following additional conditions:

  • Exclude records with either the “block” or “mute” tags, even if the records have other tags.
  • Multiple Entry Records with the same Ethereum address are counted as a single follow.