ReadonlyarkReadonlyarkReadonlyboardingReadonlycontractOptional ReadonlydelegatorReadonlydustReadonlyforfeitReadonlyforfeitReadonlyidentitySigning identity associated with the wallet.
ReadonlyindexerReadonlynetworkReadonlyoffchainReadonlyonchainReadonlyrenewalReadonlyserverReadonlysettlementReadonlywalletReadonlywalletStaticMIN_Asset manager bound to this wallet instance.
Get the pkScript hex for the wallet's primary offchain address. For the full wallet-owned script set registered in ContractManager, use getWalletScripts().
Async-dispose hook that forwards to dispose().
Build an offchain transaction from the given inputs and outputs, sign it, submit to the Arkade provider, and finalize.
The Arkade transaction id and server-signed checkpoint PSBTs (for bookkeeping)
Clear the global VTXO sync cursor, forcing a full re-bootstrap on next sync. Useful for recovery after indexer reprocessing or debugging.
Create a batch event handler for settlement flows.
The intent ID.
Inputs used by the intent.
Expected recipients to validate in the virtual output tree.
Optionalsession: SignerSessionOptional musig2 signing session. When omitted, signing steps are skipped.
Dispose wallet-owned managers and release background resources.
Fetch Arkade transaction ids that are still pending final settlement.
Finalizes pending transactions by retrieving them from the server and finalizing each one. Skips the server check entirely when no send was interrupted (no pending tx flag set).
Optionalvtxos: ExtendedVirtualCoin[]Optional list of virtual outputs to use instead of retrieving them from the server
Array of transaction IDs that were finalized
Returns the wallet's Arkade address.
Return the wallet's combined onchain and offchain balances.
Returns the onchain boarding address used to move funds into Arkade.
Build a transaction history view for the wallet's boarding address.
Fetch and cache onchain inputs (UTXOs) received at the boarding address.
Get the ContractManager for managing contracts including the wallet's default address.
The ContractManager handles:
const manager = await wallet.getContractManager();
// Create a contract for a Boltz swap
const contract = await manager.createContract({
label: "Boltz Swap",
type: "vhtlc",
params: { ... },
script: swapScript,
address: swapAddress,
});
// Start watching for events (includes wallet's default address)
const stop = await manager.onContractEvent((event) => {
console.log(`${event.type} on ${event.contractScript}`);
});
Returns the delegator manager when delegation support is configured.
Build a map of scriptHex → VtxoScript for all wallet contracts, so virtual outputs can be extended with the correct tapscript per contract.
Return wallet transaction history derived from Arkade state and boarding transactions.
Return virtual outputs tracked by the wallet.
Optionalfilter: GetVtxosFilterOptional flags controlling whether recoverable or unrolled VTXOs are included
Get all pkScript hex strings for the wallet's own addresses (both delegate and non-delegate, current and historical).
OptionalvalidAt: numberSubscribe to onchain and offchain notifications for newly received funds.
Callback invoked when matching funds are detected
A function that stops the subscriptions
Send bitcoin to an Arkade address.
Send parameters
Settle boarding inputs and/or virtual outputs into a finalized mainnet transaction.
Optionalparams: SettleParamsOptional settlement inputs and outputs. When omitted, the wallet settles all eligible funds.
OptionaleventCallback: (event: SettlementEvent) => voidOptional callback invoked for settlement stream events.
The finalized Arkade transaction id
Convert this wallet to a readonly wallet.
A readonly wallet with the same configuration but readonly identity
const wallet = await Wallet.create({ identity: MnemonicIdentity.fromMnemonic('abandon abandon...'), ... });
const readonlyWallet = await wallet.toReadonly();
// Can query balance and addresses
const balance = await readonlyWallet.getBalance();
const address = await readonlyWallet.getAddress();
// But cannot send transactions (type error)
// readonlyWallet.send(...); // TypeScript error
StaticcreateCreate a full wallet and initialize its background managers.
Wallet configuration
A wallet ready to query balances and send transactions
Main wallet implementation for Bitcoin transactions with Arkade protocol support. The wallet does not store any data locally and relies on Arkade and onchain providers to fetch onchain and virtual outputs.
Example