Manage local Solana wallets, inspect balances, transfer assets, sell Pump.fun / PumpSwap tokens, and operate Squads v4 multisig workflows from one desktop-ready interface.
- Wallet management: create wallets, import
keystore.json, save local wallets, switch the active wallet, rename, delete, and export keystores. - Asset view: show wallet address, SOL balance, SPL Token / Token-2022 assets, token names, and token icons.
- Transfers and WSOL: send SOL, send tokens, create WSOL ATA, wrap SOL, unwrap WSOL, and close WSOL ATA.
- Pump trading: Pump.fun / PumpSwap sell flows with current-wallet asset shortcuts.
- Multisig and programs: Squads v4 multisigs, proposals, upgrade buffers, program deployment, and Program queries.
- Nonce: create Solana durable nonce accounts.
- Local security: Rust API binds to
127.0.0.1, sensitive request bodies are encrypted, and wallet passwords are not saved in the frontend. - Desktop app: package with Tauri 2 for macOS, Windows, and Linux.
- Node.js 18+ and npm
- Rust stable and Cargo
- Network access to Solana RPC endpoints
- Tauri 2 system dependencies for desktop packaging
- Docker is optional
git clone https://github.com/0xfnzero/sol-safekey-ui.git
cd sol-safekey-ui
npm installOr:
make installStart the web UI and local Rust API together:
npm run dev:stackOr:
make devDefault URLs:
- English:
http://127.0.0.1:3840/en/ - Chinese:
http://127.0.0.1:3840/zh/ - Rust API:
http://127.0.0.1:3841
Run services separately:
npm run dev # Next.js UI on port 3840
npm run backend # Rust API on port 3841npm run desktop:devOr:
make desktop-devWeb and Rust API:
npm run build
cargo build --releaseOr:
make buildTauri desktop app:
npm run desktop:buildPackage by platform:
make desktop-build-macos
make desktop-build-windows
make desktop-build-linuxDocker:
make docker-build
make docker-runOpen http://127.0.0.1:3841.
npm run lint
npm exec tsc -- --noEmit
cargo checkOr:
make checksrc/app/[locale]/page.tsx # Main UI
src/messages/ # Chinese and English messages
main.rs # Rust local API
wallet_store.rs # Local wallet store
squads_v4.rs # Squads v4 helpers
src-tauri/ # Tauri desktop app
- Back up every
keystore.jsonand keep passwords safe. - Wallet passwords are not stored in the frontend.
- Plain private-key input and private-key export are disabled by default and should only be enabled on a trusted local machine for debugging.