crossmint_flutter_ui library

Opt-in default UI for the Crossmint Flutter SDK.

Importing this barrel pulls package:flutter/material.dart in transitively and unlocks the React Native parity widgets:

If you want to keep your app Material-free, import crossmint_flutter.dart (headless) and leave this file alone. You can still drive OTP flows with your own UI by leaving CrossmintWalletProviderConfig.otpPromptBuilder null and subscribing to walletController.otp directly.

Classes

AppLinksCrossmintAuthLinkProvider
CredentialsApiService
CredentialService
CrossmintApiConfig
Base configuration shared by every Crossmint SDK client.
CrossmintApiKeySigner
A signer that delegates all signing to the Crossmint backend via API key authentication.
CrossmintApiKeySignerConfig
CrossmintApiVersions
Centralised API version path prefixes used by every Crossmint service.
CrossmintAuthAuthenticated
CrossmintAuthCallbackRouter
CrossmintAuthClient
Authentication sub-client — email OTP, OAuth, wallet sign-in, and session lifecycle. Exposed on CrossmintClient.auth.
CrossmintAuthenticatedUser
CrossmintAuthForm
Combined auth form matching the official Crossmint RN SDK auth layout.
CrossmintAuthInitializing
CrossmintAuthInProgress
CrossmintAuthLauncher
CrossmintAuthLinkProvider
CrossmintAuthLoggedOut
CrossmintAuthScope
Provides CrossmintAuthClient to descendant widgets, matching the official Crossmint RN SDK's CrossmintAuthProvider pattern.
CrossmintAuthSession
CrossmintAuthSessionCodec
CrossmintAuthState
CrossmintAuthStorage
CrossmintCheckoutAppearance
UI customization for the hosted checkout page.
CrossmintCheckoutCollectionLineItem
Line item that mints from a Crossmint collection. Usually built via CrossmintCheckoutLineItem.collection.
CrossmintCheckoutConfig
Configuration for CrossmintEmbeddedCheckout.
CrossmintCheckoutController
Reactive controller for checkout order state, matching the official Crossmint RN SDK's useCrossmintCheckout() hook.
CrossmintCheckoutCryptoPayment
Crypto payment configuration — on-chain payment via a user-connected wallet or the Crossmint-hosted wallet flow.
CrossmintCheckoutDiagnostic
Structured runtime signal emitted by CrossmintEmbeddedCheckout.
CrossmintCheckoutEmailRecipient
Email-based recipient — mints into a Crossmint-managed wallet associated with the email address. Pair with physicalAddress when the line items include physical fulfillment.
CrossmintCheckoutExistingOrder
Reference an existing Crossmint order by ID.
CrossmintCheckoutFiatPayment
Fiat payment configuration — credit card, Apple Pay, Google Pay.
CrossmintCheckoutLineItem
A single asset to purchase in a checkout order.
CrossmintCheckoutNewOrder
Create a new order inline with line items, recipient, and locale.
CrossmintCheckoutOrder
How to create an order: reference an existing one or define new line items.
CrossmintCheckoutPayer
Interface for apps to provide crypto wallet signing capabilities.
CrossmintCheckoutPayment
Payment configuration for the embedded checkout.
CrossmintCheckoutPhysicalAddress
Shipping address used for physical goods. Required on CrossmintCheckoutPhysicalRecipient; optional on email and wallet recipients whose line items include physical fulfillment.
CrossmintCheckoutPhysicalRecipient
Physical-only recipient — ships a physical good without minting to a wallet. Requires both email (for receipts / order updates) and physicalAddress.
CrossmintCheckoutProductLineItem
Line item that purchases a product (often physical or hybrid). Usually built via CrossmintCheckoutLineItem.product.
CrossmintCheckoutRawLineItem
Escape-hatch line item that passes an arbitrary JSON shape straight to the Crossmint API. Use when the current SDK models do not cover a new API field. Usually built via CrossmintCheckoutLineItem.raw.
CrossmintCheckoutRecipient
Who receives the minted NFT (or ships the physical good) — sealed across email, wallet, and physical-only variants. Concrete subclasses: CrossmintCheckoutEmailRecipient, CrossmintCheckoutWalletRecipient, CrossmintCheckoutPhysicalRecipient.
CrossmintCheckoutTokenExecutionLineItem
Line item that executes a token purchase with arbitrary execution parameters. Usually built via CrossmintCheckoutLineItem.tokenWithExecutionParameters.
CrossmintCheckoutTokenLineItem
Line item that purchases a specific token. Usually built via CrossmintCheckoutLineItem.token.
CrossmintCheckoutTransactionFailure
Returned when the payer could not complete the transaction. The hosted page surfaces errorMessage to the user.
CrossmintCheckoutTransactionResult
Result of a CrossmintCheckoutPayer.signAndSendTransaction call — sealed across success and failure variants.
CrossmintCheckoutTransactionSuccess
Returned when the payer successfully signed and broadcast a transaction.
CrossmintCheckoutWalletRecipient
External-wallet recipient — mints directly to a wallet address the user controls. Use this when checking out to a MetaMask / Phantom / other third-party wallet. Pair with physicalAddress when the line items include physical fulfillment.
CrossmintClient
Top-level facade for the Crossmint SDK.
CrossmintClientConfig
Configuration for CrossmintClient.
CrossmintClientRuntimeOverrides
CrossmintClientScope
CrossmintContractMetadataService
Fetches and validates on-chain contract metadata (ERC-7572) for verifiable credential collections.
CrossmintCreateOnLoginConfig
CrossmintCredentialDecryptRequest
CrossmintCredentialFilter
CrossmintCredentialLocator
CrossmintCredentialMetadata
CrossmintCredentialNftLookupResult
CrossmintCredentialQuery
CrossmintCredentialRecord
CrossmintCredentialRetrievalProcedure
CrossmintCredentialsClient
CrossmintCredentialsCollection
CrossmintCredentialType
CrossmintCredentialVerificationResult
CrossmintCredentialWalletAuthChallenge
CrossmintDecrypt
CrossmintDecryptedCredential
CrossmintDelegationSignatureService
Fetches a Lit Protocol capacity delegation signature from the Crossmint API.
CrossmintDeviceSignerConfig
CrossmintDeviceSignerDescriptor
CrossmintDeviceWalletSigner
Hardware-backed approval signer — keys live in Secure Enclave (iOS) or Android Keystore, never in Dart memory.
CrossmintEmailOtpChallenge
CrossmintEmailOtpDialog
Email OTP signer dialog matching the official Crossmint RN SDK EmailSignersDialog component.
CrossmintEmailSignerConfig
CrossmintEmailSignIn
Email sign-in widget with OTP verification, matching the official Crossmint RN SDK email auth flow.
CrossmintEmailSignInViewModel
Headless view model for the SDK's email + OTP sign-in flow. Owns the state machine (current step, loading flag, error, OTP challenge id, resend cooldown) and the authentication calls against CrossmintAuthClient, so the default-UI CrossmintEmailSignIn widget can become a thin presentational layer and headless consumers can reuse the same state machine behind their own design system.
CrossmintEmbeddedCheckout
Embedded checkout widget matching the official Crossmint RN SDK CrossmintEmbeddedCheckoutV3.
CrossmintEncryptedVerifiableCredential
CrossmintEvmExternalWalletSigner
EVM variant of CrossmintExternalWalletSigner. Signs both arbitrary messages (via the EIP-191 personal-message path the SDK assembles) and raw transaction payloads.
CrossmintEvmNonCustodialSigner
EVM variant of CrossmintNonCustodialSigner. Signs with secp256k1 keys using hex encoding. Applies the EIP-191 personal-message prefix when signing arbitrary strings.
CrossmintEvmTransactionCall
CrossmintEvmTransactionRequest
CrossmintEvmWallet
Runtime wallet for EVM chains (Base, Ethereum, Polygon, Optimism, etc.).
CrossmintEvmWalletCheckoutPayer
Bridges a CrossmintEvmWallet into the checkout payer contract.
CrossmintExportableWalletSigner
Marker interface for signers that can hand back the raw private key to the user — primarily non-custodial email and phone signers.
CrossmintExportPrivateKeyButton
Export private key button matching the official Crossmint RN SDK ExportPrivateKeyButton component.
CrossmintExportSignerBridge
CrossmintExportSignerBridgeClient
CrossmintExportSignerBridgeRuntimeController
CrossmintExternalWalletSigner
Base class for external-wallet delegated signers — wallets the user owns (e.g. MetaMask, Rainbow, Phantom) where the SDK never holds keys. In Crossmint terminology, an external wallet is a flavor of delegated signer that approves operations through the user's own wallet UI.
CrossmintExternalWalletSignerConfig
CrossmintGoogleSignInButton
Google sign-in button matching the official Crossmint RN SDK.
CrossmintHttpTransport
CrossmintLogger
CrossmintNftCard
Card widget for a single NFT, used inside CrossmintNftCollectionView.
CrossmintNftCollectionView
Grid view of NFT cards for a wallet's NFT collection.
CrossmintNftDetailView
Full detail view for a single NFT.
CrossmintNftRecord
CrossmintNftService
On-chain NFT service for VC operations: burn checks, token URIs, and contract metadata URIs.
CrossmintNonCustodialSigner
Base class for email / phone non-custodial signers.
CrossmintOrderCreateRequest
CrossmintOrderReadRequest
CrossmintOrderRecord
CrossmintOrdersClient
CrossmintOrderUpdateRequest
CrossmintOtpChallenge
CrossmintOtpSignerListener
CrossmintPasskeyApprovalSigner
Passkey-based CrossmintWalletApprovalSigner that delegates signing to a caller-supplied callback.
CrossmintPasskeyConfig
CrossmintPasskeyCredential
CrossmintPasskeySignerConfig
CrossmintPasskeySignerFactory
Experimental factory for creating a passkey signer config.
CrossmintPasskeySignMetadata
CrossmintPasskeySignResult
CrossmintPaymentMethodManagement
Payment method management widget matching the official Crossmint RN SDK CrossmintPaymentMethodManagement.
CrossmintPendingSignerOperation
CrossmintPhoneOtpDialog
Phone OTP signer dialog matching the official Crossmint RN SDK PhoneSignersDialog component.
CrossmintPhoneSignerConfig
CrossmintPollingConfig
Configuration for exponential-backoff polling loops used throughout the SDK.
CrossmintRequestOptions
CrossmintRuntimeWalletBase
CrossmintSecureStorageAdapter
CrossmintServerSignerConfig
CrossmintSignatureRecord
CrossmintSignerBridgeClient
CrossmintSignerBridgePublicKey
CrossmintSignerBridgeSignature
CrossmintSignerBridgeSignResult
CrossmintSignerBridgeStatusResult
CrossmintSignerConfig
CrossmintSolanaExternalWalletSigner
Solana variant of CrossmintExternalWalletSigner. Signs transactions only — raw-message signing is not supported on Solana.
CrossmintSolanaNonCustodialSigner
Solana variant of CrossmintNonCustodialSigner. Signs with ed25519 keys using base58 encoding. signMessage is intentionally unsupported — Solana only supports transaction signing.
CrossmintSolanaTransactionRequest
CrossmintSolanaWallet
Runtime wallet for Solana.
CrossmintStellarContractCallRequest
CrossmintStellarExternalWalletSigner
Stellar variant of CrossmintExternalWalletSigner. Signs transactions only — raw-message signing is not supported on Stellar.
CrossmintStellarNonCustodialSigner
Stellar variant of CrossmintNonCustodialSigner. Signs with ed25519 keys using base64 encoding. signMessage is intentionally unsupported — Stellar only supports transaction signing.
CrossmintStellarSerializedTransactionRequest
CrossmintStellarTransactionRequest
CrossmintStellarWallet
Runtime wallet for Stellar — including Soroban smart-contract calls.
CrossmintTheme
CrossmintThemeData
CrossmintTokenAvailabilityRecord
CrossmintTokenAvailabilityResult
CrossmintTokenQuery
CrossmintTokensClient
CrossmintTransactionRecord
CrossmintTransport
CrossmintTransportResponse
CrossmintTwitterSignInButton
Twitter/X sign-in button matching the official Crossmint RN SDK.
CrossmintTypedData
CrossmintUser
CrossmintUserCreateRequest
CrossmintUserLookupRequest
CrossmintUsersClient
CrossmintVcConfig
Configuration for VC on-chain services: RPC endpoints, IPFS gateways, and timeouts.
CrossmintVcIssuer
CrossmintVcNft
CrossmintVcRpcClient
Minimal JSON-RPC client for read-only Ethereum contract calls.
CrossmintVerifiableCredential
CrossmintVerifiableCredentialEncryption
CrossmintWallet
CrossmintWalletActionsViewModel
CrossmintWalletAddSignerResult
CrossmintWalletApprovalSigner
CrossmintWalletApprovedSignatureResult
CrossmintWalletApprovedTransactionResult
CrossmintWalletApproveRequest
CrossmintWalletApproveResult
CrossmintWalletAuthChallenge
Challenge returned by CrossmintAuthClient.signInWithWallet that must be signed by the user's external wallet (MetaMask, Phantom, etc.).
CrossmintWalletBalanceSnapshot
CrossmintWalletConsumer
CrossmintWalletContext
CrossmintWalletContextData
CrossmintWalletController
Stateful orchestrator for Crossmint wallets in a Flutter app.
CrossmintWalletControllerConfig
Configuration for CrossmintWalletController.
CrossmintWalletCreateRequest
CrossmintWalletFundRequest
CrossmintWalletFundResult
CrossmintWalletGate
CrossmintWalletHost
Advanced runtime host that mounts the client/auth/wallet scopes plus the hidden bridge hosts required for signer/export flows.
CrossmintWalletLifecycleCallbacks
Optional lifecycle hooks invoked at key points in the wallet controller.
CrossmintWalletLookupRequest
CrossmintWalletNftPage
CrossmintWalletOtpController
Drives OTP challenges raised by non-custodial email and phone signers.
CrossmintWalletOtpPrompt
CrossmintWalletOtpViewModel
CrossmintWalletProvider
Recommended app-facing integration widget — owns client, auth, and wallet-controller lifecycle plus the hidden signer bridge host.
CrossmintWalletProviderConfig
Configuration for CrossmintWalletProvider.
CrossmintWalletProviderDependencies
Pre-built dependency bundle accepted by CrossmintWalletProviderConfig.
CrossmintWalletProviderLifecycle
CrossmintWallets
Stateless convenience facade for wallet operations.
CrossmintWalletsClient
CrossmintWalletScope
Provides CrossmintWalletController to descendant widgets.
CrossmintWalletSessionViewModel
CrossmintWalletSignatureApproveRequest
CrossmintWalletSignatureCreateRequest
CrossmintWalletSignatureListRequest
CrossmintWalletSignatureLookupRequest
CrossmintWalletSigner
CrossmintWalletStateRepository
Single source of truth for the wallet state surfaced by CrossmintWalletController and the wallet provider UI layer. Holds the currently-loaded wallet, its identifier, and the lifecycle status; emits notifyListeners() whenever any of those change.
CrossmintWalletStateView
Read-only observation surface for the wallet state held by the CrossmintWalletController. Exposed via CrossmintWalletController.state so advanced consumers can subscribe to wallet / status changes directly without reaching into the controller, while still routing all mutations through the controller's public API.
CrossmintWalletStatusBuilder
CrossmintWalletTokenTransferRequest
CrossmintWalletUiState
CrossmintWorldstoreListingRecord
CrossmintWorldstoreListingSearchResult
CrossmintWorldstoreOrderCreateRequest
CrossmintWorldstoreSearchRequest
DeviceSignerKeyStorage
DeviceSignerKeyStorageInternal
Eip712VerificationInvalid
The proof was rejected. reason is a short, non-user-facing label describing which structural check failed.
Eip712VerificationResult
Outcome of an EIP-712 proof verification attempt.
Eip712VerificationStructuralOnly
The proof's envelope is well-formed (issuer DID parses, signature is 65 bytes) but the signature was not cryptographically verified.
Eip712VerificationValid
The proof was cryptographically verified against the issuer's address.
FlutterSecureStorageAdapter
HiddenSignerBridge
HiddenSignerBridgeConfig
HiddenSignerBridgeHost
HiddenSignerBridgePort
HiddenSignerBridgeRuntimeController
HiddenSignerBridgeState
InMemoryCrossmintAuthStorage
InMemoryCrossmintSecureStorageAdapter
NoopCrossmintLogger
SecureStorageCrossmintAuthStorage
SoftwareDeviceSignerKeyStorage
Software-backed device signer key storage for dev/test environments.
UnsupportedPasskeySignerFactory
Fallback factory used when the Flutter runtime does not provide a concrete passkey implementation.
UrlLauncherCrossmintAuthLauncher
WalletAuthService
WalletsApiService

