Table of contents
Short introduction to Farcaster Protocol
Features of Farcaster Protocol
2.1 Identity System
2.1.1 Identity
2.1.2 Farcaster ID
2.1.3 Farcaster name
2.1.4 Why are there two identity smart contracts
2.2 Delta Graph
2.3 Farcaster Hub
Data Analytics
3.1 Ecosystem
3.2 Users
3.3 Activity
3.4 Funding
Summary
Farcaster is a decentralized social network built on top of Ethereum. It offers:
User identifiers.
Real-time settlement and propagation of changes between users
Decentralized access to all data on the network
Users start by registering a public-private key-pair and an id with an Ethereum contract first. Users upload signed messages to a Farcaster Hub, which is like a node in a blockchain network. Hubs share messages over a peer-to-peer protocol, and each Hub stores all the messages on the network.
Developers can create applications for users to interact with the network. Apps connect to Hubs and they can use servers to cache data, generate feeds, make recommendations and send notifications.
The Layer 1 blockchain manages user identities, while a Layer 2 network spreads updates between users.
Users must generate a new Ethereum address which serves as their key pair and use it to acquire an id, and a username. If users already have an EOA which can be reused. The signing up for Farcaster flow looks like this:
User deploys a contract from their EOA wallet
As part of the deploy, the contract registers an fid and an fname
The EOA signs a message which authorizes an EdDSA key pair as a signer
A Farcaster ID or fid is the canonical identifier. Users call the Farcaster ID Registry contract and pay a small amount of gas to request a fid. Users register fids to an Ethereum address, and this address is known as the custody address. These fids can be transferred to a new custody address, though each address can own only one fid at a time. Anyone can inspect the contract to determine the custody address that owns the fid.
A Farcaster name or fname is like @alice. Users can get an fname to a custody address, which can own more than one name at a time.
Users register fnames for a year at a time by paying a fee to the Farcaster Name Registry, which issues each one as an NFT. An fname becomes renewable ninety days before it expires. Once expired, fnames enter a dutch auction.
The custody address is so important that users may appoint a recovery address to protect their fnames and fids in case they lose access to the custody address.
The contracts can be found at the following addresses on Goerli.
In a decentralized social system, no one can control the identities but the creators. And another important thing is that users can jump between different social networks and continue using the same identity.
The username can be changed, but the Farcaster id is fully decentralized, and can not change. Users can sign a message containing their fid with their custody address. Recipients can verify its authenticity by looking up the custody address in the ID Registry and verifying the signature. No-one can reclaim or revoke a fid once a custody address claims it.
A delta graph is a data structure that represents and synchronizes a social network's state between many replicas. The state of the social network is a graph where each vertex is an entity like a user or message, and each edge is a relationship between entities. A network where @alice creates a message and @bob likes and replies to it would produce this graph:
The graph decomposes into a series of deltas which help with synchronization over an unreliable network. A delta is an action a user takes, like posting a message or liking something. There are six types of deltas (message types) defined by the Farcaster protocol:
casts, which are public and text messages from a user
reactions, which are reactions to a user's messages from another user (e.g., a like)
amps, which are links between two users
verifications, which are proofs of ownership (e.g., an Ethereum address signature)
signers, which are key pairs authorized by a user to sign their deltas
user data, which are metadata about the user (e.g., their profile picture)
Hubs use delta graphs to reach consensus about the network's state. Since updates are independent operations, delta graphs achieve consensus without coordination, forming a layer-2 storage network.
A Hub is a node in the Farcaster network that synchronizes the delta graph. When a hub gets a new delta, it broadcasts it to its peers over a gossip protocol. When Ethereum has updates, they will update as needed.
The goal of the team is to maintain the number of Hubs operators at ~ 100, making the network practically decentralized.
Since Farcaster Hubs store a copy of all the data on the network, it will raise the cost of running a Hub due to the increasing amount of disk space. The team is looking for solutions to address the problem, after rejecting several approaches.
The team publishes proposals to perfect the protocol, such as handling storage, bandwidth, decentralization of Hubs, etc. If you are interested in reading or once you have an solution, you can look through this link:
The amount of Farcaster-related projects are about 30, and most of them are clients.
The total number of connected addresses is 8,039 and the total number of users is 8,594. Weekly active users, monthly active users and new users per week are 1.4k, 2.7k and 247 separately now.
You can find the Farcaster NameRegistry NFT contract here: https://goerli.etherscan.io/token/0xe3be01d99baa8db9905b33a3ca391238234b79d1
The total number of casts is 427k and average cast per day is 2,368 which increased significantly since July 2022. All time high average cast per day is 5430 in November 2022.
As for the engagement, most users cast 1-10 times, and they make up 39% of the total. Unfortunately, there is 27% of the user who does not ever cast.
And nearly 20% of the users first come back to this app after 3 months, only a few people will continue casting on it in the first week. It seems that there is still a long way to go to change user habits.
Farcaster has closed a $30 million round of funding led by a16z with participation from Coinbase Ventures in July 2022.
The Farcaster team wants to realize a social network where the data is always available whenever what applications we switch to. For example, Alice and Bob send messages to each other, but when Alice starts to use a new app, she can still see the old messages from Bob. That is to say, when we jump into a new app, we can see all the different messages generated on other social networks. All of the above is decentralized.
However, they face some critical challenges and have unresolved issues to overcome.
There is also some comparison on Farcaster and Lens.
At HashBrown Research, we last time said that “Web3 Companies should focus on Decentralizing their platforms to the best of their ability, or else it is no different from a Web2 Company + Crypto Token representing it”.
We think that Dan Romero and the Farcaster team are doing this kind of work, the version 2 they are developing will launch on mainnet in May 2023.
You can also view our Dune Dashboard here:
HashBrown Research