LazorKit Logo

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.