Enums

CrossmintBiometricPolicy
CrossmintChain
Supported Crossmint blockchain chains.
CrossmintChainFamily
Top-level blockchain family discriminator.
CrossmintCheckoutDefaultMethod
Typed default payment method — which tab/method the hosted checkout opens on.
CrossmintCheckoutDiagnosticSeverity
Severity classification for CrossmintCheckoutDiagnostic.
CrossmintEmailSignInStep
Discrete UI steps for the email + OTP sign-in flow.
CrossmintEnvironment
CrossmintErrorCode
Typed error codes for programmatic exception handling.
CrossmintExportSignerEncoding
CrossmintOAuthProvider
CrossmintSignerBridgeStatus
CrossmintSignerEncoding
CrossmintSignerKeyType
CrossmintVcChain
CrossmintVerifiableCredentialEncryptionType
CrossmintWalletStatus
Wallet lifecycle status matching the official Crossmint RN SDK wallet context. Exposed as the status surface of both CrossmintWalletController (via its getter) and the underlying CrossmintWalletStateRepository (the SSOT that owns the field).
HiddenSignerBridgePhase

Constants

crossmintDefaultOtpPromptBuilder → const CrossmintOtpPromptBuilder
Default CrossmintOtpPromptBuilder that mounts the Material-based CrossmintWalletOtpPrompt used by the React Native Crossmint SDK.
kCheckoutConnectWalletShow → const String
The hosted checkout requests wallet connection UI.
kCheckoutCryptoLoad → const String
The hosted checkout initialized its crypto payment subsystem.
kCheckoutHeightChanged → const String
The hosted checkout page reported a new content height.
kCheckoutOrderCreationFailed → const String
Order creation failed on the server.
kCheckoutOrderUpdated → const String
The order state changed (new phase, updated quote, etc.).
kCheckoutSendTransaction → const String
The hosted checkout requests a transaction to be signed and sent.
kCheckoutSignMessage → const String
The hosted checkout requests a message to be signed.
kContractUriSelector → const String
ERC-7572 contractURI() selector.
kCrossmintFlutterSdkVersion → const String
Version of the crossmint_flutter SDK reported to the Crossmint backend (e.g. via sdkMetadata query parameters on embedded checkout).
kOwnerOfSelector → const String
ERC-721 ownerOf(uint256) selector.
kTokenUriSelector → const String
ERC-721 tokenURI(uint256) selector.
kZeroAddress → const String
Ethereum zero address.

