๐Ÿงช

LazorKit

Devnet
โ† Back to Wallet Adapters
Jupiter

Jupiter Unified Wallet Kit

The Swiss Army Knife wallet adapter used by Jupiter and Meteora

Installation

npm install @jup-ag/wallet-adapter \
  @lazorkit/wallet

Provider Setup

import { useEffect } from 'react';
import { ConnectionProvider } from '@solana/wallet-adapter-react';
import {
  UnifiedWalletProvider,
  UnifiedWalletButton
} from '@jup-ag/wallet-adapter';
import { registerLazorkitWallet } from '@lazorkit/wallet';

const RPC_URL = 'https://api.devnet.solana.com';

function AppProvider({ children }) {
  // Register LazorKit on mount
  useEffect(() => {
    registerLazorkitWallet({
      rpcUrl: RPC_URL,
      portalUrl: 'https://portal.lazor.sh',
      paymasterConfig: {
        paymasterUrl: 'https://kora.devnet.lazorkit.com',
      },
      clusterSimulation: 'devnet',
    });
  }, []);

  return (
    <ConnectionProvider endpoint={RPC_URL}>
      <UnifiedWalletProvider
        wallets={[]}
        config={{
          autoConnect: true,
          env: 'devnet',
          metadata: {
            name: 'My App',
            description: 'My Solana dApp',
            url: 'https://myapp.com',
            iconUrls: ['https://myapp.com/icon.png'],
          },
          theme: 'dark', // 'light', 'dark', or 'jupiter'
        }}
      >
        {children}
      </UnifiedWalletProvider>
    </ConnectionProvider>
  );
}

Using the Hooks

import { useWallet, useConnection } from
  '@solana/wallet-adapter-react';
import { UnifiedWalletButton } from
  '@jup-ag/wallet-adapter';

function MyComponent() {
  const { publicKey, connected, sendTransaction } = useWallet();
  const { connection } = useConnection();

  const handleSend = async () => {
    // Build your transaction
    const tx = new Transaction().add(...instructions);

    // Send via the adapter (works with any wallet!)
    const signature = await sendTransaction(tx, connection);
    console.log('Sent:', signature);
  };

  return (
    <div>
      {/* Jupiter-styled connect button */}
      <UnifiedWalletButton />

      {connected && (
        <button onClick={handleSend}>Send TX</button>
      )}
    </div>
  );
}

Key Points

  • โœ“Jupiter-powered: Used by Jupiter and Meteora in production
  • โœ“Multiple Themes: Light, Dark, and Jupiter themes built-in
  • โœ“Wallet Standard: Automatically discovers LazorKit after registration
  • โœ“Mobile Ready: Built-in Mobile Wallet Adapter support
  • โœ“Gasless for LazorKit: Paymaster auto-handles gas when using LazorKit

Theme Options

dark- Dark theme (active)
light- Light theme
jupiter- Jupiter brand theme
Jupiter Unified Wallet Kit Theme

Try Gasless Transfer

๐Ÿ’ธ

Connect Your Wallet

Click the button below to open the Unified Wallet modal. LazorKit will appear alongside other installed wallets.