Rand Protocol
流動

Rand Wallet for Android

原生 Java 應用程式,建基於共用的 Rust 錢包核心,以原生程式庫形式載入。花費密鑰以 Android Keystore 所持有的密鑰加密,備份功能已關閉,正式版本只使用 HTTPS 通訊。

Google Play 上架審核中。在通過審核前,請使用下方下載的 0.8.0 版本安裝,或從原始碼建置。

Rand Wallet 圖示
建置技術
Java
發佈渠道
Google Play,先行公開測試
系統要求
Android 8(API 26)或以上版本,arm64 或 x86_64
發送
在手機上生成證明,或透過 RandProtocol prover 生成
下載

版本 0.8.0

檔案附於 GitHub 上的 v0.8.0 版本發佈;此處的按鈕只是指向這些檔案的連結,本網站不提供任何檔案下載。

  1. 在手機上開啟該檔案,並於 Android 提示時允許安裝,或在電腦上對該檔案執行 adb install。
  2. 此安裝包以本項目自有的密鑰簽署。如需核對,apksigner verify --print-certs 應輸出 SHA-256 75:22:2E:BF:22:D3:95:80:A5:11:2A:AC:B7:EC:2E:03:93:91:07:77:96:E0:45:1D:7B:CF:E3:7E:FA:06:53:52。
  3. Google Play 使用其自有密鑰簽署,因此待上架後,Android 會要求你先移除此版本,才可安裝該版本。請先在「設定」中匯出你的密鑰檔案。
Android 安裝包(.apk)
arm64 及 x86_64 · 11.9 MB
下載
rand-wallet-0.8.0-android.apk
SHA-256 400d5c4873cc70c7893a4a0bed36eecf261bd1c9bb9578c6544d8ffbf7e976d7
校驗已下載的檔案
SHA256SUMS
# 將 SHA256SUMS 下載至與檔案相同的資料夾後使用
shasum -a 256 -c SHA256SUMS --ignore-missing     # macOS
sha256sum -c SHA256SUMS --ignore-missing         # Linux

# 或列印單一檔案的校驗和,並與上方的數值比對
shasum -a 256 rand-wallet-0.8.0-android.apk

校驗和相符,表示該檔案與所發佈的檔案一致,但並不表示該檔案是由原始碼建置而成:目前的建置尚未能做到逐位元重現,如果你需要確認這一點,請自行建置。

發送

在手機上生成證明,或透過 RandProtocol prover 生成

在記憶體約 8 GB 的手機上,應用程式會於裝置上為轉賬生成證明,過程中以前景服務運行並顯示通知,因此切換應用程式不會中斷證明。

一次 bundle 證明的記憶體用量峰值約為 6.2 GB。若手機記憶體較少,Android 會在證明進行途中終止應用程式,因此覆核步驟會按裝置本身的數據發出警告。手機隨後預設使用 RandProtocol prover,或透過 https 使用你自己的 rand-prover(設定 → Prover),並在 prover 生成證明的同時構建該筆轉賬。

