> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crossmint.com/llms.txt
> Use this file to discover all available pages before exploring further.

# EmailSigner

> Kotlin Interface

**Interface**

```kotlin theme={null}
interface EmailSigner : Signer
```

## Properties

| Property     | Type         | Description                                                                                                       |
| ------------ | ------------ | ----------------------------------------------------------------------------------------------------------------- |
| `signerData` | `SignerData` | The admin signer data associated with this signer. Contains signer-specific information (email, public key, etc.) |

## Functions

| Function          | Description                                                                                                                                                                                                      |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `getEncoding`     | The encoding format for signatures.                                                                                                                                                                              |
| `getKeyType`      | The cryptographic key type used for signing.                                                                                                                                                                     |
| `initialize`      | Initializes the signer with necessary service context. Must be called before sign() operations.                                                                                                                  |
| `locator`         | -                                                                                                                                                                                                                |
| `processMessage`  | Allows platform-specific preprocessing of the message before signing.                                                                                                                                            |
| `sign`            | Signs a message and returns the signature.                                                                                                                                                                       |
| `signForApproval` | Signs a message and returns typed output suitable for building an approval. The default implementation wraps sign as SigningOutput.Standard. Override to return SigningOutput.Passkey for passkey-based signers. |

### getEncoding

```kotlin theme={null}
abstract suspend fun getEncoding(): String
```

The encoding format for signatures.

### getKeyType

```kotlin theme={null}
abstract suspend fun getKeyType(): String
```

The cryptographic key type used for signing.

### initialize

```kotlin theme={null}
abstract suspend fun initialize(service: CrossmintService?)
```

Initializes the signer with necessary service context. Must be called before sign() operations.

### locator

```kotlin theme={null}
open fun locator(): String
```

### processMessage

```kotlin theme={null}
abstract fun processMessage(message: String): String
```

Allows platform-specific preprocessing of the message before signing.

### sign

```kotlin theme={null}
abstract suspend fun sign(message: String): Result<String, SignerError>
```

Signs a message and returns the signature.

### signForApproval

```kotlin theme={null}
open suspend fun signForApproval(message: String): Result<SigningOutput, SignerError>
```

Signs a message and returns typed output suitable for building an approval. The default implementation wraps sign as SigningOutput.Standard. Override to return SigningOutput.Passkey for passkey-based signers.
