uPlexa v2.1.0: Network Upgrade — How to Prepare

As you likely already know, uPlexa has scheduled a planned network upgrade for April 29th, 2019 at blockheight 162,090. Wallets, miners, and pool software will need to be updated for this upgrade. This upgrade is also known as a hardfork. There will be no issuance of a secondary coin during this hardfork. Information pertaining to the upgraded features may be found on our original UPXTWO Announcement article.

Step 1: Update your Wallets!

The latest versions of the wallets are available at https://uplexa.com/#wallets

You may also find our wallets on our GitHub repository:

GUI Wallets: https://github.com/uPlexa/uplexa-gui/releases

CMD Wallets: https://github.com/uPlexa/uplexa/releases

The Android wallet may also now be updated via Google Play as of 7:55PM EST, April 27th, 2019. It may take up to 2–3 hours for version 0.0.3 to show up. Not sure which version you’re using? Tap the menu button on the upper right hand side, and click “about”. You should be using version 0.0.3 or higher.

Step 2: Update Your Miners!

All current uPlexa miners OTHER than JCE miner are supporting the upcoming hardfork. For whichever miner you are using, please be sure to READ the developers instructions regarding the upgrade to ensure you’re mining the correct algorithm.

SRB AMD GPU Miner ≥ v1.8.6: https://srbminer.com/download.html

XMRigCC CPU Miner ≥ v1.9.2: https://github.com/Bendr0id/xmrigCC/releases

FruityMiner: Update coming April 29th, 2019. Check back later.

XMRig-UPX ≥ v0.2.0: https://github.com/uPlexa/xmrig-upx/releases/tag/v0.2.0

UPX Android Miner: https://uplexa.com/android-miner

Pools Currently supporting hardfork:



These steps are ONLY for pool merchants using standalone uPlexa payment gateways. If you are not using a standalone uPlexa payment gateway, please ignore these steps.

If you are using payment verification via NODE/DAEMONs rather than EXPLRORER VIEWKEY verifications,

Step 1: Update your daemons

Standalone payment gateways will not need to be updated, only the uPlexa daemon itself will need to be. After the daemon has been updated, you are ready. If you are using EXPLORER VIEWKEY verifications, no updates are needed.


These steps are ONLY for pool operators. If you do not run a mining pool, please ignore these steps.

[EDITED] — Please update your node-hashing-modules again, as of April 29th, 2019

Step 1: Update your daemons

Step 2: Update node-cryptonight-hashing

Edit file: ~/<yourpool_directory>/package.json

vi ~/<yourpool_directory>/package.json

Ensure cryptonight-hashing is pointed to: https://github.com/uPlexa/node-cryptonight-hashing:

"cryptonight-hashing": "git://github.com/uPlexa/node-cryptonight-hashing",

Now, ensure to update your node modules:

npm update

Edit your config to ensure you’re using the proper current algorithm (config.json):

"cnAlgorithm": "cryptonight_upx",
"cnVariant": 1,
"cnBlobType": 0,

Step 3: Setup autoswitch

Due to memory changes on our latest algorithm, we will not rely on node-cryptonight-hashing to switch or algorithms. Rather, we will implement autoswitch on the pool-sided environment. Since literally every pool other than PoolBux is using dvandals fork of nodejs-pool, I will only be providing the code for this pool software.

Edit file ~/<yourpool_directory>/lib/pool.js

vi ~/<yourpool_directory>/lib/pool.js

Find: hash = cryptoNight(convertedBlob, cnVariant, job.height);

/hash = cryptoNight(convertedBlob, cnVariant, job.height);

Replace with: (dd+i+paste)

hash = cryptoNight(convertedBlob, cnVariant, job.height);
if(cnAlgorithm=="cryptonight_upx" && hard_fork_version>=11){
hash = cnHashing.cryptonight_plex(convertedBlob);

Now simply restart your init.js/pool and you will be ready for the upcoming hardfork at blockheight 162,090


If you would like to test your miners for the upcoming fork, use:


There is no GUI/web interface for the test pool. The above is only for testing valid shares & hashrates. If you need a temporary UPX address for the TESTNET because you do not currently have nor wish to generate one, you may use: