Skip to content

feat: Multi-Chain Support #413

@kyleboe

Description

@kyleboe

What is the feature you would like to implement?
Multi-chain support to allow the Farcaster protocol to operate across different blockchain networks. This feature would enable users to manage their identities and interactions seamlessly on various chains, enhancing the protocol's utility and reach.

Why is this feature important?
Adding multi-chain support is crucial for broadening the usability and adoption of the Farcaster protocol. As the blockchain space grows, users are increasingly interacting across multiple networks. Supporting multiple chains will make Farcaster more versatile and appealing to a wider audience, ensuring it remains competitive and relevant in the evolving blockchain ecosystem. This feature should be prioritized to capitalize on the growing cross-chain interaction trend and to fulfill the protocol's vision of a widely accessible decentralized social graph.

Will the protocol spec need to be updated??
Yes (and there are likely things I've missed below)

  • Section 2.1 Message Data – Updates to the FarcasterNetwork enum to extend to other networks.
  • Section 2.3 User Data - Updates to the UserDataType enum to include network-specific information.
  • Section 2.5 Verifications - Adjusting the VerificationClaim.network struct attribute to include other networks.

How should this feature be built? (optional)
The implementation could start with the development of a cross-chain identity management system, which would involve creating a universal or adaptable user identity compatible with various blockchains. This system should support the most compatible and accessible networks initially (something like VeChain running a fork of the EVM, with an existing ENS-compatible naming system), with plans to expand to others based on community feedback and usage patterns.

From an Off-Chain perspective, this functionality could be built by abstracting Hub <> Blockchain communication into an adapter layer. This would allow implementing different chain adapters similar to Web2 web framework ORM adapters for things like Postgres vs MySQL vs MongoDB.

Metadata

Metadata

Assignees

Labels

featNew feature request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions