Rand Protocol
모바일

Rand Wallet for iOS

XCFramework로 연결된 공유 Rust 지갑 코어 위에 구축한 네이티브 SwiftUI 앱입니다. 지출 키(spend key)는 Face ID 또는 Touch ID 뒤에 있는 iPhone의 Keychain에 보관되며, 앱은 사용자가 선택한 RPC 엔드포인트 외에는 어느 곳과도 통신하지 않습니다.

App Store 등록이 대기 중입니다. 심사를 통과할 때까지는 아래의 소스에서 빌드하십시오.

Rand Wallet 아이콘
빌드 환경
Swift · SwiftUI
배포 경로
테스트 기간에는 TestFlight, 이후에는 App Store
요구 사항
iOS 16 이상
전송
휴대폰에서 증명하거나, RandProtocol 프로버를 통해 증명합니다
전송

휴대폰에서 증명하거나, RandProtocol 프로버를 통해 증명합니다

메모리가 약 8 GB인 휴대폰에서는 앱이 기기에서 직접 전송 증명을 생성합니다. 1~2분 정도 걸리며, 전송 화면은 화면을 켜 둔 상태로 유지하고 앱을 열어 두도록 안내합니다.

번들 증명(bundle proof)은 최대 약 6.2 GB까지 메모리를 사용합니다. 메모리가 이보다 적은 휴대폰에서는 증명 도중 iOS가 앱을 중단시키므로, 검토 단계에서 해당 기기의 실제 수치와 함께 경고를 표시합니다. 이 경우 휴대폰은 기본적으로 RandProtocol 프로버를 사용하거나, https로 연결된 사용자 본인의 rand-prover(Settings → Prover)를 사용하며, 프로버가 증명을 생성하는 동안 휴대폰은 전송 트랜잭션을 구성합니다.

