Skip to main content
useWallet reports the wallet EndstateProvider provisions from its wallet config. When the config’s enabled gate is open, the provider mounts the frame and establishes a session automatically, so account populates on its own and status walks idle -> provisioning -> ready. You rarely call ready() directly - useClaim resolves the address for you - but it is there when you need the address explicitly. This version provisions and reports the account; it deliberately exposes no signing surface. Signing arrives in a later minor release.

Example

Returns

WalletAccount | null
The provisioned account ({address}), or null until provisioning resolves. See WalletAccount.
WalletStatus
"unconfigured" when no wallet config was passed to the provider; "idle" when configured but the enabled gate is still closed; "provisioning" while the frame mounts and the session establishes; "ready" once the account exists; "error" when provisioning failed. Branch the UI on this.
Error | null
The failure that moved status to "error", or null. Branch on error.code (an EndstateWalletError carries wallet.* codes), never on the message. wallet.session_expired is the signal to call refresh().
() => Promise<WalletAccount>
Resolves the account, awaiting provisioning already in flight. Rejects with a typed error when no wallet is configured or the gate is closed.
() => Promise<WalletAccount>
Starts a fresh wallet session and returns the account. The remedy for a wallet.session_expired failure.
Date | null
When the current wallet session lapses, or null before one exists. After it passes, calls fail with wallet.session_expired; call refresh().

See also

EndstateProvider

Configure the wallet and its auth gate.

useClaim

Claim into this wallet in a single call.

WalletAccount

The account shape this hook returns.

Wallet

The provisioning lifecycle and the identity credential.