Skip to content

ConnectedWallet

Defined in: src/Wallet.ts:280

A connected wallet that can sign, balance, and submit transactions.

Created via Wallet.fromSeed() (server/CLI) or Wallet.fromBrowser() (Lace extension). Both sources produce the same interface — the source is just how you got the wallet.

Example

// From seed (server/CLI)
const wallet = await Midday.Wallet.fromSeed(seed, networkConfig);
// From browser extension
const wallet = await Midday.Wallet.fromBrowser('testnet');
// Same interface regardless of source
console.log(wallet.address); // shielded address
console.log(wallet.coinPublicKey); // ZK coin public key
console.log(wallet.encryptionPublicKey); // encryption public key
const balance = await wallet.getBalance();
const { walletProvider, midnightProvider } = wallet.providers();
await wallet.close();

Since

0.7.0

Properties

address

readonly address: string

Defined in: src/Wallet.ts:286

Primary wallet address


coinPublicKey

readonly coinPublicKey: string

Defined in: src/Wallet.ts:288

ZK coin public key (for receiving shielded transfers)


effect

readonly effect: object

Defined in: src/Wallet.ts:330

Effect versions of wallet operations.

close()

close(): Effect<void, WalletError>

Returns

Effect<void, WalletError>

deregisterDust()

deregisterDust(options?): Effect<RegisterDustResult, WalletError>

Parameters
options?

RegisterDustOptions

Returns

Effect<RegisterDustResult, WalletError>

getBalance()

getBalance(): Effect<WalletBalance, WalletError>

Returns

Effect<WalletBalance, WalletError>

providers()

providers(): Effect<WalletProviders, WalletError>

Returns

Effect<WalletProviders, WalletError>

registerDust()

registerDust(options?): Effect<RegisterDustResult, WalletError>

Parameters
options?

RegisterDustOptions

Returns

Effect<RegisterDustResult, WalletError>

shield()

shield(amount, options?): Effect<ShieldResult, WalletError>

Parameters
amount

bigint

options?

ShieldOptions

Returns

Effect<ShieldResult, WalletError>

unshield()

unshield(amount, options?): Effect<ShieldResult, WalletError>

Parameters
amount

bigint

options?

ShieldOptions

Returns

Effect<ShieldResult, WalletError>


encryptionPublicKey

readonly encryptionPublicKey: string

Defined in: src/Wallet.ts:290

Encryption public key (for encrypted communication)


source

readonly source: "seed" | "browser"

Defined in: src/Wallet.ts:284

How this wallet was created


type

readonly type: "connected"

Defined in: src/Wallet.ts:282

Discriminator for MidnightWallet union

Methods

[asyncDispose]()

[asyncDispose](): Promise<void>

Defined in: src/Wallet.ts:327

Support await using wallet = await Wallet.fromSeed(...)

Returns

Promise<void>


close()

close(): Promise<void>

Defined in: src/Wallet.ts:325

Close wallet and release resources.

Returns

Promise<void>


deregisterDust()

deregisterDust(options?): Promise<RegisterDustResult>

Defined in: src/Wallet.ts:323

Deregister previously-registered NIGHT UTXOs from DUST generation. Same backend constraints as registerDust.

Parameters

options?

RegisterDustOptions

Returns

Promise<RegisterDustResult>


getBalance()

getBalance(): Promise<WalletBalance>

Defined in: src/Wallet.ts:293

Get current wallet balance across all account types.

Returns

Promise<WalletBalance>


providers()

providers(): WalletProviders

Defined in: src/Wallet.ts:295

Get WalletProvider and MidnightProvider for contract operations.

Returns

WalletProviders


registerDust()

registerDust(options?): Promise<RegisterDustResult>

Defined in: src/Wallet.ts:318

Register unshielded NIGHT UTXOs for DUST generation. On Midnight, DUST is produced over time from registered NIGHT holdings and is used to pay tx fees. Required once per wallet after being funded via a faucet, before any tx can be sent.

Currently only supported on seed-backed wallets — the Lace DApp Connector does not expose programmatic DUST registration. Lace users should register via the extension UI directly.

Parameters

options?

RegisterDustOptions

Returns

Promise<RegisterDustResult>


shield()

shield(amount, options?): Promise<ShieldResult>

Defined in: src/Wallet.ts:302

Move NIGHT (or any token) from the unshielded pool into the shielded pool of this same wallet. Required before interacting with shielded contracts (receiveShielded) if the wallet was funded via a faucet, which only deposits to the unshielded address.

Parameters

amount

bigint

options?

ShieldOptions

Returns

Promise<ShieldResult>


unshield()

unshield(amount, options?): Promise<ShieldResult>

Defined in: src/Wallet.ts:307

Move NIGHT (or any token) from the shielded pool back into the unshielded pool of this same wallet. The inverse of shield.

Parameters

amount

bigint

options?

ShieldOptions

Returns

Promise<ShieldResult>