> ## Documentation Index
> Fetch the complete documentation index at: https://crossmint-devin-1787949784-wallet-docs-two-concept-model.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# SignerManagementOperations

> Kotlin Interface

**Interface**

```kotlin theme={null}
interface SignerManagementOperations
```

## Functions

| Function                   | Description                                                                                                                                                         |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `addSigner`                | Registers a new delegated signer on the wallet via the recovery/approval flow. Does not change the active signer.                                                   |
| `isSignerApproved`         | Returns true if the given signer is approved on this wallet's chain.                                                                                                |
| `localDeviceSignerLocator` | Returns the locator of the device signer that lives on this device. Returns null if this wallet has no device signer on this device.                                |
| `needsRecovery`            | Returns true when a device signer was configured for this wallet but no matching hardware key exists on the current device.                                         |
| `recover`                  | Generates a new hardware key on this device and registers it on the wallet using the admin/recovery signer approval flow.                                           |
| `removeSigner`             | Removes a delegated signer from the wallet. Supported types: DelegatedSigner.Email, DelegatedSigner.Phone, DelegatedSigner.ExternalWallet, DelegatedSigner.Locator. |
| `signerIsRegistered`       | Checks if the signer is registered on this wallet.                                                                                                                  |
| `signers`                  | Fetches the live list of signers registered on this wallet from the API.                                                                                            |
| `useSigner`                | Sets the active signer for subsequent wallet operations.                                                                                                            |

### addSigner

```kotlin theme={null}
abstract suspend fun addSigner(signer: DelegatedSigner, deployImmediately: Boolean): Result<Unit, WalletError>
```

Registers a new delegated signer on the wallet via the recovery/approval flow. Does not change the active signer.

### isSignerApproved

```kotlin theme={null}
abstract suspend fun isSignerApproved(locator: String): Result<Boolean, WalletError>
```

Returns true if the given signer is approved on this wallet's chain.

### localDeviceSignerLocator

```kotlin theme={null}
abstract suspend fun localDeviceSignerLocator(): DelegatedSignerData?
```

Returns the locator of the device signer that lives on this device. Returns null if this wallet has no device signer on this device.

### needsRecovery

```kotlin theme={null}
abstract suspend fun needsRecovery(): Boolean
```

Returns true when a device signer was configured for this wallet but no matching hardware key exists on the current device.

### recover

```kotlin theme={null}
abstract suspend fun recover(): Result<Unit, WalletError>
```

Generates a new hardware key on this device and registers it on the wallet using the admin/recovery signer approval flow.

### removeSigner

```kotlin theme={null}
abstract suspend fun removeSigner(signer: DelegatedSigner): Result<Unit, WalletError>
```

Removes a delegated signer from the wallet. Supported types: DelegatedSigner.Email, DelegatedSigner.Phone, DelegatedSigner.ExternalWallet, DelegatedSigner.Locator.

### signerIsRegistered

```kotlin theme={null}
abstract fun signerIsRegistered(signer: DelegatedSigner): Boolean
```

Checks if the signer is registered on this wallet.

```kotlin theme={null}
abstract fun ~~signerIsRegistered~~(locator: String): Boolean
```

Returns true if the given locator is registered as a delegated signer on this wallet.

### signers

```kotlin theme={null}
abstract suspend fun signers(): Result<List<DelegatedSignerData>, WalletError>
```

Fetches the live list of signers registered on this wallet from the API.

### useSigner

```kotlin theme={null}
abstract suspend fun useSigner(signer: DelegatedSigner): Result<Unit, WalletError>
```

Sets the active signer for subsequent wallet operations.
