# Farcaster // Contract Accounts Working Group Kickoff
## Agenda
1. Quick (re)introductions — *gm*
2. Objectives (collective and individual) — *what do we want to achieve?*
3. First project(s) — *what should we focus on first?*
4. Next actions — *where/how do we start?*
## Notes
### Attendees
Stephan (opencast), horsefacts (farcaster), Rafael, Nick (hats), Kartik (flink), Spencer (hats), Salman
### Objectives
- **Spencer**: enable DAOs (and other onchain orgs) to more effectively manage their farcaster accounts (eg allowing individuals to cast on their behalf), including with Hats Protocol
- **horsefacts**: enable onchain / contract-based use cases for fids and supporting alternative clients; contracts as (mostly) first-class citizens of the protocol
- also thinking about trust and safety considerations (organizational ownership of accounts may help)
- foster a diverse client ecosystem
- **Stephan**:
- support for broadcasting farcaster messages directly on-chain, eg generated directly by smart contracts
- implementation for clients to authorising a new signer for a smart contract account / shared accounts
- **July**: enable sensors to cast their attestations
- **Rafael**: publishing to farcaster from smart contract with relayer
- **Kartik**: representing organizational ownership of fids in clients
- organizational affiliation
- **Salman**: allow people to post on behalf of an organization, with revocable permissions
### First Project(s)
Some possibilities:
- implementation for clients to authorising a new signer for a smart contract account (shared access)
- working document: https://hackmd.io/8-wqct6jR9i6drkGgIJmMQ
- ...
#### Smart Contract Organization Accounts UX (Client perspective)
- Onboarding: UI to transfer FID from custody wallet to smart contract
- Proposed high level flow:
- Join an organization > generates a keypair, share public key to share with the organization
- Organization 'add a member': create a signer with the given public key
Questions
- UX for authorising public keys of new users for organization
- Example setup/use case within hats protocol
- How can we allow users to create signers based on on-chain logic e.g. Smart contract account has logic which determines that ethereum address A is allowed to create a new signer for the account (e.g. Hats Protocol). User with access to wallet with address A should be able to create a new signer based on that logic
- Addressed in existing spec. Signer can be created by 'hat wearer' because isValidSignature() returns true for the signature by the authorized user
- Need to address revoking signers. Bad UX to delete all casts by that signer on behalf of the organization
#### Support for broadcasting farcaster messages directly on-chain
Proof of concept: listen for events on a smart contract which allows submitting of farcaster messages and relay them to hubs
Example applications
- On-chain voting proposals to change DAO account details
- Community approved casts
- Jokerace style competitions
- Auctions for ad space
- Anonymous posting based on certain zk criteria
#### Projects
1. start with / refine the [existing shared accounts spec](https://hackmd.io/8-wqct6jR9i6drkGgIJmMQ)
- Spencer, Stephan, horsefacts
3. generate a spec for the onchain events => relayer => messages => hubs concept
- Rafael,
### Next Actions