Functions

abiDecodeAddress(String hexData) String
Decodes an ABI-encoded address (last 20 bytes of a 32-byte word).
abiDecodeString(String hexData) String
Decodes an ABI-encoded dynamic string (offset + length + data).
abiEncodeUint256(String tokenId) String
Encodes a uint256 token ID as a 32-byte hex word (no 0x prefix).
buildCheckoutConnectWalletFailed(String error) Map<String, Object?>
Builds the reply sent back when wallet connection fails. error is surfaced to the user inside the hosted page.
buildCheckoutConnectWalletSuccess({required String address, required String chain, String? walletProviderKey}) Map<String, Object?>
Builds the reply sent back when wallet connection succeeds. Pass the wallet address, the connected chain, and optionally the provider identifier (e.g. "metamask", "coinbase").
buildCheckoutCryptoLoadSuccess() Map<String, Object?>
Builds the reply the Flutter side sends after the crypto subsystem is ready.
buildCheckoutDispatchScript(String eventJson) String
Builds a JavaScript snippet that dispatches eventJson into the WebView.
buildCheckoutSendTransactionFailed(String error) Map<String, Object?>
Builds the reply sent back when the transaction could not be signed / broadcast. error is shown to the user.
buildCheckoutSendTransactionSuccess(String txId) Map<String, Object?>
Builds the reply sent back when the transaction was signed and broadcast successfully. txId is the resulting transaction hash / signature.
buildCheckoutSignMessageFailed(String error) Map<String, Object?>
Builds the reply sent back when message signing fails. error is shown to the user.
buildCheckoutSignMessageSuccess(String signature) Map<String, Object?>
Builds the reply sent back when an arbitrary message was signed successfully. signature is the user's signature.
createDefaultDeviceSignerKeyStorage() DeviceSignerKeyStorage
Creates the default device signer key storage.
createSoftwareDeviceSignerKeyStorage() DeviceSignerKeyStorage
Creates a software-only device signer for dev/test use.
crossmintAliasFromWalletLocator(String locator) String?
crossmintApiBaseUriForConfig(CrossmintApiConfig config) Uri
crossmintApiBaseUriForEnvironment(CrossmintEnvironment environment) Uri
crossmintAssertBridgeHosted(HiddenSignerBridge bridge) → void
Throws if bridge is the SDK's default runtime controller and no HiddenSignerBridgeHost has ever attached a port to it.
crossmintConfigSignersFromWallet(CrossmintWallet wallet) List<CrossmintJsonMap>
crossmintDedupeSigners(List<CrossmintWalletApprovalSigner> signers) List<CrossmintWalletApprovalSigner>
Deduplicates a list of approval signers by locator, keeping the first occurrence of each. Used when composing a runtime wallet's primary + additional signers so the same signer can never appear twice.
crossmintEnvironmentForConfig(CrossmintApiConfig config) CrossmintEnvironment
crossmintEnvironmentFromApiKey(String apiKey) CrossmintEnvironment
crossmintEnvironmentFromUri(Uri uri) CrossmintEnvironment
crossmintExportSignerBridgeUriForConfig(CrossmintClientConfig config) Uri
crossmintHasInlineApprovals(CrossmintWalletApproveRequest request) bool
crossmintIsRawHexApprovalMessage(String value) bool
crossmintIsRecoverySigner(CrossmintWallet wallet, CrossmintWalletApprovalSigner signer) bool
crossmintIsSolanaChain(String chain) bool
crossmintIsStellarChain(String chain) bool
crossmintListEquals<T>(List<T>? a, List<T>? b) bool
Structural equality for two nullable lists. Both null → equal. One null → not equal. Otherwise length + element-wise == comparison.
crossmintListHash<T>(List<T>? list) int
Combines the hash codes of a list's elements in order. Null → 0.
crossmintMapEquals<K, V>(Map<K, V>? a, Map<K, V>? b) bool
Structural equality for two nullable maps. Both null → equal. One null → not equal. Otherwise length + key-wise == comparison.
crossmintMapHash<K, V>(Map<K, V>? map) int
Combines the hash codes of a map's entries. Null → 0. Entries are combined as (key, value) pairs so the result is sensitive to both keys and values but order-independent across maps with identical content.
crossmintNftAttributes(CrossmintNftRecord nft) List<Map<String, String>>
Extracts NFT attributes (trait_type / value pairs) for display.
crossmintNftChain(CrossmintNftRecord nft) String?
crossmintNftContractAddress(CrossmintNftRecord nft) String?
crossmintNftDescription(CrossmintNftRecord nft) String?
crossmintNftImageUrl(CrossmintNftRecord nft) String?
crossmintNftName(CrossmintNftRecord nft) String?
Extracts display-friendly metadata from the raw NFT JSON.
crossmintNftTokenId(CrossmintNftRecord nft) String?
crossmintNormalizeConfiguredSigner(Object? value) CrossmintJsonMap?
crossmintNormalizeMap(Map<Object?, Object?> value) CrossmintJsonMap
crossmintOutputSignature(CrossmintJsonMap raw) String?
crossmintPendingApprovalMessage(CrossmintJsonMap pendingApproval) String
crossmintPendingApprovals(CrossmintJsonMap raw) List<CrossmintJsonMap>
crossmintPendingSignerLocator(CrossmintJsonMap pendingApproval) String
crossmintPendingSignerOperation(CrossmintWalletSigner signer, String chain) CrossmintPendingSignerOperation?
Returns the pending operation blocking a signer's approval on the given chain, or null if none. Mirrors getPendingSignerOperation in the JS SDK: Solana/Stellar surface pending transactions via signer.raw['transaction']; EVM chains surface pending per-chain signatures via signer.raw['chains'][chain].
crossmintPoll<T extends Object>({required Future<T?> action(int attempt), required Object onTimeout(), CrossmintPollingConfig config = const CrossmintPollingConfig()}) Future<T>
Polls action up to config.maxAttempts times with exponential backoff.
crossmintReadSignerLocator(CrossmintJsonMap configSigner) String?
crossmintRecoverySignerLocator(CrossmintWallet wallet) String?
crossmintRequireMap(Object? value, String label) CrossmintJsonMap
crossmintRequireString(Object? value, String label) String
crossmintRetrievalProcedure(CrossmintCredentialsClient client) CrossmintCredentialRetrievalProcedure
crossmintSignerBridgeUriForEnvironment(CrossmintEnvironment environment) Uri
crossmintSignerConfigLocator(CrossmintSignerConfig signer) String?
crossmintStatusOf(CrossmintJsonMap raw) String?
crossmintTokenLocator(String token, {required String chain}) String
crossmintTypeFromLocator(String locator) String
crossmintValidatePasskeySigners(CrossmintWalletCreateRequest request) → void
Validates that any passkey signers in a wallet creation request have a usable signing implementation (callbacks or, in the future, native platform support).
crossmintWalletJsonValue(Object? value) Object?
decryptSymmetricCredential(CrossmintEncryptedVerifiableCredential credential, Uint8List secretKey) CrossmintVerifiableCredential
Decrypts an AES-256-GCM encrypted Verifiable Credential.
getCredentialNFTFromLocator(String locator, {CrossmintCredentialCollectionProvider? collectionProvider, Future<Object?> metadataLoader(CrossmintCredentialLocator locator)?}) Future<CrossmintCredentialNftLookupResult>
getCredentialNfts(CrossmintVcChain chain, String wallet, {required CrossmintWalletCredentialNftProvider walletNftsProvider, required CrossmintCredentialCollectionProvider collectionProvider, CrossmintCredentialFilter filter = const CrossmintCredentialFilter()}) Future<List<CrossmintCredentialsCollection>>
ipfsRetrievalProcedure({CrossmintCredentialDocumentLoader? documentLoader}) CrossmintCredentialRetrievalProcedure
isCredentialType(Object? value) bool
isEncryptedVerifiableCredential(Object? value) bool
isVcChain(String chain) bool
isVerifiableCredential(Object? value) bool
parseCheckoutEvent(String rawMessage) → ({Map<String, Object?> data, String? event})
Parses a raw JSON message string from the WebView into event name + data. Returns (event: null, data: {}) for malformed payloads.
parseCredentialLocator(String locator) CrossmintCredentialLocator
recoverEthereumAddress(Uint8List messageHash, Uint8List signature) String?
Recovers an Ethereum address from a secp256k1 signature and message hash.
resolveCheckoutBaseUrl({required String apiKey}) String
Resolves the Crossmint hosted-page base URL from the apiKey.
showCrossmintEmailOtpDialog({required BuildContext context, required CrossmintWalletOtpController otpController, bool barrierDismissible = false, VoidCallback? onDismissed}) Future<void>
Shows the email OTP dialog imperatively.
showCrossmintPhoneOtpDialog({required BuildContext context, required CrossmintWalletOtpController otpController, bool barrierDismissible = false, VoidCallback? onDismissed}) Future<void>
Shows the phone OTP dialog imperatively.
tryParseCredentialType(Object? value) CrossmintCredentialType?
tryParseEncryptedVerifiableCredential(Object? value) CrossmintEncryptedVerifiableCredential?
tryParseVcIssuer(Object? value) CrossmintVcIssuer?
tryParseVcNft(Object? value) CrossmintVcNft?
tryParseVerifiableCredential(Object? value) CrossmintVerifiableCredential?
verifyCredential(CrossmintVerifiableCredential credential, {CrossmintCredentialProofVerifier? proofVerifier, CrossmintCredentialRevocationChecker? revocationChecker, DateTime? now}) Future<CrossmintCredentialVerificationResult>
verifyEip712Proof(CrossmintVerifiableCredential credential) bool
Backward-compatible boolean wrapper for verifyEip712ProofDetailed.
verifyEip712ProofDetailed(CrossmintVerifiableCredential credential) Eip712VerificationResult
Verifies an EIP-712 typed data signature on a Verifiable Credential.

