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

# CrossmintOtpCodeInputStep

> Flutter Class

**Class**

Step 2 of the OTP signer dialog: enter verification code.

```dart theme={null}
class CrossmintOtpCodeInputStep extends StatefulWidget
```

Matches the official Crossmint RN SDK `BaseCodeInput` component.

## Constructors

### CrossmintOtpCodeInputStep

```dart theme={null}
const CrossmintOtpCodeInputStep({
  super.key,
  required this.icon,
  required this.contactInfo,
  required this.contactType,
  required this.title,
  required this.onSubmit,
  required this.onCancel,
  this.onResend,
  this.codeLength = 9,
  this.keyboardType = TextInputType.text,
  this.autofillHints,
  this.helpText,
})
```

## Properties

### icon

```dart theme={null}
final IconData icon
```

### contactInfo

```dart theme={null}
final String contactInfo
```

### contactType

```dart theme={null}
final String contactType
```

### title

```dart theme={null}
final String title
```

### codeLength

```dart theme={null}
final int codeLength
```

### keyboardType

```dart theme={null}
final TextInputType keyboardType
```

### autofillHints

```dart theme={null}
final Iterable<String>? autofillHints
```

### helpText

```dart theme={null}
final String? helpText
```

### onSubmit

```dart theme={null}
final Future<void> Function(String code) onSubmit
```

### onResend

```dart theme={null}
final Future<void> Function()? onResend
```

### onCancel

```dart theme={null}
final VoidCallback onCancel
```

## Methods

### createState

```dart theme={null}
State<CrossmintOtpCodeInputStep> createState()
```
