UTXO Redemption Tutorial
August 01, 2025 by Jastar13 and Kaffin
This guide is based on successful testing with Neptune Core v0.2.2 on the redeem branch and on Windows. Please adapt to suit your own needs.
How to Build and Use Neptune Core Redeem Branch
This guide will walk you through the complete process of cloning, building, and using the Neptune Core redeem branch to generate UTXO redemption claims.
Prerequisites
- Windows 10/11 (this guide is for Windows)
- Git installed
- Rust and Cargo installed
- CMake installed (version 3.5 or higher)
- Visual Studio Build Tools (for C++ compilation)
- A node synced to block 21310 (or later)
Step 1: Clone the Legacy Repository
git clone -b redeem https://github.com/Neptune-Crypto/neptune-legacy.git
cd neptune-legacy
Step 2: Build the Project
The build process requires a specific CMake policy setting due to dependency compatibility issues.
Build Command
$env:CMAKE_POLICY_VERSION_MINIMUM="3.5"; cargo build --release
Note: This environment variable is crucial. Without it, you'll get a CMake error about compatibility with CMake < 3.5.
Expected Output
Compiling neptune-cash v0.2.3 (C:\Users\username\my-projects\neptune-core)
Finished `release` profile [optimized] target(s) in 1m 27s
Step 3: Install the Binaries
cargo install --locked --force --path .
This installs the binaries to C:\Users\username.cargo\bin:
neptune-core.exe
neptune-cli.exe
neptune-dashboard.exe
triton-vm-prover.exe
Step 4: Verify Installation
neptune-core --version
Should output: neptune-cash 0.2.3
Step 5: Generate a Wallet (if needed)
neptune-cli generate-wallet
Step 6: Get Your Premine Receiving Address
To verify your redeem wallet address:
neptune-cli premine-receiving-address
Expected output:
C:\Users\username\AppData\Roaming\neptune\neptune\data\main\wallet\wallet.dat
nolgam1tph26le2s8xct23j7cs7udj85q9uzlft8uezjc65ecxr8fpag5pm3x824pwngwpqanzta3x53vkwvzl9fw0lz60gnwf6nlgkak4rghf5als6xh60n7ameqen3a69jnz5wtyzkhmh69je867fpxqyf3cx4387fxjtggk47flg8v4e909qyzs0jv4mh3pn2rf7qe66aw3p9egx9ud2vnntw4su62cngga8zg4s5fv8khaws874ys48ut3wutxdrw4c2hpvq7fedg2u2lxdueuj39a252shahxn2ucf9smen7s5zv44k5tevnzmvq7gfwrylx6axlxhz3d37805rcwe7ct2snudsup93g0rgmneq0v6ge20whwjtr6fh9kgvkh0u8e70rmrz0j46wsfvfww6yszwtmck3tyxknklldqqx0mqs347mctur0pa3gz7crzksd4dym523mzzztr9e8ravr4p8aeptxzc43m4ls6xvwdfhj7x4sxyp0kv83xreldn8mshqpwguyw9wfxtpynszn8x2d2qj92aufg90fgq4l2lmwyjl822j4sn00gtuwh0we6rxeh50hytw0fa3qegqfu7tg3yahp6d82fq5wrcqflqdwt4y5h2yz5e4xd2upxuez8nm0naxt8t2vydr0ke6werkc6dfyhxppvqyz4aw0qrx4qffsx6kt4jtzsny5kd9qn2sk86qckfhexej4y0rtxurlg6ud6h2lcp3edvxxkehdyxt68e3q2cu6yn9wgvfaxacjtcly967g2zsx5tvye4zjvklt7uwny2h5z9mlyaeunfz54swnwfystk8t9enqugzm7yh9c40ldvzv385ev3fpuqhfdqdkm26sjt267nu7t3d62arlh885jhekk03aknykrd697xhugl75lrmcxyftagqh5gg885qqg2n65va890m9stfvx80t3eejvht77uww92yf9yy3epdty0250w82f5k7k9zhzqm945qrj3zrvgaplenrtq3jdzcwgx0wxxrel3fn7drjl050xr3h4zy6sf4hyledvmua9r209f4kr39hwgdy6g9yxhmwthnkyfzvvk4dupyeg0wjtgg9rxml7fu4quwfpel6exjm43q23jt9t9cvcny8rpljalpdjqjgq9whny8r0hpxk4h7g2luu3utzuyfl8n8au3rmlekzlkfssfjv4z7p4xf9vnqglha8rnand4fj2z2uedk04n9mv23dynumr32tcwcrr4f7vclppzs7r4tgwckhzh4t0gcn2h35f7payvg3mxruhz0pdgrktev4trlgqy5jqqnw48ee8yttyvxga9espcusfe7qz3althcz5yp8x4nm38rd26eajgjsftrm9kcen87z5lg47ddmv58tlq5fxq9rc2fx9y7ys55mpmjlm8ap9myyeq3y9cg0974hpzh8dqfx20vyya5tgyzwj53z4p4qecx04q7vzlutxqwlcm9uqurj6utsrds7dzj9zgurrqp7zrmjkh9vk5r9cmt0tenctkgd8llrvkwtklfnvd3wvl3wfeu5374s0jewjdnt6klyq73uasptwhldv2tucc9dvxe8z2n30kgmm0jvtjcturntr4saxlr7ujn33a05szfg7tlafuf7nzc64eqc52st3ncveg0v3dlvw2ndzk7cxtfrd8v6ng49jchd2v9mpm2ezlfuvnrpqtldhm50a6x47n6zk8hr6z9lt83pg7w9552j8tmghzrgkngupgymrxgc5dvwrwxnngyryfsdwnwelmlcehjlcxwstcdanrg05uxjt7pmr0253r876a0ne7zaz84vvleuw7ta7rtd9l6w8fctdtssd86lvu0yeawswnahc82kqu7cjsjs56nuzjh4anz9vggk0ngln6vajp54wccnmfgwa2vqy2skp62qwwyllwp0hmhela7zlt4wc4kdh29a0nt26tvu8z5j3p4g3nx82vex6xvm95rw00c8wy7fnrjl5hasukruu4hcyltmfwssggtc9d9x2he9f7088navqnkeld7deufem9a768yvj5mt2v8hm6cjfc0dyaj955tnaqupvur2h6lhwxzm8yqdksjn7h9p9yhxq7h8u30l7gl47esqnsu0hgml3zs6lrlh00ej2y2wumhskv6kzwnfez8xrpzg8zxvax9g5x3y6rd5p858hedhzxc0wpvje94vtgtk0awcx94g8e7vhgte3y4yee8lufesvzs8nll24xuvkeltvk70jt9057ejetagmweugmde5xennzg9vphmlmetpyzvjk3y3zlctmdt7uyreaus72wm6uyx735c5gqrktx3qe8sufukzxkrs5fq9q6me5g676u968lnf2yzsrjqld5dfgq5x0cer9ssujyhlxcnfcck8rxtx7ssshnqcqtwtcgnzshtzu7lp5k95kq0v78dv7u6prqjpnvm2w38kxevpfpv9yly7yvk5vhg9dwwteneztdtun42xp658m03waal3k3nmnjy98qrgplny708vwmjkznzkaluk5zr6vqqq708x27l0n2s3qamr84llp92v4avnpmn8fv3ekkvkm8m7pnkypqlxgy9l0d0kzk203v998agrtlj5tj5hp3sgw47czqprn8ythkm8m4e67j4a474c4dwg297yst6uqeuxv9qkykgt4cs0z2e66e6m0r470a7n7auud8mqyeylf845u9dxgfy840l3feqxhg5a7sgxy7pkwr7lm3cp3zja93nths4kzk2mal4w09ctkjf6656en2me68zj0tneqs26y45zxyy22lw90zfjcn5q0x4stzx6ptsudtnmqqtcp9fqcc46g9f7zltmk9ul6y2nylmj0eq69egfkca78k39fszs64ktl5dgke4u5j9m2qqvstcs3gjrgeeam0fymy9hk9detv7sfmq402pz57alkp64gjgdsgqmeeffh5sgyf6a0l2pl3yd28ynpernumm0899a8awtqeg6n7rqrsl9k307am5zjnf7wuedu3pg5mr7wxyltzkgucxtwf2dzh5ezsrsfm0k42l39lnjf3akatfqlqgr5aq2u2vzz9z3atxntke5zykv9xrehvfuw6lmkd39hk6j6klp77g9gys73cjqz2m8u55uswzcu9v4z8rqnpl7vaxuep5kqyt2f8ev7qx827az7n2gefp47gvlzuparqlpsuu6859cawfl7m73wtyx0kgt4ssm49cxlcn0cmnc6gu0l42erxkeewd9q24q3lz4sslw8t2080w2g9qthsshkyxfmtkdmnf367x2nsdjg7fc4f4r4z0eraqq5yyeh9x8xgf29h7dytkpzpl568rdxgus9k33602gmtheyldhuswumhlrvsa5ncvrt7w6yaxz3a2uxr33up4z3cx2mxe3sa8hf2zrh8f6q9vmphz6s
This shows your wallet file location and your premine receiving address.
Step 7: Start the Neptune Core Daemon
neptune-core
Expected startup logs:
INFO neptune_cash: Starting client on main.
INFO neptune_cash: Data directory is C:\Users\username\AppData\Roaming\neptune\neptune\data\main
INFO neptune_cash: Now listening for incoming peer-connections
INFO neptune_cash: Most known canonical block has height 21598
INFO neptune_cash: Started RPC server
INFO neptune_cash: Starting main loop
Step 8: Generate UTXO Redemption Claims
In a new terminal window (keep the daemon running):
neptune-cli set-tip ecfae777da1a6b5ad97d3d793cb64b0cb4262ac5e378d2f4e2a5049e731298e058b2000000000000
Then run
neptune-cli redeem-utxos
Expected output:
Got directory (redemption-claims/) and address (None).
Process started. Monitor 'redemption-claims/' as the claims will appear there when the node is finished producing them.
Step 9: Monitor the Process
The redemption process involves multiple proof generation jobs. You'll see logs like:
INFO neptune_cash::api::tx_initiation::redeem: Started producing UTXO redemption claim
INFO neptune_cash::api::tx_initiation::redeem: Generating proofs ...
INFO neptune_cash::job_queue::queue: *** JobQueue: begin job #1 - [job-id] ***
INFO neptune_cash::models::proof_abstractions::tasm::prover_job: Generated proof, with padded height: 65536
INFO neptune_cash::job_queue::queue: *** JobQueue: ended job #1 - [job-id] - Completion: Finished - 14.102418 secs ***
...
INFO neptune_cash::api::tx_initiation::redeem: UTXO redemption claim successfully produced and written to disk
Example Proof Generation Jobs:
Job #1: 14.1 seconds (padded height: )
Job #2: 0.55 seconds (padded height: )
Job #3: 1.22 seconds (padded height: )
Job #4: 1.17 seconds (padded height: )
Job #5: 0.06 seconds (padded height: )
Job #6: 0.06 seconds (padded height: )
Job #7: 0.06 seconds (padded height: )
Job #8: 2.62 seconds (padded height: )
Step 10: Check the Results
After completion, check the redemption-claims directory:
dir redemption-claims
Expected output:
Directory: C:\Users\username\my-projects\neptune-core\redemption-claims
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 8/1/2025 1:01 PM 5470654 a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef1234567890.redeem
Troubleshooting
CMake Error
If you get this error:
CMake Error: Compatibility with CMake < 3.5 has been removed from CMake.
Solution: Always use the environment variable:
$env:CMAKE_POLICY_VERSION_MINIMUM="3.5"; cargo build --release
Build Fails
If the build fails, try:
- Clean the build:
cargo clean
- Update Rust:
rustup update
- Rebuild with the CMake policy:
$env:CMAKE_POLICY_VERSION_MINIMUM="3.5"; cargo build --release
Daemon Won't Start
- Check if another instance is running
What the Redeem Process Does
- Scans Wallet: Identifies UTXOs that need redemption
- Generates Proofs: Creates cryptographic proofs for each UTXO
- Creates Claim File: Combines all proofs into a single .redeem file
- Ready for Submission: The claim file can be submitted to redeem funds
File Locations
- Redemption Claims: C:\Users\username\my-projects\neptune-core\redemption-claims\
- Wallet Data: C:\Users\username\AppData\Roaming\neptune\neptune\data\main\
- Binaries: C:\Users\username.cargo\bin\
Important Notes
- Keep the daemon running while generating redemption claims
- Backup the
.redeem
file - it contains your redemption proofs - The redeem branch is for UTXO redemption from previous network versions
- Proof generation can take several minutes depending on the number of UTXOs
Success Indicators
- ✅ Build completes without CMake errors
- ✅ Daemon starts and connects to peers
- ✅ Redemption process generates proof jobs
- ✅ Claim file created in redemption-claims directory
- ✅ File size is several MB (contains cryptographic proofs)
Example Success Log
INFO neptune_cash::api::tx_initiation::redeem: UTXO redemption claim successfully produced and written to disk at `C:\Users\username\my-projects\neptune-core\redemption-claims\a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef1234567890.redeem`.
This process successfully redeems UTXOs from the previous Neptune network version to the current one.
Next Steps
After generating the redemption claim:
- Keep the
.redeem
file safe - it contains your redemption proofs - Submit the claim to the network (process varies by network)
- Monitor the dashboard for redemption status
- Check wallet balance after successful redemption