Skip to main content
Class
class Wallet

Properties

address

val address: String
The blockchain address of the wallet

chainType

val chainType: ChainType
The blockchain type (EVM, Solana, etc.)

config

val config: WalletConfig
The wallet configuration including admin signer

owner

val owner: Owner?
The owner of the wallet, if available

type

val type: WalletType
The type of wallet (smart wallet or MPC wallet)

Functions

addSigner

suspend fun addSigner(signer: DelegatedSigner): Result<Unit, WalletError>
Registers a new delegated signer on this wallet via the recovery/approval flow. Does not change the active signer.

approve

suspend fun approve(transactionId: String, signer: SignerSelection = SignerSelection.Admin): Result<Transaction, TransactionError>
Signs a transaction that is in AWAITING_APPROVAL status.

balances

suspend fun balances(tokens: List<String> = emptyList()): Result<Balances, BalanceError>
Gets the wallet balances.

fund

suspend fun fund(token: String, amount: Int, chain: String): Result<Unit, BalanceError>
Funds the wallet with test tokens (staging only).

getSigner

fun getSigner(): Signer?
Returns the current signer for this wallet.

getTransaction

suspend fun getTransaction(transactionId: String): Result<Transaction, TransactionError>
Retrieves a transaction by its ID.

needsRecovery

suspend fun needsRecovery(): Boolean
Returns true when a device signer was configured for this wallet but no matching hardware key exists on the current device.

recover

suspend fun recover(): Result<Unit, WalletError>
Generates a new hardware key on this device and registers it on the wallet using the admin/recovery signer approval flow.

removeSigner

suspend fun removeSigner(signer: DelegatedSigner): Result<Unit, WalletError>
Removes a delegated signer from this wallet. Supported types: DelegatedSigner.Email, DelegatedSigner.Phone, DelegatedSigner.ExternalWallet, DelegatedSigner.Locator.

send

suspend fun send(recipient: String, tokenLocator: String, amount: Double, idempotencyKey: String? = null, signer: SignerSelection = SignerSelection.Admin): Result<Transaction, TransactionError>
Sends tokens to a recipient address.

signerIsRegistered

fun signerIsRegistered(locator: String): Boolean
Returns true if the given locator is registered as a delegated signer on this wallet.

useSigner

suspend fun useSigner(signer: DelegatedSigner): Result<Unit, WalletError>
Sets the active signer for subsequent send and approve operations.

withSigner

fun withSigner(newSigner: Signer): Wallet
Creates a new Wallet instance that uses the specified signer for transactions.