증명을 생성할 수 없는 기기는 기본적으로 RandProtocol 프로버를 사용합니다. 이는 검증자(validator)가 운영하는 몇 대의 머신(현재 4대, https://prover.randprotocol.org 하위)이며 수수료는 없습니다. 0.6.9부터 각 프로버는 고유한 키를 가지며 지갑이 이를 고정(pinning)하고, 지갑은 첫 전송 전에 이 사실을 알립니다. 전송을 증명하는 머신은 지갑의 조회 키(viewing key)와 일회용 솔트(salt)를 받습니다. 해당 운영자는 지갑의 전체 내역, 즉 수신하고 송신한 모든 결제를 읽을 수 있지만 지출은 할 수 없습니다. 지출 키는 기기를 떠나지 않으며, 작은 승인 증명은 기기에서 직접 생성합니다. 더 높은 프라이버시를 원하시면 Settings → Prover에서 본인의 프로버를 선택하십시오. 이 프로버가 항상 우선 사용됩니다. 지갑은 모든 증명을 제출하기 전에 검증합니다.

prover 페어링 단계별 안내: docs/prover.md.

내 키

키가 보관되는 위치

지출 키는 지갑의 유일한 비밀입니다. 계정도 없고 사본을 보관하는 서버도 없습니다. 키를 잃으면 아무도 복구할 수 없으므로, 지갑이 키를 보여 줄 때 저장해 두십시오.

지출 키
Keychain에 보관되며, 기기가 잠금 해제된 동안에만 사용할 수 있고 다른 기기로 동기화되지 않습니다. 조회 키와 주소는 잠금 해제 시 이 키에서 파생되며 저장되지 않습니다.
잠금 해제
Face ID 또는 Touch ID를 사용하며, 대체 수단으로 기기 암호를 사용할 수 있습니다. 앱이 백그라운드로 전환되면 Settings에 지정한 시간이 지난 후 잠기지만, 증명 중에는 잠기지 않습니다.
노트
노트 저장소는 체인 데이터의 캐시이며, 완전한 파일 보호(complete file protection)로 기록되므로 휴대폰이 잠겨 있는 동안에는 읽을 수 없습니다.
프라이버시
프라이버시 매니페스트에는 추적 없음, 수집하는 데이터 없음으로 선언되어 있습니다. 네트워크 호스트는 사용자가 설정한 RPC URL뿐이며, 링크를 누를 때에 한해 randscan.org에 접속합니다.
기타

앱에서 Swap

0.7.1부터 휴대폰 앱에도 확장 프로그램과 데스크톱 앱에 있는 Swap 화면이 제공됩니다. 지갑을 벗어나지 않고 durian.market 풀을 통해 RAND와 토큰을 거래할 수 있습니다. 프로그램 호출의 증명과 지출 승인은 휴대폰이 직접 생성하며, 이를 위해 약 1.5 GB의 메모리가 필요합니다. 대규모 증명은 RandProtocol 프로버가 생성합니다. 수령 금액은 정확히 확정되며, 풀의 상태가 먼저 변동되면 아무것도 전송되지 않고 새로운 견적을 받게 됩니다.

소스에서 빌드

App Store 등록이 승인될 때까지

  1. Apple은 TestFlight 또는 App Store를 통해서만 앱을 설치하므로, iOS용으로 내려받을 파일은 없습니다.
  2. clients 저장소에서 Xcode 16 이상으로 빌드하여 시뮬레이터 또는 본인의 기기에서 실행하십시오.
  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의 집합입니다. 지갑은 커밋먼트 트리를 스캔하여 이를 찾습니다. RAND 또는 등록된 모든 RPL 토큰의 전송은 증명으로 승인되는 4-in-4-out 번들 하나로 이루어집니다. 송신자, 수신자, 금액, 이동한 자산이 무엇인지 아무도 알 수 없습니다.
Faucet
공개 faucet이 열려 있는 testnet에서는 한 번의 탭으로 100 RAND가 사용자만 열 수 있는 note로 발행됩니다.
공개할 내용만 직접 선택
viewing key를 복사하여 RandScan의 My history를 열면 보내거나 받은 모든 note를 볼 수 있으며, 개별 결제의 트랜잭션 키를 복사하면 해당 결제만 정확히 공개할 수 있습니다. 탐색기는 브라우저에서 복호화하며 키를 어디로도 전송하지 않습니다.

조회 키와 트랜잭션 키는 randscan.org에서 열립니다.

testnet 안내

전송하기 전에

체인
공개 엔드포인트는 2026년 10월 12일 10:31 UTC부터 운영 중인 chain 21을 제공합니다(fullnode v0.8.0 기준으로 생성). 지갑 코어는 fullnode v0.8.0 (c0878c3)을 벤더링하며 다른 체인은 거부합니다. chain 21은 constraint set 9를 실행하므로 0.7.x 지갑은 이 체인에서 전송할 수 없고, 이 릴리스는 chain 20에서 전송할 수 없습니다. 키와 주소는 그대로 이어집니다. chain 20을 스캔한 지갑은 다른 체인 배너를 한 번 표시하며, chain 21의 제네시스부터 다시 스캔합니다. 브리지 입금과 출금에는 zUSD로 0.1% 수수료가 부과되며, 지갑은 출금 전에 이 금액을 표시합니다.
RPC 엔드포인트
설정 → 네트워크. 기본값은 https://rpc.randprotocol.org이며, 접근할 수 있는 모든 rand-node RPC를 사용할 수 있고 저장된 URL은 유지되기 전에 검증됩니다
증명 생성
번들 증명은 메모리 사용량이 최대 약 6.2 GB에 이르며 노트북 CPU에서 약 1분이 걸립니다
상태
실험적인 testnet 소프트웨어입니다. 감사를 받지 않았습니다. testnet의 RAND는 실질 가치가 없습니다
라이선스
GPL-3.0-only이며, 모든 클라이언트가 링크하는 full node 크레이트와 동일합니다
다른 클라이언트

하나의 지갑, 모든 플랫폼

어디서나 동일한 키 파일, 주소 형식, 규칙을 사용합니다. 여기서 만든 지갑은 다른 어떤 클라이언트와 rand CLI에서도 가져올 수 있습니다.