- 빌드 환경
- 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.
키가 보관되는 위치
지출 키는 지갑의 유일한 비밀입니다. 계정도 없고 사본을 보관하는 서버도 없습니다. 키를 잃으면 아무도 복구할 수 없으므로, 지갑이 키를 보여 줄 때 저장해 두십시오.
앱에서 Swap
0.7.1부터 휴대폰 앱에도 확장 프로그램과 데스크톱 앱에 있는 Swap 화면이 제공됩니다. 지갑을 벗어나지 않고 durian.market 풀을 통해 RAND와 토큰을 거래할 수 있습니다. 프로그램 호출의 증명과 지출 승인은 휴대폰이 직접 생성하며, 이를 위해 약 1.5 GB의 메모리가 필요합니다. 대규모 증명은 RandProtocol 프로버가 생성합니다. 수령 금액은 정확히 확정되며, 풀의 상태가 먼저 변동되면 아무것도 전송되지 않고 새로운 견적을 받게 됩니다.
App Store 등록이 승인될 때까지
- Apple은 TestFlight 또는 App Store를 통해서만 앱을 설치하므로, iOS용으로 내려받을 파일은 없습니다.
- clients 저장소에서 Xcode 16 이상으로 빌드하여 시뮬레이터 또는 본인의 기기에서 실행하십시오.
- randpay: 링크는 입력이 미리 채워진 전송 화면을 엽니다. 확인하기 전에는 아무것도 전송되지 않습니다.
툴체인: Rust 1.98.1, 저장소에 고정되어 있으며 rustup이 설치합니다. 빌드 가이드는 클린 머신에서 시작하여 모든 클라이언트를 다룹니다. 소스 디렉터리: ios/, core/.
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에서 열립니다.
전송하기 전에
- 체인
- 공개 엔드포인트는 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에서도 가져올 수 있습니다.