CrossmintSolanaWallet class final

Runtime wallet for Solana.

Solana device signer support is provider-dependent (Swig/Crossmint support it, Squads does not) and validated server-side; the runtime falls back to the recovery signer when the provider rejects a device signer. Non-custodial, external, and passkey signers are also supported. Default chain is solana.

Inheritance

Constructors

CrossmintSolanaWallet({required CrossmintClient client, required CrossmintWallet wallet, CrossmintSignerConfig? recoverySigner, CrossmintWalletApprovalSigner? signer, List<CrossmintWalletApprovalSigner> additionalSigners = const <CrossmintWalletApprovalSigner>[], DeviceSignerKeyStorage? deviceSignerKeyStorage, CrossmintSignerAuthRequiredCallback? onAuthRequired})
Creates a runtime Solana wallet. Prefer CrossmintClient.createSolanaWallet or the wallet controller over constructing this directly.

Properties

additionalSigners List<CrossmintWalletApprovalSigner>
no setterinherited
address String
no setterinherited
canExportPrivateKey bool
no setterinherited
chain String
no setterinherited
client CrossmintClient
finalinherited
debugIsRecovering bool
Test-only: true while recover() is in flight. Lets concurrency tests assert that concurrent callers coalesce onto a single recovery future.
no setterinherited
defaultChain String
no setteroverride
deviceSignerKeyStorage DeviceSignerKeyStorage?
finalinherited
hashCode int
The hash code for this object.
no setterinherited
locator String
no setterinherited
needsRecovery bool
no setterinherited
onAuthRequired CrossmintSignerAuthRequiredCallback?
finalinherited
owner String?
no setterinherited
recovery CrossmintSignerConfig?
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
signer CrossmintWalletApprovalSigner?
no setterinherited
wallet CrossmintWallet
finalinherited

Methods

addSigner(CrossmintSignerConfig signer, {bool prepareOnly = false}) Future<CrossmintWalletAddSignerResult>
Registers a new signer on the wallet and approves the registration.
inherited
approve(CrossmintWalletApproveRequest request) Future<CrossmintWalletApproveResult>
inherited
approveSignatureAndWaitInternal(String signatureId) Future<String>
inherited
approveSignatureInternal(String signatureId) Future<CrossmintSignatureRecord>
inherited
approveTransactionAndWait(String transactionId, {CrossmintTransactionDetails? seedTransaction}) Future<CrossmintTransactionDetails>
inherited
approveTransactionInternal(String transactionId) Future<CrossmintTransactionDetails>
inherited
balances({List<String> tokens = const <String>[]}) Future<CrossmintWalletBalanceSnapshot>
inherited
completeApprovedTransaction(CrossmintTransactionDetails transaction, {required String transactionId}) Future<CrossmintTransactionDetails>
inherited
debugRegisterRecoverySigner(CrossmintWalletApprovalSigner signer) → void
Test-only: inject a pre-assembled recovery signer, bypassing the constructor-config resolution path. Used by tests that wire a fake bridge into a non-custodial signer without exercising hiddenSignerBridgeController. Not part of the supported public API.
inherited
exportPrivateKey({CrossmintExportSignerBridge? bridge}) Future<void>
inherited
fund(CrossmintWalletFundRequest request) Future<CrossmintWalletFundResult>
inherited
isSignerApproved(String signerLocator) Future<bool>
inherited
nfts({int page = 1, int perPage = 50}) Future<CrossmintWalletNftPage>
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
preAuthIfNeeded() Future<void>
Awaits any in-flight recovery; if _needsRecovery is set and no recovery is in-flight, starts one and awaits it. Concurrent callers coalesce onto the same future so a single recovery runs per wallet.
inherited
recover() Future<void>
inherited
removeSigner(String signerLocator) Future<void>
inherited
requireActiveSigner(String operation) CrossmintWalletApprovalSigner
inherited
send(CrossmintWalletTokenTransferRequest request) Future<CrossmintTransactionDetails>
inherited
sendToken(String to, String token, String amount, {bool prepareOnly = false, String? transactionType}) Future<CrossmintTransactionDetails>
inherited
sendTransaction(CrossmintSolanaTransactionRequest request) Future<CrossmintTransactionDetails>
Submits, approves, and waits for confirmation of a Solana transaction. Accepts a serialized transaction (base64 or base58); the SDK applies the active signer and returns the final CrossmintTransactionDetails.
signerIsRegistered(String signerLocator) Future<bool>
inherited
signers() Future<List<CrossmintWalletSigner>>
inherited
toString() String
A string representation of this object.
inherited
transaction(String transactionId) Future<CrossmintTransactionDetails?>
inherited
transactionApprovalPayload({required CrossmintTransactionDetails transaction, required CrossmintJsonMap pendingApproval, required CrossmintWalletApprovalSigner signer}) String
inherited
transactions() Future<List<CrossmintTransactionSummary>>
inherited
transfers({int page = 1, int perPage = 50, List<String> tokens = const <String>[], String? status}) Future<List<CrossmintJsonMap>>
Reads transfer history for this wallet (unstable API).
inherited
useSigner(CrossmintSignerConfig signer, {List<CrossmintSignerConfig> additionalSigners = const <CrossmintSignerConfig>[]}) Future<void>
inherited
waitForTransaction(String transactionId) Future<CrossmintTransactionDetails>
inherited
walletSnapshotForSigners() Future<CrossmintWallet>
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited