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:

  1. Clean the build: cargo clean
  2. Update Rust: rustup update
  3. 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

  1. Scans Wallet: Identifies UTXOs that need redemption
  2. Generates Proofs: Creates cryptographic proofs for each UTXO
  3. Creates Claim File: Combines all proofs into a single .redeem file
  4. 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:

  1. Keep the .redeem file safe - it contains your redemption proofs
  2. Submit the claim to the network (process varies by network)
  3. Monitor the dashboard for redemption status
  4. Check wallet balance after successful redemption