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.
signMessageis 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.
signMessageis 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
Enums
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
bridgeis the SDK's default runtime controller and noHiddenSignerBridgeHosthas 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
getPendingSignerOperationin the JS SDK: Solana/Stellar surface pending transactions viasigner.raw['transaction']; EVM chains surface pending per-chain signatures viasigner.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).