A high-performance light wallet that offers users the ability to connect directly to peers on the Chia blockchain or to a trusted full node. Key features include WalletConnect for integration with decentralized applications (dApps) and DeFi services, support for Chia offer files, and compatibility with Chia's standards for NFTs and Asset Tokens (CATs). This wallet also facilitates the creation, viewing, and management of NFTs, the minting of new tokens, and the management of Decentralized Identifiers (DIDs). Sage Wallet is designed for ease of use, security, and future extensibility. It is currently available in beta, so it should be used with caution.
Sage is built upon the reliable foundation of chia_rs, clvm_rs, and the Chia Wallet SDK. It's designed with maintainability and future extensibility in mind from the beginning.
You can download binaries for any platform (including desktop and Android) on the releases page. For iOS, you can participate in the public TestFlight.
If you want to build from source, see the Development section for instructions.
This is an open source project, and we welcome pull requests to improve any part of the wallet.
The frontend is currently written in TypeScript with React and Shadcn UI, and can be found in the src
directory.
The backend is written in Rust, powered by Tauri v2. The frontend and backend communicate via serialized commands and events over IPC. The src-tauri
directory contains the backend wrapper code, and crates
is the individual libraries that make up the wallet backend.
Finally, the wallet driver code is written on the backend using the Chia Wallet SDK.
These instructions should get you up and running with a source installation.
First, there are some prerequisites:
Install the frontend dependencies:
pnpm install
You can run the app with:
# For development purposes:
pnpm tauri dev
# If you need optimizations:
pnpm tauri dev --release
And build the application with:
pnpm tauri build
You can also run the app in the iOS or Android simulator, though it may take some prior setup:
pnpm tauri ios dev
pnpm tauri android dev
Currently, only the wallet driver code has tests. These can be run with:
RUST_LOG=debug,sqlx=off cargo t -p sage-wallet
The sqlx=off
portion gets rid of noisy log spam from SQLx.
Most of the tests for the underlying coin spend implementations live in the Wallet SDK repo.