Rand Protocol
浏览器扩展

Rand Wallet for Firefox

与 Chrome 版本是同一个扩展,出自同一份代码,仅为 Firefox 重新打包。其中没有任何压缩混淆或打包合并的内容,因此 Mozilla 审核的代码就是你运行的代码。

Firefox 附加组件 上架审核中。在通过审核之前,请使用下方下载的 0.8.0 版本安装,或从源码构建。

Rand Wallet 图标
构建工具
JavaScript · Manifest V3
分发渠道
addons.mozilla.org
系统要求
Firefox 140 或更高版本
发送
通过 RandProtocol prover 发送,或使用你自己的 prover
下载

版本 0.8.0

这些文件附在 GitHub 上的 v0.8.0 发布版本中;此处的按钮只是指向它们的链接,本站不提供任何文件。

  1. 打开 about:debugging,选择 This Firefox → Load Temporary Add-on…,然后选取该 zip 文件。
  2. 临时附加组件会在 Firefox 重启时被移除。正式版 Firefox 只会永久安装经 addons.mozilla.org 签名的附加组件,因此在上架之前只能这样使用。
  3. Firefox 在安装时授予扩展的站点权限。如果你当时拒绝了 randbridge.org,之后可在该扩展的权限面板中授予。
Firefox 附加组件(.zip)
Firefox 140 或更高版本 · 2.7 MB
下载
rand-wallet-firefox-0.8.0.zip
SHA-256 2982e605ba06dfac9de02e67652e3afc6d8b4d4ce20cb17225fe5c8335a503c6
校验您下载的文件
SHA256SUMS
# 将 SHA256SUMS 下载到与该文件相同的文件夹后执行
shasum -a 256 -c SHA256SUMS --ignore-missing     # macOS
sha256sum -c SHA256SUMS --ignore-missing         # Linux

# 或者输出单个文件的校验和,并与上方的值比对
shasum -a 256 rand-wallet-firefox-0.8.0.zip

校验和一致,说明该文件就是当初发布的那一个;但这并不说明该文件是由源码构建而来:这些构建目前还无法做到逐位可复现,因此如果您需要确认这一点,请自行构建。

发送

通过 RandProtocol prover 发送,或使用你自己的 prover

一个 bundle 证明的内存峰值约为 6.2 GB,而浏览器只给 WebAssembly 4 GiB,因此该扩展从不自行生成证明。它构建转账,由 prover 生成证明(默认是 RandProtocol 的 prover,或你配对的 prover),在本地检查证明后再提交。

开箱即用时,它在一次性提示之后使用 RandProtocol prover。若不想让其获知你的历史,可在同一台计算机上配对 Rand Wallet 桌面应用(在其 Settings → Prove for my other devices 中获取链接,再粘贴到扩展的 Settings → Prover),或配对你在服务器上运行的 rand-prover。

