Files
zeekayandHanzo Dev a72238953d Typecheck on the native compiler, keep 6 for the tools
typescript 7.0.2 is the native compiler and exports no JavaScript API, so tsup's
dts build, typedoc and typescript-eslint cannot read it — packages/ui and
packages/wallet both pinned it bare and both build with tsup. It comes in
aliased as tsgo and does the typechecking; typescript drops to the 6 line so the
tools get their API back.

wallet also gains an ambient declare module '*.css', which TS7 wants for the
rainbowkit and solana stylesheet imports: 0 diagnostics under both compilers,
from 2. ui reports the same 36 under both, all its uninstalled @chakra-ui peer
and one duplicate export.

wallet's package-lock.json is left alone. It already records typescript 5.9.3
against a 7.0.2 pin, and it cannot be regenerated: rainbowkit 2.2.11 peers
wagmi ^2.9.0 while the package asks for ^3.7.7, so every install rewrites the
tree rather than resolving it.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-17 00:42:26 -07:00
..

@luxfi/wallet

Lux Omnichain Wallet SDK - RainbowKit + Solana wallet adapters unified.

Installation

pnpm add @luxfi/wallet

Usage

Basic EVM Setup

import { LuxWalletProvider, ConnectButton } from '@luxfi/wallet'
import '@luxfi/wallet/styles.css'
import { mainnet, polygon, optimism } from 'wagmi/chains'

function App() {
  return (
    <LuxWalletProvider
      appName="My App"
      chains={[mainnet, polygon, optimism]}
    >
      <ConnectButton />
    </LuxWalletProvider>
  )
}

With Solana Support

import { LuxWalletProvider, OmniConnectButton } from '@luxfi/wallet'
import '@luxfi/wallet/styles.css'

function App() {
  return (
    <LuxWalletProvider
      appName="My App"
      chains={[mainnet]}
      enableSolana
      solanaNetwork="mainnet-beta"
    >
      <OmniConnectButton showSolana />
    </LuxWalletProvider>
  )
}

Using Hooks

import { useAccount, useOmniWallet } from '@luxfi/wallet'

function WalletStatus() {
  // EVM only
  const { address, chainId } = useAccount()

  // Both EVM and Solana
  const {
    evmAddress,
    solanaAddress,
    connectedWallets,
    disconnectAll
  } = useOmniWallet()

  return <div>Connected: {connectedWallets.length} wallets</div>
}

Features

  • RainbowKit v2 - Beautiful wallet connection UI
  • Solana Wallet Adapters - Phantom, Solflare, Coinbase, Glow, WalletConnect
  • Unified Hooks - useOmniWallet for cross-chain wallet state
  • Dark/Light Theme - Customizable theming
  • Lux Defaults - Pre-configured for Lux Network

Supported Wallets

EVM

  • MetaMask
  • Rainbow
  • Coinbase Wallet
  • WalletConnect
  • Trust Wallet
  • Ledger
  • Phantom (EVM)
  • OKX Wallet

Solana

  • Phantom
  • Solflare
  • Coinbase Wallet
  • Glow
  • WalletConnect

Configuration

interface LuxWalletConfig {
  appName: string
  appDescription?: string
  appUrl?: string
  appIcon?: string
  projectId?: string // WalletConnect project ID (uses Lux shared by default)
  chains: Chain[]
  enableSolana?: boolean
  solanaNetwork?: 'mainnet-beta' | 'devnet' | 'testnet'
}

License

MIT