> ## 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.

# Signer

> Kotlin Interface

**Interface**

```kotlin theme={null}
interface 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                                                                                                                                                                                                      |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `initialize`      | Initializes the signer with necessary service context. Must be called before sign() operations.                                                                                                                  |
| `locator`         | -                                                                                                                                                                                                                |
| `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. |

### 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
```

### 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.