Typedefs

CrossmintCheckoutLoadingBuilder = Widget Function(BuildContext context)
Builder signature for the overlay rendered on top of the hosted checkout WebView while the hosted page is loading. Consumers can supply a custom builder via CrossmintEmbeddedCheckout.loadingBuilder to swap the default Material spinner for their own design-system loading state (Cupertino, fluent_ui, a custom animation, etc.).
CrossmintCredentialCollectionProvider = Future<CrossmintCredentialsCollection?> Function(CrossmintVcChain chain, String contractAddress)
CrossmintCredentialDocumentLoader = Future<Object?> Function(Uri retrievalUri)
CrossmintCredentialProofVerifier = FutureOr<bool> Function(CrossmintVerifiableCredential credential)
CrossmintCredentialRevocationChecker = FutureOr<bool> Function(CrossmintVcNft nft)
CrossmintExportPrivateKeyButtonBuilder = Widget Function(BuildContext context, {required bool isLoading, required VoidCallback? onExport})
Builder signature for the visual of CrossmintExportPrivateKeyButton. The widget owns the loading state and the eligibility check; the builder receives isLoading and onExport so the consumer can render any tap target that fits their design system. onExport is null while the export is in flight so a consumer button (e.g. ElevatedButton) is automatically disabled without a separate mounted check.
CrossmintExternalWalletSignCallback = Future<String> Function(String payload)
Callback signature for user-owned external-wallet signers.
CrossmintJsonMap = Map<String, Object?>
CrossmintNftItemBuilder = Widget Function(BuildContext context, CrossmintNftRecord nft, int index, {VoidCallback? onTap})
Builder signature for a single NFT card rendered inside CrossmintNftCollectionView. Receives the build context, the NFT record, the index inside the CrossmintNftCollectionView.nfts list, and an onTap callback that forwards to CrossmintNftCollectionView.onNftTap when supplied. Consumers can use the callback to wire their own card widget up to the collection view's tap handling without having to re-implement the list iteration.
CrossmintOtpPromptBuilder = Widget Function(BuildContext context, CrossmintWalletOtpController otpController, Widget child)
Builds a widget that owns the OTP signer prompt UI for the wallet provider.
CrossmintOtpRejectCallback = void Function([Object? error])
Called to cancel a pending OTP challenge, optionally with an error cause.
CrossmintOtpSendCallback = Future<void> Function()
Called by non-custodial signers to (re-)send an OTP to the user.
CrossmintOtpVerifyCallback = Future<void> Function(String otp)
Called by non-custodial signers to verify the OTP the user entered.
CrossmintPaymentMethodManagementLoadingBuilder = Widget Function(BuildContext context)
Builder signature for the overlay rendered on top of the hosted payment-method-management WebView while the hosted page is loading. Consumers can supply a custom builder via CrossmintPaymentMethodManagement.loadingBuilder to swap the default Material spinner for their own design-system loading state. Mirrors the CrossmintCheckoutLoadingBuilder pattern exposed by CrossmintEmbeddedCheckout.
CrossmintSignerAuthRequiredCallback = Future<void> Function(String signerType, String signerLocator, bool needsAuth, CrossmintOtpSendCallback sendOtp, CrossmintOtpVerifyCallback verifyOtp, CrossmintOtpRejectCallback reject)
Callback fired when a non-custodial signer needs the user to authenticate.
CrossmintTransactionDetails = CrossmintTransactionRecord
CrossmintTransactionSummary = CrossmintTransactionRecord
CrossmintVcDocumentLoader = Future<Object?> Function(Uri uri)
CrossmintWalletAuthRequiredCallback = CrossmintSignerAuthRequiredCallback
CrossmintWalletChallengeSigner = Future<String> Function(String wallet, String challengePayload)
CrossmintWalletConsumerBuilder = Widget Function(BuildContext context, CrossmintWalletContextData data)
CrossmintWalletCredentialNftProvider = Future<List<CrossmintVcNft>> Function(CrossmintVcChain chain, String wallet)
CrossmintWalletGateBuilder = Widget Function(BuildContext context, CrossmintWalletContextData data)
CrossmintWalletSignature = CrossmintSignatureRecord
CrossmintWalletStatusWidgetBuilder = Widget Function(BuildContext context, CrossmintWalletContextData data)
HiddenSignerBridgeMessageListener = void Function(CrossmintJsonMap message)
HiddenSignerDispatchScriptBuilder = String Function(String payloadJson)

