Rand Wallet
RAND용 shielded 지갑으로, 플랫폼마다 하나씩 있습니다. 지출 키(spend key)와 rand1… 주소를 생성하고, 사용자 자신의 키로 체인을 스캔하여 노트(note)를 찾으며, 사용자가 들고 있는 기기에서 또는 사용자가 직접 운영하는 prover를 통해 전송을 증명하고, testnet faucet에 자금을 요청하며, randscan.org가 기밀 트랜잭션을 열람하는 데 쓰는 열람 키(viewing key)와 트랜잭션별 키를 제공합니다. 키를 건네주지 않은 사람에게는 사용자의 잔액도, 결제 내역도 보이지 않습니다. 지갑 자체도 예외가 아닙니다. 지갑은 계정을 보유하지 않으며, 오직 사용자의 노트만 보유합니다.
가입하거나 로그인하여 판매 계정에 지갑을 만들면 주소가 곧바로 사용자의 배정분에 등록됩니다. 또는 계정 없이 오프라인으로 바로 여기에서 만들 수도 있습니다.
iOS
스토어 출시 예정- 배포 경로
- 테스트 기간에는 TestFlight, 이후에는 App Store
- 요구 사항
- iOS 16 이상
Android
0.8.0 다운로드- 배포 경로
- Google Play, 우선 오픈 테스트로 제공
- 요구 사항
- Android 8(API 26) 이상, arm64 또는 x86_64
Chrome
0.8.0 다운로드- 배포 경로
- Chrome Web Store, Edge와 Brave에도 설치할 수 있습니다
- 요구 사항
- Chrome 116 이상
Firefox
0.8.0 다운로드- 배포 경로
- addons.mozilla.org
- 요구 사항
- Firefox 140 이상
Windows
0.8.0 다운로드- 배포 경로
- GitHub Releases의 .msi 설치 프로그램
- 요구 사항
- Windows 10 이상, WebView2 런타임 필요, 전송하려면 8 GiB의 메모리 필요
macOS
0.8.0 다운로드- 배포 경로
- GitHub Releases에서 받는 .dmg
- 요구 사항
- 전송에는 8 GiB의 메모리, 빌드에는 Xcode Command Line Tools가 필요합니다
Linux
0.8.0 다운로드- 배포 경로
- GitHub Releases에서 받는 .deb, .rpm, AppImage 또는 바이너리 단독 파일
- 요구 사항
- webkit2gtk 4.1; 전송에는 8 GiB의 메모리가 필요합니다
Web
로컬에서 실행- 배포 경로
- clients 저장소의 체크아웃을 사용자의 컴퓨터에서 직접 서비스하는 방식
- 요구 사항
- Node 20 이상, 최신 브라우저
버전 0.8.0, 2026-10-12. 모든 다운로드는 GitHub의 v0.8.0 릴리스에 있는 파일이며, 각 클라이언트 페이지에는 해당 파일의 SHA-256이 표시됩니다. 전체 목록은 SHA256SUMS입니다. 직접 컴파일하시겠습니까? 소스에서 빌드하기. 지갑은 데이터를 수집하지 않습니다: 개인정보 처리방침 · 이용약관.
오프라인으로 여기에서 만들기
오른쪽의 생성기는 풀 노드 자체의 키 코드를 WebAssembly로 컴파일하여 이 페이지에 불러온 것입니다. 준비되었다는 표시가 나타난 뒤 Wi‑Fi를 꺼도 계속 작동합니다. 지출 키(spend key)는 사용자 기기의 난수로 만들어지고, 주소는 그 자리에서 키로부터 도출되며, 어떤 것도 외부로 전송되지 않습니다. 전송될 곳이 없기 때문입니다.
주소는 rand1에 1,667자가 이어지는 형태입니다. 지갑의 노트 키(note key)와, 송신자가 노트를 봉인하는 대상인 ML-KEM 캡슐화 키(encapsulation key)로 구성되며, 이는 체인 18과 19가 사용하는 형식입니다. (체인 11은 서명 키의 54자 해시를 시도했으나, 송신자가 해시에 대해서는 노트를 봉인할 수 없어 되돌려졌습니다. 기록은 문서에 있습니다.) 키 파일을 rand CLI 또는 아무 Rand Wallet 앱에 불러오면 rand address가 동일한 주소를 출력합니다.
배포를 위해 주소를 등록해 두시겠습니까? 주소 페이지에는 동일한 생성기와 함께 주소를 저장할 계정이 있습니다. 이메일과 비밀번호만 필요하며, 저장되는 것은 주소뿐입니다.
먼저 코드를 확인하시겠습니까? 풀 노드의 crates/randprotocol-zkvm/src/address.rs이며, 브라우저 래퍼는 이 사이트 저장소의 server/address-wasm입니다.
- 위의 배지에 오프라인 준비 완료라고 표시될 때까지 기다리십시오. 지갑에 필요한 모든 것이 이 탭에 들어 있습니다.
- Wi‑Fi를 끄거나 비행기 모드를 켜십시오. 이 탭은 열어 두십시오.
- 생성합니다. 지출 키는 사용자 기기 자체의 난수에서 만들어지며 기기 밖으로 나가지 않습니다.
- wallet.key.json을 내려받고 주소를 복사하십시오. 그런 다음 다시 연결하십시오.
지문 송금하려는 상대방에게 이 값을 소리 내어 읽어 주거나 나란히 놓고 비교하십시오. 16자이면 서로 다른 두 주소가 우연히 일치하는 일은 일어나지 않을 만큼 충분합니다.
지문이 인 을(를) 저장하시겠습니까? 저장하기 전에 주소 소유자가 읽어 주는 지문과 일치하는지 확인하십시오.
이 브라우저에만 저장되며, 사이트 데이터를 삭제하면 함께 삭제됩니다.
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
키 파일이 곧 지갑입니다. 이 파일을 가진 사람은 해당 주소가 받은 모든 노트를 사용할 수 있으며, 파일이 없으면 아무도 사용할 수 없습니다. 비밀번호 관리자나 암호화된 드라이브처럼 이 브라우저 밖의 비공개 장소에 보관한 다음에 다시 연결하십시오. 같은 파일은 rand CLI와 모든 Rand Wallet 앱에서 열 수 있습니다(rand address가 이 주소를 출력합니다). 주소는 설계상 공개 정보입니다. 주소에는 발신자가 노트를 봉인할 때 사용하는 노트 키와 ML-KEM 캡슐화 키가 들어 있으며, 그래서 길이가 1,667자입니다. 비밀은 지출 키뿐입니다. 이미 지갑이 있으십니까? 그 주소는 rand address가 출력하는 값입니다. 이 사이트는 어디에서도 키 파일이나 지출 키를 요구하지 않습니다.
모든 플랫폼, 하나의 지갑
모든 플랫폼에서 동일한 키 파일, 동일한 주소 형식, 동일한 규칙을 사용합니다. 휴대전화에서 만든 지갑은 브라우저와 rand CLI로 가져올 수 있으며, 그 반대도 가능합니다.
하나의 코어, 사용자의 키, 사용자의 prover
모든 클라이언트는 풀 노드 자체의 크레이트로 빌드된 하나의 Rust 코어를 감싸고 있습니다. Poseidon2 키 계층, ML-KEM-768 봉투(envelope), zkVM prover는 모두 노드의 코드이며, iOS용 XCFramework, Android용 네이티브 라이브러리, 브라우저용 WebAssembly, 데스크톱 앱에 링크된 크레이트로 컴파일됩니다. 그 위의 Swift, Java, JavaScript가 지갑 자체로서 RPC 클라이언트, 노트 저장소, 화면을 구성합니다. 지출 키(spend key)는 운영체제의 난수로 기기에서 로컬로 생성되어 암호화된 상태로 보관됩니다. 지갑이 RPC 엔드포인트로 보내는 것은 어차피 번들이 공개하는 내용, 즉 커밋먼트(commitment), 널리파이어(nullifier), 봉인된 봉투, 그리고 증명뿐입니다. 증명에는 약 5.7 GB의 메모리가 필요하므로, 데스크톱 앱과 대형 휴대전화는 직접 증명하고, 브라우저 지갑은 사용자가 운영하는 prover를 연동합니다. 이 prover는 오직 자신에게만 봉인된 키를 받습니다.
무엇이든 보내기 전에
- 체인
- 공개 엔드포인트는 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 크레이트와 동일합니다
또는 직접 빌드하기
클라이언트 저장소에는 Rust 코어, 공유 인터페이스, 모든 앱, 그리고 각 스토어용 패키징이 들어 있습니다. 코어는 체인 19가 실행한 빌드인 풀 노드 v0.6.7을 서브모듈로 포함합니다. 빌드 가이드는 깨끗한 환경에서 모든 클라이언트를 차례로 설명하며, 각 클라이언트 페이지에도 고유한 절차가 있습니다.
# Rust 1.98.1(버전 고정, rustup이 설치합니다). iOS는 Xcode 16 이상, Android는 SDK 36과 NDK 27이 포함된 JDK 17 이상, 확장 프로그램은 Node 22 이상
git clone --recurse-submodules https://github.com/randprotocol/clients.git && cd clients # core/vendor/fullnode @ v0.6.7 (86941a1)
cd core && cargo test --release && cd .. # 실제 증명을 포함한 코어(약 1분)
core/scripts/build-wasm.sh # → extension/shared/core/ (wasm-bindgen-cli를 설치합니다)
core/scripts/build-ios.sh # → ios/Frameworks/RandWalletCore.xcframework
core/scripts/build-android.sh # → android/app/src/main/jniLibs/ (NDK가 필요합니다)
scripts/release/build-desktop.sh # 데스크톱 앱: dmg / msi / AppImage, deb, rpm
web/wallet/serve.sh # http://127.0.0.1:8787/ 의 로컬 웹 지갑
# 그다음: /clients/ios, /clients/android, /clients/chrome, /clients/firefox, /clients/macos …