FnzeroSafe UI 是由 fnzero-safe Rust 核心库驱动的本地钱包界面,支持加密 Keystore 钱包、资产和交易记录、SOL 与 Token 转账、WSOL、Pump.fun/PumpSwap 卖出、Nonce 账户、程序部署和 Squads v4 多签。
- 只在可信设备上使用 UI。
- 存入资产前,先备份每个钱包的加密
keystore.json。 - Keystore 和密码应分开保存,密码无法找回。
- 初次学习某项交易操作时,先使用 Devnet。
- 签名前确认网络、RPC、收款地址、Mint、数量和费用。
默认配置只使用已保存的 Keystore 钱包。除非开发者显式启用本机调试选项,否则明文私钥输入和明文私钥导出均处于关闭状态。
在仓库根目录执行:
make dev打开以下任一地址:
- 中文:
http://127.0.0.1:3840/zh/ - English:
http://127.0.0.1:3840/en/
make dev 会先停止旧的本地开发进程,再启动桌面应用、3840 端口的 Next.js 界面和 3841 端口的本地 Rust API。
- 打开 钱包,选择 创建新钱包;也可从 设置 > 钱包工具 进入。
- 输入便于识别的钱包名称。
- 设置 10-20 个字符的密码。
- 选择 创建 Keystore 文件。
- 记录页面显示的公钥,并下载生成的 Keystore。
- 向钱包转入资产前,将 Keystore 和密码分别保存到安全位置。
创建后钱包会保存到本地。UI 保存的是加密 Keystore,不会保存钱包密码。
- 选择 导入钱包。
- 选择 Keystore JSON 文件,或粘贴完整的 Keystore JSON。
- 输入该 Keystore 对应的加密密码。
- 可选择一个本地显示名称。
- 选择 导入 Keystore。
导入时会验证密码,并在本地保存加密钱包。导入不会转移资产,也不会产生链上交易。
通过顶部钱包选择器切换当前钱包。后续新操作默认使用当前钱包。
钱包主页提供:
- SOL 余额,以及 SPL Token / Token-2022 余额。
- 刷新资产:通过当前 RPC 重新加载余额和 Token 元数据。
- 交易记录:每次加载 20 条,界面最多显示最近 100 条。
- 接收:查看或复制钱包地址。
- 发送:发送 SOL 或 Token。
- 交易:进入 Pump.fun 和 PumpSwap 卖出流程。
如果资产未显示,先检查当前网络和 RPC,再刷新资产。
打开 设置 > 钱包账户,可以:
- 修改钱包显示名称,不会改变公钥。
- 输入钱包密码后导出加密
keystore.json。 - 确认已有备份后,删除本地钱包记录。
删除钱包不会删除 Solana 链上账户,也不会转移其中资产,只会移除本地加密记录。之后可使用备份的 Keystore 和正确密码重新导入。
明文私钥导出默认关闭。建议始终使用加密 Keystore 作为备份格式。
在 设置 > Solana RPC 中选择 Mainnet、Devnet、Testnet 或自定义 RPC。
- Mainnet 操作使用真实资产并支付真实费用。
- Devnet 和 Testnet 使用对应测试资产。
- 自定义 RPC URL 必须使用
http或https。 - 已创建的多签和程序记录会保留其创建时的网络。
进行转账、交易、部署或多签操作前,应再次确认当前网络。
- 选择当前钱包,打开 发送 > SOL。
- 确认网络。
- 输入收款地址和 SOL 数量。
- 按提示输入当前钱包的 Keystore 密码。
- 查看执行结果,并在需要时保存交易签名。
钱包中需要保留足够的 SOL 支付交易费。Solana 交易确认后不可撤销。
- 打开 发送 > Token,或从资产列表选择某个 Token。
- 输入收款地址和 Token Mint 地址。
- 等待 UI 通过 RPC 获取 Mint 精度。
- 输入正常显示单位的 Token 数量,并确认网络。
- 输入钱包密码后提交。
必须核对 Mint 地址,不能只看 Token 名称或符号,因为不同 Token 可以使用相同名称。
打开 交易工具 > WSOL,可以:
- 创建钱包的 WSOL 关联 Token 账户。
- 将 SOL 包装为 WSOL。
- 将 WSOL 解包为 SOL。
- 关闭余额为空的 WSOL 账户。
每次操作后应检查余额。关闭账户不能替代解包操作,应先处理其中的 WSOL 余额。
- 从 Token 选择 交易,或进入 Pump 交易工作区。
- 确认 Token Mint 和当前钱包余额。
- 输入卖出数量,或使用余额比例快捷选项。
- 检查滑点和当前网络。
- 输入钱包密码并提交卖出。
已迁移的 Pump.fun Token 可能自动通过 PumpSwap 卖出。价格波动、滑点、优先费和 RPC 状态都会影响最终结果,建议先用小额测试。
在 Nonce 工作区可为当前钱包创建一个或多个持久化 Nonce 账户。UI 会显示创建的 Nonce 地址和交易签名,并按钱包和网络保存在本地。
创建 Nonce 账户需要租金和交易费。外部离线签名流程需要单独备份,本地 Nonce 列表不能替代 Keystore 备份。
高级工作区支持:
- 查询和部署 Solana 程序。
- 创建 Squads v4 多签。
- 创建 SOL 和 Token 转账提案。
- 准备程序升级 Buffer 和升级提案。
- 批准、拒绝和执行提案。
- 通过多签修改程序或 Buffer 权限。
这些操作可能永久影响程序或金库资产。签名前必须确认 Program ID、多签地址、Vault、成员、阈值、提案序号、网络和升级权限,并先在测试环境演练。
默认钱包数据库位于:
apps/desktop/data/fnzero-safe.sqlite3
数据库包含加密钱包记录和本地元数据,并已被 Git 忽略。前端不会持久化钱包密码。本地 UI 或 Tauri 安全桥与 Rust API 之间的敏感请求体会加密传输。
需要牢记的安全边界:
- 数据库不能替代导出的 Keystore 备份。
- 任何同时获得 Keystore 和密码的人都能访问钱包。
- 任何获得明文私钥的人都能支配钱包内全部资产。
- 不要提交
apps/desktop/data/、Keystore、密码、环境文件或导出的私钥。 - API 默认只监听
127.0.0.1,不要将其暴露到不可信网络。
使用 make dev 启动完整服务,并访问 http://127.0.0.1:3841/api/health 检查 API。
确认当前钱包、网络和 RPC,然后选择 刷新资产。如果本地数据库被移动或删除,请重新导入备份的 Keystore。
必须使用加密该 Keystore 时设置的密码。密码区分大小写,应用无法帮助找回。
检查网络、RPC 状态、钱包余额、手续费余额、收款地址或 Mint,以及滑点设置。重复提交可能产生另一笔交易,因此重试前先检查第一次提交的签名状态。
再次运行 make dev。它会在启动前停止旧的本地开发进程。