Exceptions / Errors

CrossmintAuthException
Thrown by authentication flows — OTP failures, OAuth callback errors, session restore issues, JWT expiry, logout failures.
CrossmintAuthRejectedException
Thrown when the user cancels an OTP challenge (via CrossmintWalletOtpController.reject or equivalent).
CrossmintConfigurationException
Thrown when the client is configured incorrectly — missing API key, invalid base URL, incompatible runtime overrides, etc.
CrossmintCredentialsException
Thrown by verifiable-credentials operations — malformed credential documents, verification failures, locator resolution errors.
CrossmintDeserializationException
Thrown when a JSON payload from the Crossmint API is missing a required field, contains the wrong type for a field, or otherwise cannot be parsed into a typed model. Carries the entity being parsed and the offending field so consumer code can react programmatically instead of pattern matching on the message string.
CrossmintException
Base class for every exception the Crossmint SDK throws.
CrossmintOrdersException
Thrown by checkout / order operations — invalid line items, payment method mismatches, order lookup failures.
CrossmintSignerException
Thrown by signer operations — missing host, rejected OTP, unsupported export, missing passkey callback, upstream signer-service errors.
CrossmintTokensException
Thrown by token-related operations — balance lookup failures, missing token metadata.
CrossmintUsersException
Thrown by user-profile operations — user lookup failures, profile update errors.
CrossmintWalletException
Thrown by wallet operations — lookup failures, unsupported chain, missing wallet, malformed transaction payloads.