Cast, like, comment, and curate channels from a shared Farcaster account — leveraging all the non-custodial benefits of smart contracts — with FarcasterDelegator (FD).
FD is the Hats team’s open-source contribution to the incredible builder party that is unfolding on Farcaster. We are true believers in open-source and hope that you will use it, contribute to it, and fork it, and expand on it however you like.
What is FarcasterDelegator?
FarcasterDelegator is a smart contract that holds a FID and enables delegation of casting authority and other FID permissions to individuals or groups.
The individuals and groups can be either a) ethereum addresses or b) onchain roles (represented as token IDs via Hats Protocol).
Solving a long-standing problem
Our team has participated in and worked on dozens of DAOs and onchain organizations over the last four years. Time and time again we have seen the pain of securely sharing access to a twitter account to post and engage on behalf of a group.
The problem with twitter is that, like many offchain applications, the platform has a closed architecture as well as an expensive and revocable API.
Farcaster changes this. The protocol’s open and interoperable architecture uniquely unlocks the possibility of shared accounts. And it does so in a way that opens up an exciting design space for programmability, capture resistance, and financialization.
In the last cycle, many teams designed interesting curation and decentralization experiments around the idea of posting via a shared account (for example The DIA). We remain bullish on these concepts and new ideas that will emerge from these primitives.
Since the prioritization and initial spec of decentralized channels by the Merkle team, we believe that shared channel ownership and shared channel moderation are going to greatly expand the value of onchain shared account functionality.
How FarcasterDelegator works
The base functionality of FD enables onchain shared account ownership, including initial setup, adding signers, and updating the recovery address for the FID. The first version has been live since February.
There are two flavors of FD:
FarcasterDelegator.sol — a generic abstract contract with delegation logic that can be extended to be used with any identities and roles
HatsFarcasterDelegator.sol — a version of FD powered by Hats Protocol, that tokenizes the roles and includes robust admin functionality
Here's the repo:
Check out the README for full developer documentation!
We open-sourced this because the delegation logic is non-trivial to build (managing onchain signing permissions with the Farcaster protocol is not easy), it can be built once and used by the whole Farcaster builder ecosystem.
FarcasterDelegator + Hats Protocol
With the Hats flavor of FD, you can provide your users with interoperable onchain roles that can be plugged into other tools. This goes both ways — creating an interface for tokenized roles makes it easy for people with existing roles to easily onboarding into your tool.
Much like Farcaster creates an interoperable social graph, Hats creates an interoperable organizational graph. In Hats, roles are represented as ERC1155 tokens — you can learn more about how the protocol works in our docs and our recent vision post.
It is easy to set up Hats for any narrow use case, and shared Farcaster account ownership is a great example of this. But when your users want to expand their channel’s operations, they could incrementally expand the roles into other tools that you use. This includes things like:
budgets for operational teams or grant committees (Safe integration)
shared workspaces (Charmverse and Fileverse integrations)
voting on specific decisions (Snapshot and various DAO contract integrations)
Imagine it like progressive decentralization of an account or channel. We think this is where the next wave of DAOs is going to come from, and that it is going to be really big.
Progress and what’s next
Hellno at Herocast was the first to implement the full flows for FD in a Farcaster client. Herocast is also open-source, and you can visit the repo with the FD implementation here. We are really impressed with and grateful for Hellno’s work on this.
Willy at Nounspace is already working with Herocast’s open-source repo and will support the Hats version of FD as well.
We are really impressed by what developers around the Farcaster are building. We are primarily working at the contract level and are excited to permissionlessly interoperate with all clients and bots. We believe that this is congruent with the approach the Farcaster Protocol is taking.
Next up, the Hats team is actively working on developer tooling that will make it easier for clients to integrate FD and the Hats flavor for management of channels with fully onchain roles.
If you’d like support with integrating FD into your client, or want a shared account and need help getting it set up, please let us know! You can DC @nintynick.eth or @spengrah.eth or reach out to us in the /hatsprotocol channel, we’d love to hear from you.