A local-first, self-custody crypto wallet for desktop and mobile with secure key management, dApp signing, trading signals, DeFi research, and Squads multisig.
中文 | English | Website | Telegram | Discord
Download desktop installers and the compiled Chrome extension 0.3.10 ZIP from Assets on the same Release page. Extract FnzSafe-extension-*.zip, open chrome://extensions, enable Developer mode, and choose Load unpacked with the directory containing manifest.json. No Node installation or compilation is needed. Do not use GitHub's automatic Source code downloads. Keep the installation directory stable when updating to preserve the extension ID and Passkey. See extension documentation.
FnzSafe is an open-source multi-chain wallet for Solana and EVM-compatible networks, with experimental Bitcoin and TRON account adapters. Bitcoin and TRON currently support account derivation and address validation, not transfers or broadcasting. It combines a Tauri desktop wallet, a Flutter mobile wallet, and a Rust wallet SDK/CLI. Private keys remain in encrypted local keystores while wallet operations, dApps, crypto signals, and market research share one working surface.
| Crate | Version | Role |
|---|---|---|
fnzero-safe-core |
0.1.8 | Solana keystore / CLI / bot helper |
fnzero-safe-chain-core |
0.1.0 | Shared chain adapter traits |
fnzero-safe-evm-services |
0.1.1 | EVM keystore unlock (universal + EVM JSON) |
fnzero-safe-core = "0.1.8"
fnzero-safe-chain-core = "0.1.0"
fnzero-safe-evm-services = "0.1.1"Universal mnemonic exports that embed metadata.evm_keystore_json unlock via:
use fnzero_safe_evm_services::unlock_private_key_from_document;
let (wallet, sk) = unlock_private_key_from_document(&std::fs::read_to_string("wallet.json")?, "password")?;| Area | Included capabilities |
|---|---|
| Wallet lifecycle | Create a universal mnemonic wallet, import a mnemonic/private key/Keystore, switch and rename accounts, export encrypted backups or private keys, change passwords, and remove local wallets |
| Solana wallet | SOL, SPL Token, and Token-2022 balances; token metadata; receive/send flows; token actions; transaction history; mainnet, devnet, testnet, and custom RPC endpoints |
| EVM wallet | One derived address across EVM networks; native and ERC-20 assets; EIP-1559 transfers; Etherscan V2 transaction history when configured; built-in networks and custom EVM RPC configuration |
| Bitcoin and TRON | Taproot with TP/Phantom-compatible private-key import by default, optional BIP84 Native SegWit, plus BIP44 TRON derivation; desktop BTC/TRX balance and native transfer flows are enabled |
| dApp wallet | Built-in Solana dApp browser, provider injection, message/transaction signing, deep links, transaction previews, automatic chain selection, and revocable connected-app permissions |
| Wallet security | Argon2id + AES-256-GCM keystores, Touch ID/biometric confirmation, TOTP, Triple Wallet (3FA), auto-lock, sensitive-log filtering, and normal signing without returning decrypted private keys to the frontend |
| Shared operations | SOL/SPL/ERC-20 transfers, WSOL wrap/unwrap/close, durable nonce accounts, address book, Squads v4 multisig, and SOL/SPL payment proposals |
| Developer tools | Solana Program deploy/upgrade/build, generic function calls, external signing requests, deployment history, Rust SDK, CLI, local API, and bot integration |
- Chain-aware trading: separate Fomo and Swap actions, prefilled token contracts, Jupiter routing on Solana, configured DEX routing on EVM chains, and Pump.fun/PumpSwap sell and cashback tools.
- Twitter and Fomo signals: browser-backed Twitter/X collection without the Twitter API, live Fomo BUY/SELL events, KOL filters, token resolution, translation, reconnect controls, background refresh, and SQLite caching.
- Token intelligence: chain, contract, price, market cap, liquidity, interval performance, mention counts, KOL counts, and direct Fomo/Swap actions.
- DeFi analytics: cached DefiLlama chain/protocol volume and revenue rankings with stale-while-revalidate loading.
- AI research: local evidence retrieval with configurable AI providers for signal and DeFi analysis; API keys stay in secure system storage.
- Binance Agent OS: optional official Agentic MCP login through Binance OAuth, plus AI-assisted Spot workflows with secure API credential storage, Testnet-first defaults, exchange-rule validation, short-lived previews, and explicit per-action confirmation.
- Platforms: macOS and Windows desktop packages, iOS and Android apps, and an interactive Rust CLI.
All screenshots below are from the desktop client with locally loaded wallet and research data.
| Wallet assets | Solana wallet | Wallet accounts |
|---|---|---|
![]() |
![]() |
![]() |
| Solana trading | DApp store | Twitter signals |
![]() |
![]() |
![]() |
| Fomo stream | DeFi analytics | Token market |
![]() |
![]() |
![]() |
- Rust 1.89+
- Node.js 22-24 and npm 10+
- macOS for macOS/iOS builds; Windows with MSVC build tools for Windows packages
- Flutter 3.24+, Xcode, or Android SDK/NDK/JDK 17 only when working on mobile
Desktop:
npm --prefix apps/desktop install
make devmake dev starts the Tauri app, the Next.js UI on 127.0.0.1:3840, and the local API on 127.0.0.1:3841. Stop all local development processes with make stop.
Set FNZERO_SAFE_ETHERSCAN_API_KEY before startup to enable Etherscan V2 history on matching built-in EVM networks. Without a valid key, those chain descriptors do not advertise transactions:history.
Arc Mainnet (5042) and Arc Testnet (5042002) are built in, sharing Ethereum accounts. Native balances and gas use USDC with 18 decimals; the ERC-20 USDC interface is not counted twice. Arc history indexing, bridging, and swaps are not yet integrated. See the support matrix.
Mobile:
cd apps/mobile
./tool/bootstrap_mobile.sh
flutter pub get
./tool/generate_bridge.sh
flutter run -d ios # or an Android device IDCLI:
cargo run -p fnzero-safe-core --features full -- startArtifacts are copied into release/<platform>/.
Desktop packaging targets also compile and package the extension (Node 22–24 and Python 3 required). Upload desktop installers, release/extension/FnzSafe-extension-*.zip, and their checksum files to the same Release's Assets. Desktop and extension keep independent component versions.
make package-extension
make package-macos
make package-windows
make package-ios
make package-androidUse make package to build every platform supported by the current host. Signed iOS packages require an Apple developer configuration; Android release signing requires apps/mobile/android/key.properties; Windows packages should be built on Windows.
Public macOS packages must be signed with a Developer ID Application certificate and notarized by Apple; Apple Development and ad-hoc signatures are rejected by Gatekeeper. Set APPLE_SIGNING_IDENTITY and provide notarization credentials through either APPLE_ID, APPLE_PASSWORD, and APPLE_TEAM_ID, or APPLE_API_KEY, APPLE_API_ISSUER, and APPLE_API_KEY_PATH, before running make package-macos. The command checks the configuration before packaging and verifies the signature, stapled ticket, and Gatekeeper assessment afterwards. For a local-only unsigned build, run make build-macos; do not publish that artifact as a download.
cargo fmt --all -- --check
cargo test --workspace
npm --prefix apps/desktop run test:unit
npm --prefix apps/desktop run lintFnzSafe is local-first, but wallet software still carries real risk. Back up encrypted keystores, verify addresses and transaction previews, and never expose the desktop API port through a tunnel or public proxy. Market and signal data is informational, not financial advice.