無法自行生成證明的裝置,預設使用 RandProtocol 的 prover:由validator營運的數部機器(目前共四部,位於 https://prover.randprotocol.org 之下),不收取費用。自 0.6.9 起,每部機器各有獨立密鑰,錢包會將其固定(pin),並於首次發送前向你說明。為某筆發送生成證明的機器,會收到錢包的查看密鑰(viewing key)及一次性 salt:其營運者可讀取該錢包的完整歷史,包括所有已收和已發的款項,但無法花費資金。花費密鑰絕不會離開你的裝置,並由裝置自行生成那個小型的授權證明。如要更保障私隱,可在設定 → Prover 中選用你自己的 prover,錢包此後會一律優先使用;錢包在提交每個證明之前,都會先行驗證。

配對 prover 的逐步說明:docs/prover.md。

你的密鑰

密鑰存放於何處

花費密鑰是錢包唯一的機密。系統沒有帳戶,也沒有伺服器保存副本:密鑰一旦遺失,無人能夠復原,因此錢包顯示密鑰時,請務必妥善保存。

花費密鑰
存放於 EncryptedSharedPreferences:以 Android Keystore 所持有的主密鑰進行 AES-256-GCM 加密。查看密鑰絕不儲存,只在需要時推導。
解鎖
以生物特徵驗證提示解鎖,並以裝置憑證作後備;於「設定」所定的時間間隔後自動上鎖。
備份
已停用,因此保險庫(vault)絕不會經 Google 的備份服務離開手機。
Note
應用程式專屬的快取,存放你的 note 以及每筆付款的交易密鑰,可透過重新掃描重建。正式版本拒絕明文 HTTP。
另有

在應用程式內兌換

自 0.7.1 起,手機應用程式設有擴充功能及桌面應用程式已有的兌換畫面:無需離開錢包,即可透過 durian.market 資金池買賣 RAND 及代幣。程式呼叫的證明及支出授權由手機自行生成,約需 1.5 GB 記憶體,而大型證明則由 RandProtocol 的證明者(prover)生成。所收取的數額準確無誤;若資金池先行出現變動,則不會發送任何款項,並會重新報價。

從原始碼建置

或自行構建

  1. 從 clients 儲存庫構建 debug APK,並以 adb 安裝,對象可以是手機,或 arm64 或 x86_64 模擬器(API 36)。
  2. 在模擬器中,你電腦上的節點位於 http://10.0.2.2:8545;debug 版本只容許對該地址及 localhost 使用明文連線。

工具鏈:Rust 1.98.1,已在代碼庫中固定版本,由 rustup 安裝。建置指南涵蓋由全新機器開始建置每個客戶端的步驟。原始碼目錄: android/, core/.

Rand Wallet for Android
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-android.sh   # → android/app/src/main/jniLibs/(JDK 17、SDK 36、NDK 27)
cd android && ./gradlew assembleDebug   # → app/build/outputs/apk/debug/app-debug.apk
adb install -r app/build/outputs/apk/debug/app-debug.apk
所有客戶端

在各平台上的功能

建立錢包
在裝置上生成的花費密鑰,只顯示一次供你保存,並由它衍生出 rand1… 地址。可匯入現有密鑰,或 rand CLI 的 wallet.key.json;所有客戶端匯出的都是同一個檔案。
接收與發送
你的餘額是只有你的密鑰才能開啟的 note 的集合;錢包會掃描承諾樹以找出這些 note。轉移 RAND 或任何已列出的 RPL 代幣,是由一份證明授權的一個 4 入 4 出捆綁交易。沒有人能得知發送者、接收者、金額或所轉移的資產。
水龍頭
在設有開放水龍頭的 testnet 上,輕按一下即可鑄造 100 RAND 至只有你能開啟的 note 中。
只披露你選擇披露的內容
複製你的檢視密鑰,並在 RandScan 開啟「My history」,即可查看你發送或接收的每一個 note;或複製單筆付款的交易密鑰,只披露該筆付款而不涉及其他。瀏覽器端的區塊瀏覽器在你的瀏覽器中解密,絕不會將密鑰發送到任何地方。

查看密鑰與交易密鑰會在 randscan.org 開啟。

testnet 說明

發送任何款項之前

鏈
公開端點現時提供 chain 21 服務,自 2026 年 10 月 12 日 10:31 UTC 起上線(於 fullnode v0.8.0 切出)。錢包核心內置 fullnode v0.8.0 (c0878c3),並拒絕任何其他鏈:chain 21 運行約束集 9,因此 0.7.x 版本的錢包無法在其上發送交易,而本版本亦無法在 chain 20 上發送交易。密鑰和地址可沿用;曾掃描 chain 20 的錢包會顯示一次不同鏈的橫幅,並由 chain 21 的創世區塊重新掃描。跨鏈橋的存款和提款維持 0.1% 的 zUSD 手續費,錢包會在你提款前顯示該費用。
RPC 端點
「設定」→「網絡」。預設為 https://rpc.randprotocol.org;任何你能連線的 rand-node RPC 均可使用,已儲存的 URL 在保留前會經過檢查
證明生成
一份捆綁證明的記憶體用量峰值約為 6.2 GB,在筆記型電腦 CPU 上約需一分鐘
狀態
實驗性 testnet 軟件。未經審計。testnet 上的 RAND 沒有真實價值
授權條款
僅限 GPL-3.0,與每個客戶端所連結的全節點 crate 相同
其他客戶端

一個錢包,全平台通用

各處使用相同的密鑰檔案、地址格式和規則:在此建立的錢包可匯入任何其他客戶端,以及 rand CLI。