Rand Protocol
流動

Rand Wallet for iOS

原生 SwiftUI 應用程式,建基於共用的 Rust 錢包核心,以 XCFramework 形式連結。你的花費密鑰(spend key)存放於 iPhone 的鑰匙圈(Keychain),須經 Face ID 或 Touch ID 解鎖;應用程式只會連接你所選擇的 RPC 端點,不會與其他任何服務通訊。

App Store 上架審核中。在通過審核前,請從下方的原始碼建置。

Rand Wallet 圖示
建置技術
Swift · SwiftUI
發佈渠道
測試期間透過 TestFlight,其後上架 App Store
系統要求
iOS 16 或以上版本
發送
在手機上生成證明,或透過 RandProtocol prover 生成
發送

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

在記憶體約 8 GB 的手機上,應用程式會於裝置上為轉賬生成證明。此過程需時一至兩分鐘,期間「發送」流程會保持螢幕常亮,並提示你保持應用程式開啟。

一次 bundle 證明的記憶體用量峰值約為 6.2 GB。若手機記憶體較少,iOS 會在證明進行途中終止應用程式,因此覆核步驟會按裝置本身的數據發出警告。手機隨後預設使用 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。

你的密鑰

密鑰存放於何處

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

花費密鑰
存放於鑰匙圈(Keychain),僅在裝置解鎖期間可用,且不會同步至其他裝置。查看密鑰及地址於解鎖時由它推導,並不儲存。
解鎖
使用 Face ID 或 Touch ID,並以裝置密碼作後備。應用程式轉入背景後,會於「設定」所定的時間間隔後上鎖,但在生成證明期間絕不會上鎖。
Note
Note 儲存庫是鏈上數據的快取,以完整檔案保護(complete file protection)寫入,因此手機上鎖時無法讀取。
私隱
私隱清單(privacy manifest)聲明不進行追蹤,亦不收集任何數據。唯一的網絡主機是你所設定的 RPC URL,以及你點按連結時開啟的 randscan.org。
另有

在應用程式內兌換

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

從原始碼建置

在 App Store 上架獲批之前

  1. Apple 只會從 TestFlight 或 App Store 安裝應用程式,因此 iOS 並無可供下載的檔案。
  2. 可使用 Xcode 16 或以上版本,從 clients 儲存庫構建並運行,對象可以是模擬器,或你自己的裝置。
  3. randpay: 連結會開啟已預先填妥資料的「發送」畫面;在你確認之前,不會發送任何款項。

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

Rand Wallet for iOS
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-ios.sh   # → ios/Frameworks/RandWalletCore.xcframework
open ios/RandWallet.xcodeproj   # 或使用下文的 xcodebuild 構建

cd ios && xcodebuild -project RandWallet.xcodeproj -scheme RandWallet \
  -destination 'platform=iOS Simulator,name=iPhone 17' build
所有客戶端

在各平台上的功能

建立錢包
在裝置上生成的花費密鑰,只顯示一次供你保存,並由它衍生出 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。