@lazorkit/wallet
v2.0.1
Published
Lazorkit Wallet SDK for Solana
Readme
LazorKit React SDK
LazorKit allows you to build Passkey-native Solana applications.
Traditionally, crypto requires users to manage complex seed phrases. LazorKit replaces this with the standard biometrics users already know: FaceID, TouchID, or Windows Hello.
Features
- Seedless: Onboard users instantly with Passkeys
- Gasless: Sponsored transactions via Paymaster
- Smart: Programmable account logic (PDAs)
- Secure: Hardware-bound credentials
Installation
npm install @lazorkit/wallet @coral-xyz/anchor @solana/web3.jsUsage
import { LazorkitProvider, useWallet } from '@lazorkit/wallet';
import { SystemProgram, LAMPORTS_PER_SOL, PublicKey } from '@solana/web3.js';
// 1. Wrap App with Provider
export const App = () => (
<LazorkitProvider
rpcUrl={process.env.LAZORKIT_RPC_URL}
portalUrl={process.env.LAZORKIT_PORTAL_URL}
paymasterConfig={{ paymasterUrl: process.env.LAZORKIT_PAYMASTER_URL }}
>
<WalletContent />
</LazorkitProvider>
);
// 2. Use Hook
function WalletContent() {
const { connect, signAndSendTransaction, isConnected } = useWallet();
const handleTx = async () => {
// Connect (Auto-reconnects)
if (!isConnected) await connect();
// Sign and Send
const sig = await signAndSendTransaction({
instructions: [
SystemProgram.transfer({
fromPubkey: smartWalletPubkey,
toPubkey: new PublicKey('RECIPIENT'),
lamports: LAMPORTS_PER_SOL * 0.1
})
],
transactionOptions: { feeToken: 'USDC' }
});
console.log("Tx:", sig);
};
return <button onClick={handleTx}>Execute Transaction</button>;
}API Reference
useWallet()
connect()
Connects to the wallet. Auto-reconnects if session exists.
Returns
Promise<WalletAccount>
disconnect()
Disconnects the wallet.
Returns
Promise<void>
signMessage(message)
Signs a message string key.
Parameters
| Param | Type | Description |
|---|---|---|
| message | string | Message content |
Returns
Promise<{ signature: string, signedPayload: string }>
signAndSendTransaction(payload)
Signs and sends transaction via Paymaster.
Parameters
| Param | Type | Description |
|---|---|---|
| payload.instructions | TransactionInstruction[] | Instructions |
| payload.transactionOptions | object | Optional config |
| transactionOptions.feeToken | string | Token address for gas fees (e.g. USDC). |
| transactionOptions.computeUnitLimit | number | Max compute units. |
| transactionOptions.addressLookupTableAccounts | AddressLookupTableAccount[] | Signup tables for v0 txs. |
| transactionOptions.clusterSimulation | 'devnet' \| 'mainnet' | Network for simulation. |
Returns
Promise<string> - Transaction signature.
