## Signers in the Farcaster Protocol

In Farcaster, Signers are specialized Ed25519 key pairs designed for authorizing messages in the Farcaster protocol.

### Why not use a normal Ethereum private key?
Signers reduce the risk of the main custody key being stolen, as Signers have limited capabilities and are easier to revoke and replace if compromised.

### Why Ed25519?
Signers are Ed25519 to avoid confusion with Ethereum’s ECDSA keys, ensuring that Signers are used solely for Farcaster message authentication and not for financial transactions.

Users link these Signers to their main Ethereum address by signing a message, creating a chain of trust. Signers are managed through smart contracts on the Ethereum blockchain (Optimism L2). A user’s custody address (associated with their fid) is the only entity that can add or remove Signers for that fid. This ensures that the user retains ultimate control over who can act on their behalf.

### Creating Signers from Scratch with TypeScript

*Note: This section would typically include code snippets or technical instructions for creating Signers using TypeScript.*
