crossmint_flutter_ui.dart. These pull in Material Design dependencies — if you prefer a fully headless approach, use the controllers directly.
CrossmintWalletStatusBuilder
Reactive widget that rebuilds whenever the wallet status or instance changes.Props
Usage
CrossmintWalletConsumer
Provides access to the wallet context data from the widget tree.Usage
CrossmintOtpSignerListener
Automatically listens for OTP challenges and shows the appropriate dialog. This is a Flutter advantage over React Native — OTP prompts are handled declaratively.Props
Usage
CrossmintExportPrivateKeyButton
Renders a button that allows the user to export their wallet’s private key. Only works with email and phone signers. Will not render for passkey or external wallet signers.Props
Wallet whose private key will be exported. The button only renders when [CrossmintRuntimeWalletBase.canExportPrivateKey] is true (email/phone signer wallets).
Called after the export flow completes successfully.
Called when the export flow throws. Receives the underlying exception so consumers can surface a localized error message.
Optional builder for the button visual. When
null, falls back to the React Native parity Material OutlinedButton with a themed CircularProgressIndicator while the export is in flight. When non-null, the builder is invoked whenever the wallet is eligible to export and receives the current isLoading flag plus an onExport callback that the consumer wires to their own tap target. The onExport callback is null while loading so consumers can disable their button directly without a separate mounted check.Usage
CrossmintWalletUiState (data.state)
The state exposed on CrossmintWalletContextData (the second argument of every builder). Fields and convenience getters:
| Field / getter | Type | Description |
|---|---|---|
isInitializing | bool | |
isLoadingWallet | bool | |
authState | CrossmintAuthState | |
walletStatus | CrossmintWalletStatus | |
currentWallet | CrossmintWallet? | |
pendingOtpChallenge | CrossmintOtpChallenge? | |
initializationError | Object? | |
walletError | Object? | |
isAuthenticated | bool | |
isLoggedOut | bool | |
user | CrossmintAuthenticatedUser? | |
authErrorMessage | String? | |
error | Object? | |
errorMessage | String? | |
hasWallet | bool | |
needsOtp | bool |

