Farcaster embraces rough consensus and running code as its governance model. Changes happen when someone makes a proposal, gets buy-in and ships running code. Depending on the change, different groups need to be convinced:
- Protocol devs, who choose to merge changes into hubs and contracts.
- Hub runners, who choose to deploy those changes to their hubs.
- App devs, who choose the hubs they read from.
- Users, who choose the apps they want to use.
Consensus emerges from people accepting new code or rejecting it. Farcaster will not have a binding voting process, official roles or veto power for anyone. Having too much structure ossifies systems, encourages politicking and slows progress. Rough consensus biases to action, encourages diversity of viewpoints, and maximizes decentralization, which is essential for a long-lived protocol. Most changes happen through the FIP process.