This page has been updated for Wallets SDK V1. If you are using the previous version,
see the previous version of this page or the V1 migration guide.
Extends
Constructors
new SolanaWallet()
new SolanaWallet(Defined in: packages/wallets/src/wallets/solana.ts:19wallet):SolanaWallet
Parameters
| Parameter | Type |
|---|---|
wallet | Wallet<"solana"> |
Returns
SolanaWallet
Overrides
Wallet.constructor
Properties
| Property | Type | Inherited from | Defined in |
|---|---|---|---|
address | string | Wallet.address | packages/wallets/src/wallets/wallet.ts:85 |
alias? | string | Wallet.alias | packages/wallets/src/wallets/wallet.ts:87 |
chain | "solana" | Wallet.chain | packages/wallets/src/wallets/wallet.ts:84 |
owner? | string | Wallet.owner | packages/wallets/src/wallets/wallet.ts:86 |
Accessors
apiClient
Get Signature
get apiClient(): WalletsApiClient
Defined in: packages/wallets/src/wallets/wallet.ts:206
Returns
WalletsApiClient
Inherited from
Wallet.apiClient
recovery
Get Signature
get recovery():Defined in: packages/wallets/src/wallets/wallet.ts:219SignerConfigForChain<C>
Experimental
Get the recovery signer config
Returns
SignerConfigForChain<C>
The recovery signer config
This API is experimental and may change in the future
Inherited from
Wallet.recovery
signer
Get Signature
get signer():Defined in: packages/wallets/src/wallets/wallet.ts:112SignerAdapter<keyofSignResultMap> |undefined
Returns
SignerAdapter<keyof SignResultMap> | undefined
Inherited from
Wallet.signer
Methods
addSigner()
addSigner<Defined in: packages/wallets/src/wallets/wallet.ts:614 Add a signer to the wallet. Always uses the recovery signer internally to approve the registration. If the signer being added is the current operational signer, it will be reassembled with the new locator. Otherwise, the original signer is restored after the operation.T>(signer,options?):Promise<TextendsPrepareOnly<true> ?Signer&object:Signer>
Type Parameters
| Type Parameter | Default type |
|---|---|
T extends AddSignerOptions | undefined | undefined |
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | EmailSignerConfig | PhoneSignerConfig | DeviceSignerConfig | BaseSignerConfig<"solana"> | ExternalWalletRegistrationConfig | The signer configuration object |
options? | T | The options for the operation |
Returns
Promise<T extends PrepareOnly<true> ? Signer & object : Signer>
Inherited from
Wallet.addSigner
approve()
approve<Defined in: packages/wallets/src/wallets/wallet.ts:568 Approve a transaction or signatureT>(params):Promise<ApproveResult<T>>
Type Parameters
| Type Parameter |
|---|
T extends ApproveParams |
Parameters
| Parameter | Type | Description |
|---|---|---|
params | T | The parameters |
Returns
Promise<ApproveResult<T>>
The transaction or signature
Inherited from
Wallet.approve
approveTransaction()
approveTransaction(Defined in: packages/wallets/src/wallets/wallet.ts:544params):Promise<Error>
Parameters
| Parameter | Type | Description |
|---|---|---|
params | ApproveParams | The parameters |
Returns
Promise<Error>
The transaction
Deprecated
Useapprove instead.
Approve a transaction
Inherited from
Wallet.approveTransaction
balances()
balances(Defined in: packages/wallets/src/wallets/wallet.ts:236 Get the wallet balances - always includes USDC and native token (ETH/SOL)tokens?):Promise<Balances<"solana">>
Parameters
| Parameter | Type | Description |
|---|---|---|
tokens? | string[] | Additional tokens to request (optional: native token and usdc are always included) |
Returns
Promise<Balances<"solana">>
The balances returns nativeToken, usdc, tokens
Throws
If the balances cannot be retrievedInherited from
Wallet.balances
isSignerApproved()
isSignerApproved(Defined in: packages/wallets/src/wallets/wallet.ts:866 Check if a signer is approved and usable for the current wallet chain.signerLocator):Promise<boolean>
Parameters
| Parameter | Type | Description |
|---|---|---|
signerLocator | string | The locator of the signer to check |
Returns
Promise<boolean>
true if the signer is approved for this chain
Inherited from
Wallet.isSignerApproved
needsRecovery()
needsRecovery(): boolean
Defined in: packages/wallets/src/wallets/wallet.ts:875
Whether the wallet needs recovery (signer registration) before the next transaction.
Returns
boolean
true if recovery is needed
Inherited from
Wallet.needsRecovery
nfts()
nfts(Defined in: packages/wallets/src/wallets/wallet.ts:394 Get the wallet NFTsparams):Promise<unknown>
Parameters
| Parameter | Type | Description |
|---|---|---|
params | { page: number; perPage: number; } | The parameters |
params.page | number | The page number |
params.perPage | number | The number of NFTs per page |
Returns
Promise<unknown>
The NFTs
Inherited from
Wallet.nfts
recover()
recover():Defined in: packages/wallets/src/wallets/wallet.ts:891 Register a device signer with the wallet using the recovery signer. Generates a new device key and registers it on-chain. Returns early if the device signer’s locator is already approved on-chain.Promise<void>
Returns
Promise<void>
Inherited from
Wallet.recover
send()
send<Defined in: packages/wallets/src/wallets/wallet.ts:461 Send a token to a wallet or user locatorT>(to,token,amount,options?):Promise<Transaction<TextendsPrepareOnly<true> ?true:false>>
Type Parameters
| Type Parameter | Default type |
|---|---|
T extends SendTokenTransactionOptions | undefined | undefined |
Parameters
| Parameter | Type | Description |
|---|---|---|
to | string | UserLocator | The recipient (address or user locator) |
token | string | The token (address or currency symbol) |
amount | string | The amount to send (decimal units) |
options? | T | The options for the transaction |
Returns
Promise<Transaction<T extends PrepareOnly<true> ? true : false>>
The transaction
Inherited from
Wallet.send
sendTransaction()
sendTransaction<Defined in: packages/wallets/src/wallets/solana.ts:55 Send a raw Solana transaction.T>(params):Promise<Transaction<TextendsPrepareOnly<true> ?true:false>>
Type Parameters
| Type Parameter | Default type |
|---|---|
T extends TransactionInputOptions | undefined | undefined |
Parameters
| Parameter | Type | Description |
|---|---|---|
params | SolanaTransactionInput & object | The transaction parameters (serialized transaction or Transaction object) |
Returns
Promise<Transaction<T extends PrepareOnly<true> ? true : false>>
The transaction result
signerIsRegistered()
signerIsRegistered(Defined in: packages/wallets/src/wallets/wallet.ts:856 Check if a signer is registered in this wallet.signerLocator):Promise<boolean>
Parameters
| Parameter | Type | Description |
|---|---|---|
signerLocator | string | The locator of the signer to check |
Returns
Promise<boolean>
true if the signer is registered
Inherited from
Wallet.signerIsRegistered
signers()
signers():Defined in: packages/wallets/src/wallets/wallet.ts:995 List the signers for this wallet. Returns full signer objects with status. For EVM wallets, only signers with an approval (pending or completed) for the wallet’s chain are included.Promise<Signer[]>
Returns
Promise<Signer[]>
The signers
Inherited from
Wallet.signers
stagingFund()
stagingFund(Defined in: packages/wallets/src/wallets/wallet.ts:286 Funds the wallet with Crossmint’s stablecoin (USDXM). Note: This method is only available in staging environments and exclusively supports USDXM tokens. It cannot be used in production environments.amount,chain?):Promise<FundWalletResponse>
Parameters
| Parameter | Type | Description |
|---|---|---|
amount | number | The amount of USDXM to fund the wallet with |
chain? | Chain | Optional chain to fund on. If not provided, uses the wallet’s default chain |
Returns
Promise<FundWalletResponse>
The funding response
Throws
If the funding operation fails or if called in a production environmentInherited from
Wallet.stagingFund
transaction()
transaction(Defined in: packages/wallets/src/wallets/wallet.ts:420 Get a transaction by idtransactionId):Promise<WalletsTransactionV2025ResponseDto>
Parameters
| Parameter | Type |
|---|---|
transactionId | string |
Returns
Promise<WalletsTransactionV2025ResponseDto>
The transaction
Throws
If the transaction cannot be retrievedInherited from
Wallet.transaction
transactions()
transactions():Defined in: packages/wallets/src/wallets/wallet.ts:407 Get the wallet transactionsPromise<GetTransactionsResponse>
Returns
Promise<GetTransactionsResponse>
The transactions
Throws
If the transactions cannot be retrievedInherited from
Wallet.transactions
transfers()
transfers(Defined in: packages/wallets/src/wallets/wallet.ts:433 Get the wallet transfersparams?):Promise<WalletsActivityResponseUnstableDto>
Parameters
| Parameter | Type |
|---|---|
params? | { status: "successful" | "failed"; tokens: string; } |
params.status? | "successful" | "failed" |
params.tokens? | string |
Returns
Promise<WalletsActivityResponseUnstableDto>
The transfers
Throws
If the transfers cannot be retrievedInherited from
Wallet.transfers
useSigner()
useSigner(Defined in: packages/wallets/src/wallets/wallet.ts:758 Set the active signer for this wallet. Accepts a signer config object. The locator is inferred internally. Works for both registered signers and the recovery signer. For passkey signers: if nosigner):Promise<void>
id is provided, the wallet will auto-select the passkey
if exactly one passkey signer is registered. If multiple passkeys exist, an id must be specified.
For device signers: if no device key is found locally, the signer will be created
automatically during the next transaction (via recovery).
For external-wallet signers: the config object must include an onSign callback
(applies to both registered and recovery signers).
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | EmailSignerConfig | PhoneSignerConfig | DeviceSignerConfig | BaseSignerConfig<"solana"> | The signer config object to use |
Returns
Promise<void>
Inherited from
Wallet.useSigner
from()
Defined in: packages/wallets/src/wallets/solana.ts:35staticfrom(wallet):SolanaWallet
Parameters
Returns
SolanaWallet
