LazorKit LogoLazorKit
React SDK

useWallet

API reference for the useWallet hook.

useWallet

The useWallet hook provides methods to interact with the wallet.

import { useWallet } from '@lazorkit/wallet';

connect

Trigger the connection flow. If the user has previously connected, this will try to restore their session automatically without showing a pop-up.

Usage

const { connect } = useWallet();
await connect({ feeMode: 'paymaster' });

Arguments

PropertyTypeRequiredDescription
optionsobjectNoConnection options.
options.feeMode'paymaster' | 'user'NoFee payment mode (default: 'paymaster').

Returns

Promise<WalletInfo> - The connected wallet info object.


disconnect

Signs the user out and wipes any cached session data from local storage.

Usage

const { disconnect } = useWallet();
await disconnect();

Returns

Promise<void>


signMessage

Requests the user to sign a plain text message using their passkey. This is useful for verifying ownership without sending a transaction.

Usage

const { signMessage } = useWallet();
const message = 'Hello LazorKit';
const { signature } = await signMessage(message);

Arguments

PropertyTypeRequiredDescription
messagestringYesThe message content to sign.

Returns

Promise<{ signature: string, signedPayload: string }>


signAndSendTransaction

The core method for executing on-chain actions. It handles signing the transaction with the user's passkey and submitting it via the Paymaster (bundler).

Usage

const { signAndSendTransaction } = useWallet();

const signature = await signAndSendTransaction({
  instructions: [/* ... */],
  transactionOptions: {
    feeToken: 'USDC',
    computeUnitLimit: 500_000
  }
});

Arguments

PropertyTypeRequiredDescription
payloadobjectYesTransaction payload.
payload.instructionsTransactionInstruction[]YesArray of Solana instructions.
payload.transactionOptionsobjectNoConfiguration options.
transactionOptions.feeTokenstringNoToken address for gas fees (e.g. USDC).
transactionOptions.computeUnitLimitnumberNoMax compute units for the transaction.
transactionOptions.addressLookupTableAccountsAddressLookupTableAccount[]NoLookup tables for versioned (v0) transactions.
transactionOptions.clusterSimulation'devnet' | 'mainnet'NoNetwork to use for simulation.

Returns

Promise<string> - The transaction signature.