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

# CrossmintSDK

> Kotlin Class

**Class**

```kotlin theme={null}
class CrossmintSDK
```

## Properties

| Property        | Type            | Description                                                                         |
| --------------- | --------------- | ----------------------------------------------------------------------------------- |
| `apiKey`        | `Result`        | The resolved API key and environment for this instance                              |
| `authManager`   | `Result`        | Provides the current user's JWT token                                               |
| `isOTPRequired` | `Flow<Boolean>` | Emits true whenever an email or phone signer is waiting for an OTP to be submitted. |
| `wallets`       | `Result`        | Entry point for all wallet operations                                               |

## Functions

| Function            | Description                                                               |
| ------------------- | ------------------------------------------------------------------------- |
| `cancelTransaction` | Cancels the in-flight OTP signing request.                                |
| `logout`            | Signs the user out and clears all stored auth state.                      |
| `setJWT`            | Stores an externally obtained JWT for use in all subsequent API calls.    |
| `submit`            | Provides the OTP entered by the user to the active email or phone signer. |

### cancelTransaction

```kotlin theme={null}
suspend fun cancelTransaction()
```

Cancels the in-flight OTP signing request.

### logout

```kotlin theme={null}
suspend fun logout()
```

Signs the user out and clears all stored auth state.

### setJWT

```kotlin theme={null}
fun setJWT(jwt: String)
```

Stores an externally obtained JWT for use in all subsequent API calls.

### submit

```kotlin theme={null}
suspend fun submit(otp: String)
```

Provides the OTP entered by the user to the active email or phone signer.
