This crate implements an experimental GUI wallet prototype for neptune cash. This is a binary/application crate, built on the Dioxus framework.
The "proto" in neptune-proton refers to the prototype nature of this wallet.
neptune-proton is a first attempt to build a cross-platform desktop
wallet that interfaces with the RPC interface of
neptune-core.
It can be thought of as a GUI dashboard for neptune-core.
This means that neptune-proton is an interface for neptune-core's built-in wallet. neptune-proton does not generate any wallet keys of its own.
-
Install neptune-core, if you haven't already.
-
Run neptune-core.
-
Download neptune-proton binary for your platform from
https://github.com/Neptune-Crypto/neptune-proton/releases/latest
-
Install neptune-proton using your operating system's package manager.
-
run neptune-proton.
If everything is correct it should automatically connect to neptune-core and display your wallet.
See the Environment Variables section below if you should need to modify the RPC port or other settings.
The prototype has a few primary objectives:
-
Help identify and hopefully overcome rough edges and problem areas for developers of Neptune wallet software.
-
Build a wallet foundation that is truly cross platform with possibility to run on Desktop (Mac, Linux, Windows) and mobile (Android, Iphone).
-
Pioneer usage of neptune-cash data types in a browser (wasm) environment.
-
Provide a starting point for wallet developers to launch from for more advanced wallets.
-
Provide a functional, if simple, GUI wallet/dashboard for the neptune-cash community to interact with neptune-core.
- Not attempting to be a direct participant of neptune p2p network (independent of neptune-core)
- Not attempting to avoid requirement that user run an instance of neptune-core.
- Not attempting to provide multi-wallet functionality.
- Not attempting to manage keys independently of neptune-core's wallet.
As of 2025-11-28:
- windows, mac, and linux desktop binaries are available in
Releases(v0.1.2) - web (wasm) build works, must build from source.
As of 2025-11-18:
- fetching price data from goingecko and coinpaprika.
- displaying and entering amounts in many national currencies.
- generation and scanning of animated QR codes.
- export and import of animated QR code files.
- builds for web and desktop (linux) windows, mac coming soon.
- mempool screen works
- history screen works
- a new peers screen works
- blockchain screen works -- has a minimalistic block explorer
As of 2025-07-09:
- Connectivity with neptune-core is working via RPC (only for localhost so far)
- A basic set of screens is implemented, best viewed in desktop mode.
- The Addresses screen lists used addresses.
- The Balance screen lists confirmed balance. (needs to be fleshed out)
- The Receive screen functions, for both Generation Addresses and Symmetric keys.
- QR codes are invalid for Generation addresses, because they are too long.
- The BlockChain screen shows the current block height. (needs to be fleshed out.)
- The Send screen functions and supports sending to multiple recipients.
- The Mempool screen is a non-functional place-holder.
- The History screen is a non-functional place-holder.
- There is not yet any settings screen, or any way to generate a new wallet.
- Rust compiler -- Instructions.
- Dioxus 0.7.1 -- Instructions
- neptune-core -- Instructions
for desktop platform, on ubuntu:
sudo apt-get install -y libwebkit2gtk-4.1-dev build-essential pkg-config librsvg2-dev libv4l-dev libxdo-dev
for desktop platform, on macos:
brew install leveldb snappy
# --- Fix for OpenSSL (reqwest) ---
OPENSSL_DIR=$(brew --prefix openssl@3)
echo "OPENSSL_ROOT_DIR=$OPENSSL_DIR" >> $GITHUB_ENV
echo "OPENSSL_LIB_DIR=$OPENSSL_DIR/lib" >> $GITHUB_ENV
echo "OPENSSL_INCLUDE_DIR=$OPENSSL_DIR/include" >> $GITHUB_ENV
# --- Fix for CMake (leveldb-sys) ---
echo "CMAKE_POLICY_VERSION_MINIMUM=3.5" >> $GITHUB_ENV
# --- Fix for LevelDB/Snappy (just in case) ---
# Build the PKG_CONFIG_PATH safely
PKG_PATH="$(brew --prefix openssl@3)/lib/pkgconfig"
PKG_PATH="$PKG_PATH:$(brew --prefix leveldb)/lib/pkgconfig"
PKG_PATH="$PKG_PATH:$(brew --prefix snappy)/lib/pkgconfig"
echo "PKG_CONFIG_PATH=$PKG_PATH" >> $GITHUB_ENV
on windows:
no special deps.
start neptune-core, if not already running, listening on the default RPC port. In this example we will use the regtest network, which generates transactions and blocks quickly.
neptune-core --regtest
neptune-cli mine-blocks-to-wallet 1
The web app is probably the simplest to build and run with the least that can go wrong.
cd neptune-proton/web
dx serve --port 9999
Open http://localhost:9999 in your browser. You should now be able to use the wallet.
cd neptune-proton/desktop
dx run
cd neptune-proton/desktop
dx bundle --release
The wallet app should appear in a native desktop window.
Some env vars can be set to affect how neptune-proton iruns.
They apply to any platform, eg web, desktop, android, ios, etc.
- NEPTUNE_CORE_RPC_PORT: <port>
- NPT_ONLY: 1 or 0
0 --> Fiat/NPT toggle mode (default)
1 --> NPT-only mode.
- FIAT_CURRENCY:
"USD", "EUR", "JPY", etc.
- DISPLAY_AS_FIAT:
"true" to make fiat the default display.
- PRICE_PROVIDER:
"coingecko" or "coinpaprika".
- VIEW_MODE_TOGGLE:
enables display of the desktop/mobile toggle button. for dev purposes. 1 or 0
See README-dioxus-workspace.md for an overview of how the workspace is laid out.
Familiarize yourself with:
- Dioxus docs
- neptune-core docs, in particular rpc_server. Note however that neptune-proton may at times use the most recent neptune-cash from github, rather than the published crate.