crossmint_flutter_wallets library

Wallet and signer surface for the Crossmint SDK.

Exports every runtime wallet type (EVM, Solana, Stellar), the shared base class CrossmintRuntimeWalletBase, and every approval-signer implementation (device, non-custodial email/phone, external wallet, API key, exportable, passkey) along with their config classes.

For day-to-day app code, prefer importing crossmint_client.dart (which transitively re-exports this surface). Import this file directly when you only need wallet / signer types without the rest of the client facade.

Classes

CrossmintApiKeySigner
A signer that delegates all signing to the Crossmint backend via API key authentication.
CrossmintApiKeySignerConfig
CrossmintAuthenticatedUser
CrossmintAuthSession
CrossmintCreateOnLoginConfig
CrossmintCredentialDecryptRequest
CrossmintCredentialQuery
CrossmintCredentialRecord
CrossmintCredentialWalletAuthChallenge
CrossmintDecryptedCredential
CrossmintDeviceSignerConfig
CrossmintDeviceSignerDescriptor
CrossmintDeviceWalletSigner
Hardware-backed approval signer — keys live in Secure Enclave (iOS) or Android Keystore, never in Dart memory.
CrossmintEmailOtpChallenge
CrossmintEmailSignerConfig
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.).
CrossmintExportableWalletSigner
Marker interface for signers that can hand back the raw private key to the user — primarily non-custodial email and phone signers.
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
CrossmintNftRecord
CrossmintNonCustodialSigner
Base class for email / phone non-custodial signers.
CrossmintOrderCreateRequest
CrossmintOrderReadRequest
CrossmintOrderRecord
CrossmintOrderUpdateRequest
CrossmintOtpChallenge
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
CrossmintPendingSignerOperation
CrossmintPhoneSignerConfig
CrossmintRuntimeWalletBase
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.
CrossmintTokenAvailabilityRecord
CrossmintTokenAvailabilityResult
CrossmintTokenQuery
CrossmintTransactionRecord
CrossmintTypedData
CrossmintUser
CrossmintUserCreateRequest
CrossmintUserLookupRequest
CrossmintWallet
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
CrossmintWalletCreateRequest
CrossmintWalletFundRequest
CrossmintWalletFundResult
CrossmintWalletLookupRequest
CrossmintWalletNftPage
CrossmintWallets
Stateless convenience facade for wallet operations.
CrossmintWalletsClient
CrossmintWalletSignatureApproveRequest
CrossmintWalletSignatureCreateRequest
CrossmintWalletSignatureListRequest
CrossmintWalletSignatureLookupRequest
CrossmintWalletSigner
CrossmintWalletTokenTransferRequest
CrossmintWorldstoreListingRecord
CrossmintWorldstoreListingSearchResult
CrossmintWorldstoreOrderCreateRequest
CrossmintWorldstoreSearchRequest
DeviceSignerKeyStorage
DeviceSignerKeyStorageInternal
HiddenSignerBridge
HiddenSignerBridgeConfig
HiddenSignerBridgeHost
HiddenSignerBridgePort
HiddenSignerBridgeRuntimeController
HiddenSignerBridgeState
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.
WalletsApiService

Functions

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?
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.
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
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].
crossmintReadSignerLocator(CrossmintJsonMap configSigner) String?
crossmintRecoverySignerLocator(CrossmintWallet wallet) String?
crossmintRequireMap(Object? value, String label) CrossmintJsonMap
crossmintRequireString(Object? value, String label) String
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?

Typedefs

CrossmintExternalWalletSignCallback = Future<String> Function(String payload)
Callback signature for user-owned external-wallet signers.
CrossmintJsonMap = Map<String, Object?>
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.
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
CrossmintWalletSignature = CrossmintSignatureRecord
HiddenSignerBridgeMessageListener = void Function(CrossmintJsonMap message)
HiddenSignerDispatchScriptBuilder = String Function(String payloadJson)

Exceptions / Errors

CrossmintAuthRejectedException
Thrown when the user cancels an OTP challenge (via CrossmintWalletOtpController.reject or equivalent).