# ISigner Interface A basic interface that each signer must implement. It includes methods for signing messages, verifying signatures, and encrypting/decrypting data. ```typescript interface ISigner { // Core signing functionality sign: (event: StampedEvent) => Promise getPubkey: () => Promise // Encryption capabilities nip04: { encrypt: (pubkey: string, message: string) => Promise decrypt: (pubkey: string, message: string) => Promise } nip44: { encrypt: (pubkey: string, message: string) => Promise decrypt: (pubkey: string, message: string) => Promise } } ```