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
Builder called with the current wallet context data. Access status via
data.state.walletStatus and wallet via data.state.currentWallet.Usage
CrossmintWalletConsumer
Provides access to the wallet context data from the widget tree.Usage
CrossmintWalletUiState (data.state)
The state exposed on CrossmintWalletContextData (the second argument of every builder). Fields and convenience getters:
| Field / getter | Type | Description |
|---|---|---|
walletStatus | CrossmintWalletStatus | notLoaded, inProgress, loaded, or error. |
currentWallet | CrossmintWallet? | The loaded wallet, or null before walletStatus == loaded. |
authState | CrossmintAuthState | Sealed auth state — CrossmintAuthInitializing, CrossmintAuthAuthenticated(user), or CrossmintAuthLoggedOut. |
isInitializing | bool | true while the SDK is still bootstrapping. |
isLoadingWallet | bool | true while a getWallet / createWallet call is in flight. |
pendingOtpChallenge | CrossmintOtpChallenge? | Non-null when an OTP prompt is required. |
hasWallet | bool | Convenience — currentWallet != null. |
needsOtp | bool | Convenience — pendingOtpChallenge != null. |
isAuthenticated | bool | authState is CrossmintAuthAuthenticated. |
isLoggedOut | bool | authState is CrossmintAuthLoggedOut. |
user | CrossmintAuthenticatedUser? | The authenticated user, or null. |
error | Object? | Merges initializationError and walletError. |
errorMessage | String? | Stringified error, or null. |
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
The OTP controller from the wallet controller (e.g.
walletController.otp).The widget subtree.
Whether the listener is active. Defaults to
true.Whether the OTP dialog can be dismissed by tapping outside. Defaults to
false.Usage
CrossmintAuthForm
Pre-built authentication form with email OTP and OAuth buttons.Props
The auth client instance (e.g.
client.auth or data.requireAuth).OAuth providers to display. Defaults to
[google, twitter].Whether to show the email OTP form. Defaults to
true.Called when authentication succeeds.
Called when an error occurs during authentication.
Usage
CrossmintEmailSignIn
Email OTP sign-in form widget.Props
The auth client instance.
Called when email OTP authentication succeeds.
Called when an error occurs.
Usage
CrossmintGoogleSignInButton / CrossmintTwitterSignInButton
OAuth sign-in buttons.Props
The auth client instance.
Called when OAuth authentication succeeds.
Called when an error occurs.
Whether the button is enabled. Defaults to
true.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
The runtime wallet instance to export the private key from.
Called when the private key has been exported successfully.
Called when an error occurs during export.
Optional custom builder for the button appearance.
Usage
Note: Only works with email and phone signers. Will not render for passkey or external wallet signers.
CrossmintEmbeddedCheckout
WebView-based checkout widget for handling payments (fiat and crypto).Props
Your Crossmint client-side API key.
Checkout configuration (order, payment, appearance).
Optional reactive controller for checkout order state. When provided, order updates are pushed to the controller in addition to the
onOrderUpdated callback.Optional crypto payer for signing transactions within checkout. Prefer
config.payment.crypto.payer for the config-driven contract.Callback fired when the order status changes.
Callback fired when order creation fails.
Callback for runtime diagnostics (blocked navigation, malformed messages, WebView errors).
Usage
CrossmintNftCard / CrossmintNftCollectionView / CrossmintNftDetailView
Widgets for displaying NFT content. These are Flutter-only features not available in the React Native SDK.Usage
CrossmintPaymentMethodManagement
Widget for managing saved payment methods. This is a Flutter-only feature.Props
Your Crossmint client-side API key.
The authenticated user’s JWT token.
Optional appearance configuration.
Called when the user selects a payment method.
Called when an agentic enrollment is created.

