CommunityCaster
By Danny, Blake, Melissa
What we built
Decentralized community infrastructure using Farcaster to facilitate voting and allocation of community funds
How it works
How it’s made
1. This is the infrastructure for a community app which uses Farcaster frames.
2. Each community has its own vault (SAFE Smart Account) in which they hold their funds. <- Example instance of Vault Contract exists on the Arbitrum network at address: arb:0x26Ef58BBBB086D6c2DEdebfAD6FFd10c80Ca70Aa
3. When a user signs up, we create a SAFE for their wallet, which is controlled through account abstraction using Magic.link.
4. Voting to spend the funds in the vault happens through interacting with a FRAME on FARCASTER.
5. In the FRAME_NODE file is the code which runs a node.js server which hosts all frames (currently just 1 example frame)
6. When a user votes (clicks reject/approve) on the frame, the server maps their fid to an Ethereum address and records it and their vote direction in a Poll (an ARBITRUM STYLUS contract).
7. That Poll contract which is deployed by a SAFE_MODULE is responsible for triggering a function in the safe_module to release the funds to the Poll proposer.
Future work