无法自行生成证明的设备默认使用 RandProtocol 的 prover:由 validator 运营的几台机器(目前四台,位于 https://prover.randprotocol.org 之下),不收取费用。自 0.6.9 起,每台 prover 都有各自的密钥,钱包会将其固定(pin),并在首次发送前向你说明。为一笔发送生成证明的那台机器会收到钱包的 viewing key 和一次性 salt:其运营方可以读取该钱包的全部历史,包括每一笔收到和发出的付款,但无法花费。花费密钥(spend key)从不离开你的设备,由设备自己生成那个小型的授权证明。若要更高的隐私性,请在 Settings → Prover 中选择你自己的 prover,此后它将始终被优先使用;钱包在提交每个证明之前都会对其进行检查。

配对 prover 的分步说明:docs/prover.md。

您的密钥

密钥存放在哪里

花费密钥(spend key)是钱包唯一的机密。这里没有账户,也没有服务器保存副本:密钥一旦丢失,任何人都无法恢复,因此在钱包向您显示密钥时请妥善保存。

花费密钥
在钱包核心内部使用操作系统提供的随机数生成,仅以 PBKDF2-SHA256 保护的 AES-256-GCM 保险库形式存储。解锁期间,它保存在浏览器的会话存储中:浏览器关闭时会被清空,网页也无法读取。
屏幕上的密钥
viewing key 和花费密钥导出功能都需要重新进行一次密码校验,其开销与解锁相当。任何密钥都不会被写入 URL、控制台或扩展的持久存储。
自动锁定
使用浏览器闹钟而非页面计时器,因此即使弹出窗口已关闭、后台 worker 已进入休眠,钱包也会按时锁定。
网络
仅限 Settings 中的 RPC URL。将其指向新的地址时,会请求访问该单一主机的权限。没有分析统计,也没有远程代码:扩展只运行安装时自带的脚本。
另见

Swap,以及面向 Rand 站点的 window.rand

钱包自带的 Swap 界面通过 durian.market 资金池交易 RAND 和代币:它从链上的资金池获取精确报价,然后自行生成证明并发送该兑换交易,durian.market 也可以通过 window.rand.invoke 请求同样的兑换。

randbridge.org 会将该扩展识别为 window.rand,并可请求连接。连接需要钱包处于解锁状态并经你批准该站点,已连接的站点只会获知你的地址及其桥接接收方哈希,仅此而已。

从源码构建

或者自己构建

  1. 从下方的 clients 仓库构建并打包扩展。
  2. 打开 about:debugging,选择 This Firefox → Load Temporary Add-on…,然后选取 dist/firefox/manifest.json。

工具链:Rust 1.98.1,已在仓库中固定版本,由 rustup 安装。构建指南涵盖从一台干净的机器开始构建每一个客户端。源码目录: firefox/, extension/, ui/, core/.

Rand Wallet for Firefox
bash
git clone --recurse-submodules https://github.com/randprotocol/clients.git && cd clients
git checkout v0.8.0 && git submodule update --init   # 正式版本;core/vendor/fullnode @ v0.8.0 (c0878c3)
core/scripts/build-wasm.sh   # → extension/shared/core/(会安装 wasm-bindgen-cli)
firefox/pack.sh   # → dist/firefox/ 和 dist/rand-wallet-firefox-<version>.zip
npx web-ext lint --source-dir dist/firefox
所有客户端

各平台上的功能

创建钱包
在设备上生成花费密钥,仅显示一次供你保存,并由它派生出 rand1… 地址。可导入已有密钥,或来自 rand CLI 的 wallet.key.json;所有客户端导出的都是同一种文件。
接收与发送
你的余额就是只有你的密钥才能打开的 note 的集合;钱包通过扫描承诺树来找到它们。RAND 或任何已上架 RPL 代币的转账,都是由一个证明授权的 4 入 4 出捆绑包。无人能得知发送方、接收方、金额,或转移的是哪种资产。
水龙头
在开放水龙头的 testnet 上,点一下即可铸造 100 RAND 到只有你能打开的 note 中。
只披露你选择的内容
复制你的查看密钥,在 RandScan 上打开“My history”,即可看到你发送或接收的每一个 note;或复制某一笔付款的交易密钥,只披露这一笔付款,不涉及其他内容。浏览器端的解密在你的浏览器中完成,密钥绝不会发送到任何地方。

查看密钥(viewing key)和交易密钥(transaction key)会在 randscan.org 上打开。

testnet 说明

发送任何资金之前

链
公共端点提供链 21 的服务,自 2026 年 10 月 12 日 10:31 UTC 起上线(基于 fullnode v0.8.0 切出)。钱包核心内置 fullnode v0.8.0 (c0878c3),并拒绝任何其他链:链 21 运行约束集 9,因此 0.7.x 版钱包无法在其上发送交易,而本版本也无法在链 20 上发送交易。密钥和地址可沿用;曾扫描链 20 的钱包会显示一次不同链的横幅,并从链 21 的创世区块重新扫描。跨链桥的存款和提款仍收取 0.1% 的 zUSD 手续费,钱包会在您提款前显示该费用。
RPC 端点
设置 → 网络。默认为 https://rpc.randprotocol.org;任何你能访问的 rand-node RPC 都可使用,保存的 URL 在保留前会经过检查
证明生成
一次捆绑包证明的内存峰值约为 6.2 GB,在笔记本电脑 CPU 上耗时约一分钟
状态
实验性 testnet 软件。未经审计。testnet 上的 RAND 不具有任何实际价值
许可证
仅限 GPL-3.0(GPL-3.0-only),与每个客户端所链接的全节点 crate 相同
其他客户端

一个钱包,所有平台

各处使用相同的密钥文件、地址格式和规则:在此创建的钱包可以导入任何其他客户端以及 rand CLI。