vergecurrency/verge

Official Verge Core Source Code Repository

C++

1,561

2,489 commits

updated Oct 14, 2026

See the code

README

Verge Source Code

GitHub all releases GitHub commit activity GitHub Repo stars Discord GitHub language count X (formerly Twitter) Follow VergeCurrency!


VERGE Source Code [XVG]

Latest commit build status:

Build Requirements

Verge Core requires a modern C++ toolchain and has migrated to reduce external dependencies for better performance and maintainability.

Minimum Requirements

ComponentRequirementNotes
CompilerGCC 9.0+ / Clang 10.0+ / MSVC 2019+C++17 support required
C++ StandardC++17 (targeting C++20)Modern features for better performance
CMake3.16+Recommended build system
Boost1.70+ (selective components)Reduced dependency footprint

Supported Operating Systems

OSVersionArchitecture
Ubuntu22.04, 24.04x64, ARM64
Debian11+x64, ARM64
CentOS/RHEL8+x64
macOS13.0+ (Ventura), 14.0 (Sonoma)x64, ARM64 (Apple Silicon)
Windows10 32bit/64bit, 11 32bit/64bitx86, x64

Modern C++ Migration Benefits

πŸš€ Performance Improvements

  • Faster Compilation: Reduced template instantiation overhead
  • Better Optimization: Modern compiler optimizations with C++17/20
  • Memory Efficiency: Smart pointers and RAII reduce memory leaks
  • Parallel Processing: Standard library threading primitives

πŸ“¦ Reduced Dependencies

  • Smaller Binary Size: Less dependency on external libraries
  • Easier Deployment: Fewer runtime dependencies to manage
  • Simplified Building: Standard library features reduce complex linking

πŸ›‘οΈ Enhanced Security & Reliability

  • Memory Safety: Smart pointers prevent common vulnerabilities
  • Type Safety: Modern C++ type system catches errors at compile time
  • Thread Safety: Better concurrency primitives prevent race conditions
  • Exception Safety: RAII patterns ensure proper resource cleanup

πŸ”§ Developer Experience

  • Modern Tooling: Better IDE support and debugging
  • Cleaner Code: More expressive and maintainable codebase
  • Faster Development: Standard library features reduce boilerplate
  • Better Testing: Modern testing frameworks and practices

Specifications

SpecificationValue
ProtocolPoW (proof of Work)
Algorithmsscrypt, x17, Lyra2rev2, myr-groestl, & blake2s
Blocktime30 seconds
Total Supply16,521,951,238 XVG (Complete!)
RPC port20102 (testnet: 21102)
P2P port21102 (testnet: 21104)
pre-mineNot Applicable
ICONot Applicable

RPC Reference

See RPC.md for the complete verged/verge-qt RPC command reference, including wallet, network, raw transaction, mining, and secure messaging commands.

Secure Messaging (SMSG)

Verge Secure Messaging (SMSG) is paid, encrypted wallet-to-wallet messaging. Messages use a shared chatkey in the form:

vergeaddress-publickey

verge-qt starts with SMSG enabled by default because it is normally used by wallet users. verged starts with SMSG disabled by default as a security measure for infrastructure deployments such as pools, exchanges, explorers, and public RPC nodes. This keeps infrastructure nodes from relaying, storing, and indexing SMSG data unless the operator explicitly opts in.

To enable SMSG on verged, add this to verge.conf or pass it on the command line:

smsg=1

Optional SMSG daemon settings:

# Scan the chain for chatkey funding/public-key data on startup.
smsgscanchain=1

# Scan incoming blocks for new SMSG public-key data.
smsgscanincoming=1

# Target number of validated SMSG relay peers to maintain.
smsgpeers=3

Basic verged SMSG workflow:

# Start verged with SMSG enabled for this run.
verged -smsg=1

# Create or choose a normal wallet address, then publish a local chatkey for it.
verge-cli getnewaddress "chat"
verge-cli smsgaddlocaladdress <youraddress>

# Show your shareable chatkey.
verge-cli smsggetpubkey <youraddress>

# Save another user's dashed chatkey and send a paid message.
verge-cli smsgaddaddress <theiraddress> <theirpublickey>
verge-cli smsgsend <youraddress> "<theiraddress>-<theirpublickey>" "hello" true 31

# Read messages.
verge-cli smsginbox all
verge-cli smsgoutbox all

If the wallet is encrypted, unlock it before creating chatkeys or sending messages:

verge-cli walletpassphrase "your passphrase" 300

SMSG paid messages default to 31 days of retention, and the sender can choose a lower retention period from 1 to 31 days. See RPC.md for the full secure messaging RPC reference.

Blockrewards

Block Number RangeReward
0 to 14,000200,000 coins
14,001 to 28,000100,000 coins
28,001 to 42,00050,000 coins
42,001 to 210,00025,000 coins
210,001 to 378,00012,500 coins
378,001 to 546,0006,250 coins
546,001 to 714,0003,125 coins
714,001 to 2,124,0001,560 coins
2,124,001 to 3,700,000730 coins
3,700,001 to 4,200,000400 coins
4,200,001 to 4,700,000200 coins
4,700,001 to 5,200,000100 coins
5,200,001 to 5,700,00050 coins
5,700,001 to 6,200,00025 coins
6,200,001 to 6,700,00012.5 coins
6,700,001 to 7,200,0006.25 coins
7,200,001+0.0 coins

Resources

Building From Source

Build Verge-Qt Without Qt WebEngine

If you only need the Qt wallet without WebEngine, you can build with:

./autogen.sh
cd depends
make -j"$(nproc)" HOST=x86_64-linux-gnu QT_SKIP_WEBENGINE=1 QT_SKIP_QTDECLARATIVE=1
cd ..

CONFIG_SITE="$PWD/depends/x86_64-linux-gnu/share/config.site" \
./configure --enable-scrypt-sse2 --disable-bench --disable-tests \
  --disable-dependency-tracking --disable-werror \
  --prefix="$PWD/depends/x86_64-linux-gnu"

make -j"$(nproc)"

Notes:

  • This produces a Qt wallet build without Qt WebEngine.
  • WebEngine-backed UI features (including the Trade tab web widget) are unavailable in this build type.

Community

Wallets

Binary (pre-compiled) wallets are available on all platforms here in Releases.

Note: Important! Only download pre-compiled wallets from the official Verge website or official Github repos.

Note: For a fresh wallet install you can reduce the blockchain syncing time by downloading a nightly snapshot and following the setup instructions.

Windows Wallet Usage

  1. Download the pre-compiled software from the releases section here.

  2. Install

  3. In windows file explorer, open c:\Users\XXX\AppData\Roaming\VERGE (be sure to change XXX to your windows user)

  4. Right click and create a new file verge.txt

  5. Edit the file to have the following contents. Local RPC clients use the automatically generated authentication cookie, so no static RPC password is required.

    rpcport=20102
    port=21102
    daemon=1
    algo=groestl
    
  6. Save and close the file

  7. Rename the file to verge.conf

  8. Start the VERGE-qt program.

  9. Open up VERGE-qt console and run getinfo (or getmininginfo) to verify settings.

Note: You must re-start the wallet after making changes to verge.conf.

MacOS Wallet

  1. Download the pre-compiled macos software from the releases section here.
  2. Double click the DMG
  3. Drag the Verge-Qt to your Applications folder
  4. Double click the Verge-Qt application to open it.
  5. Go grab a β˜• while it syncs with the blockchain

Note: It may look like it is frozen or hung while it is indexing and syncing the blockchain. It's not. It's chugging away, but currently the UI doesn't give you a lot of feedback on status. We're working to fix that. Syncing takes a while to complete (ie. > 10 minutes or more) so just be patient.

Note: If you want to change your configuration the file is located at ~/Library/Application\ Support\VERGE\VERGE.conf. This isn't required by default.

Unix Wallet

  1. Compile using Unix instructions.

  2. The wallet GUI is in ./verge/src/qt and the daemon in ./verge/src.

  3. Optional - the binaries to your favorite location. for use by all users, run the following commands:

    sudo cp src/verged /usr/bin/
    sudo cp src/qt/verge-qt /usr/bin/
    
  4. Run ./verged from wherever you put it. The output from this command will tell you that you need to make a verge.conf file and will suggest some good starting values.

  5. Open up your new config file that was created in your home directory in your favorite text editor

    nano ~/.VERGE/verge.conf
    
  6. Add the desired node settings to verge.conf. Local RPC clients use the automatically generated authentication cookie. For remote RPC access, generate a unique rpcauth entry with share/rpcauth/rpcauth.py and restrict rpcbind and rpcallowip to trusted networks.

    rpcport=20102
    port=21102
    daemon=1
    algo=groestl
    
  7. Save the file and exit your editor. If using nano type ctrl + x on your keyboard and the y and hitting enter. This should have created a verge.conf file with what you just added.

  8. Start the Verge daemon again

    ./path/to/verged
    

Note: To check the status of how much of the blockchain has been downloaded (aka synced) type ./path/to/verged getinfo.

Note: If you see something like 'Killed (program cc1plus)' run dmesg to see the error(s)/problems(s). This is most likely caused by running out of resources. You may need to add some RAM or add some swap space.

You can also check out this Linux Wallet Video Tutorial.

Use Unstoppable Domains

To use VERGE with Unstoppable Domains for sending coins using Web3 Domains just put the name of the domain (ie: sunerok.crypto) in the "Pay To:" input in the Send tab of the wallet.

Developer Notes

Modern C++ Migration

Verge Core is actively migrating to modern C++ standards and practices:

  • C++17 Standard: Full adoption with selective C++20 features
  • Reduced Boost Dependencies: Migrating to standard library equivalents
  • Smart Pointers: RAII and memory safety improvements
  • Thread Safety: Modern concurrency patterns with std::mutex and std::atomic

Coding Standards

  • Use std::filesystem instead of boost::filesystem
  • Prefer std::thread over boost::thread
  • Use std::unique_ptr/std::shared_ptr instead of raw pointers
  • Apply const correctness and noexcept specifications
  • Follow RAII principles for resource management

Quick Build (Ubuntu/Debian)

# Install modern dependencies
sudo apt update
sudo apt install -y \
    build-essential cmake git \
    libssl-dev libevent-dev \
    libdb4.8-dev libdb4.8++-dev \
    libboost-system-dev libboost-filesystem-dev libboost-test-dev \
    libminiupnpc-dev libqt5gui5 libqt5core5a libqt5dbus5 \
    qttools5-dev qttools5-dev-tools \
    libprotobuf-dev protobuf-compiler \
    libqrencode-dev libseccomp-dev libcap-dev

# Clone and build
git clone https://github.com/vergecurrency/VERGE && cd VERGE
./autogen.sh && ./configure --enable-cxx17 && make -j$(nproc)
# Modern build approach
mkdir build && cd build
cmake .. -DCMAKE_CXX_STANDARD=17 -DCMAKE_BUILD_TYPE=Release
cmake --build . --parallel $(nproc)

Performance Tip: Use make -j$(nproc) or cmake --build . --parallel to utilize all CPU cores.

Memory Note: If you encounter memory issues, either add swap space or reduce parallelism with -j2.

macOS Development

Requirements: macOS 12.0+ (Monterey), Xcode 13.0+, Command Line Tools

Intel and Apple Silicon Support

# Install Homebrew dependencies
brew install cmake boost openssl libevent berkeley-db4
brew install qt5 protobuf qrencode miniupnpc

# For Apple Silicon Macs, you may need to specify paths
export PATH="/opt/homebrew/bin:$PATH"
export PKG_CONFIG_PATH="/opt/homebrew/lib/pkgconfig:$PKG_CONFIG_PATH"

# Clone and build
git clone https://github.com/vergecurrency/VERGE && cd VERGE
./autogen.sh
./configure --enable-cxx17 --with-boost=/opt/homebrew
make -j$(sysctl -n hw.ncpu)
mkdir build && cd build
cmake .. \
    -DCMAKE_CXX_STANDARD=17 \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_PREFIX_PATH="/opt/homebrew/opt/qt5" \
    -DOPENSSL_ROOT_DIR="/opt/homebrew/opt/openssl"
cmake --build . --parallel $(sysctl -n hw.ncpu)

Apple Silicon Note: Some dependencies may need explicit paths. Use brew --prefix to find installation directories.

Windows Wallet

TODO. Take a look at building/windows.

Docker Images

Check out the contrib/readme for more information.

Mining

Solo mining

Instead of joining a mining pool you can use the wallet to mine all by yourself. You need to specify the algorithm (see below) and set the "gen" flag. For instance, in the configuration specify gen=1.

Using different algorithms

To use a specific mining algorithm use the algo switch in your configuration file (.conf file) or from the command line (like this --algo=x17). Here are the possible values:

algo=x17
algo=scrypt
algo=groestl
algo=lyra
algo=blake

TestNet

Here is a list of active testnet nodes:

  • ddvnucmtvyiemiuk.onion (sunerok)
  • uacxdw34wnfybshfjs6hxdfzwkqxs765peu4iyyakqnz2mqyvspubeqd.onion (dedicated testnet)

Donations

We believe in keeping Verge free and open. Any donations to help fuel the development effort are greatly appreciated! πŸ˜„

  • Address for donations in Verge (XVG): DDd1pVWr8PPAw1z7DRwoUW6maWh5SsnCcp
  • Address for donations in Bitcoin (BTC): 142r3vCAH3AzABiQjFPmcrSCp6TDzEDuB1

Special Shout Outs

Special thanks to the following people that have helped make Verge possible. πŸ™Œ

Sunerok, CryptoRekt, MKinney, BearSylla, Hypermist, Pallas1, FuzzBawls, BuZz, glodfinch, InfernoMan, AhmedBodi, BitSpill, MentalCollatz, ekryski and the entire #VERGE community!

Bug Reporting

If you think you've found a bug or a problem with VERGE, please let us know! First, search our issue tracker to see if someone has already reported the problem. If they haven't, open a new issue, and fill out the template with as much information as possible. The more you can tell us about the problem and how it occurred, the more likely we are to fix it.

Please do not report security vulnerabilities publicly.

How to report a bug

Code issues

Since we are a 100% open-source project we strongly prefer if you create a pull-request on Github in the proper repository with the necessary fix.

Alternatively, if you would like to make a suggestion regarding a potential fix please send an email to contact@vergecurrency.com

Contact the developers privately by sending an e-mail to contact@vergecurrency.com with the details of the issue. Do not post the issue on github or anywhere else until the issue has been resolved.

algorithm
algorithms
blockchain
blockchain-network
blockchain-platform
blockchain-technology
client
coin
full
mining
node
server
testnet
utxo
verge
verge-qt
wallet
windows-wallet
xvg

vergecurrency/verge

Official Verge Core Source Code Repository

C++

1,561

2,489 commits

updated Oct 14, 2026

See the code

README

Verge Source Code

GitHub all releases GitHub commit activity GitHub Repo stars Discord GitHub language count X (formerly Twitter) Follow VergeCurrency!


VERGE Source Code [XVG]

Latest commit build status:

Build Requirements

Verge Core requires a modern C++ toolchain and has migrated to reduce external dependencies for better performance and maintainability.

Minimum Requirements

ComponentRequirementNotes
CompilerGCC 9.0+ / Clang 10.0+ / MSVC 2019+C++17 support required
C++ StandardC++17 (targeting C++20)Modern features for better performance
CMake3.16+Recommended build system
Boost1.70+ (selective components)Reduced dependency footprint

Supported Operating Systems

OSVersionArchitecture
Ubuntu22.04, 24.04x64, ARM64
Debian11+x64, ARM64
CentOS/RHEL8+x64
macOS13.0+ (Ventura), 14.0 (Sonoma)x64, ARM64 (Apple Silicon)
Windows10 32bit/64bit, 11 32bit/64bitx86, x64

Modern C++ Migration Benefits

πŸš€ Performance Improvements

  • Faster Compilation: Reduced template instantiation overhead
  • Better Optimization: Modern compiler optimizations with C++17/20
  • Memory Efficiency: Smart pointers and RAII reduce memory leaks
  • Parallel Processing: Standard library threading primitives

πŸ“¦ Reduced Dependencies

  • Smaller Binary Size: Less dependency on external libraries
  • Easier Deployment: Fewer runtime dependencies to manage
  • Simplified Building: Standard library features reduce complex linking

πŸ›‘οΈ Enhanced Security & Reliability

  • Memory Safety: Smart pointers prevent common vulnerabilities
  • Type Safety: Modern C++ type system catches errors at compile time
  • Thread Safety: Better concurrency primitives prevent race conditions
  • Exception Safety: RAII patterns ensure proper resource cleanup

πŸ”§ Developer Experience

  • Modern Tooling: Better IDE support and debugging
  • Cleaner Code: More expressive and maintainable codebase
  • Faster Development: Standard library features reduce boilerplate
  • Better Testing: Modern testing frameworks and practices

Specifications

SpecificationValue
ProtocolPoW (proof of Work)
Algorithmsscrypt, x17, Lyra2rev2, myr-groestl, & blake2s
Blocktime30 seconds
Total Supply16,521,951,238 XVG (Complete!)
RPC port20102 (testnet: 21102)
P2P port21102 (testnet: 21104)
pre-mineNot Applicable
ICONot Applicable

RPC Reference

See RPC.md for the complete verged/verge-qt RPC command reference, including wallet, network, raw transaction, mining, and secure messaging commands.

Secure Messaging (SMSG)

Verge Secure Messaging (SMSG) is paid, encrypted wallet-to-wallet messaging. Messages use a shared chatkey in the form:

vergeaddress-publickey

verge-qt starts with SMSG enabled by default because it is normally used by wallet users. verged starts with SMSG disabled by default as a security measure for infrastructure deployments such as pools, exchanges, explorers, and public RPC nodes. This keeps infrastructure nodes from relaying, storing, and indexing SMSG data unless the operator explicitly opts in.

To enable SMSG on verged, add this to verge.conf or pass it on the command line:

smsg=1

Optional SMSG daemon settings:

# Scan the chain for chatkey funding/public-key data on startup.
smsgscanchain=1

# Scan incoming blocks for new SMSG public-key data.
smsgscanincoming=1

# Target number of validated SMSG relay peers to maintain.
smsgpeers=3

Basic verged SMSG workflow:

# Start verged with SMSG enabled for this run.
verged -smsg=1

# Create or choose a normal wallet address, then publish a local chatkey for it.
verge-cli getnewaddress "chat"
verge-cli smsgaddlocaladdress <youraddress>

# Show your shareable chatkey.
verge-cli smsggetpubkey <youraddress>

# Save another user's dashed chatkey and send a paid message.
verge-cli smsgaddaddress <theiraddress> <theirpublickey>
verge-cli smsgsend <youraddress> "<theiraddress>-<theirpublickey>" "hello" true 31

# Read messages.
verge-cli smsginbox all
verge-cli smsgoutbox all

If the wallet is encrypted, unlock it before creating chatkeys or sending messages:

verge-cli walletpassphrase "your passphrase" 300

SMSG paid messages default to 31 days of retention, and the sender can choose a lower retention period from 1 to 31 days. See RPC.md for the full secure messaging RPC reference.

Blockrewards

Block Number RangeReward
0 to 14,000200,000 coins
14,001 to 28,000100,000 coins
28,001 to 42,00050,000 coins
42,001 to 210,00025,000 coins
210,001 to 378,00012,500 coins
378,001 to 546,0006,250 coins
546,001 to 714,0003,125 coins
714,001 to 2,124,0001,560 coins
2,124,001 to 3,700,000730 coins
3,700,001 to 4,200,000400 coins
4,200,001 to 4,700,000200 coins
4,700,001 to 5,200,000100 coins
5,200,001 to 5,700,00050 coins
5,700,001 to 6,200,00025 coins
6,200,001 to 6,700,00012.5 coins
6,700,001 to 7,200,0006.25 coins
7,200,001+0.0 coins

Resources

Building From Source

Build Verge-Qt Without Qt WebEngine

If you only need the Qt wallet without WebEngine, you can build with:

./autogen.sh
cd depends
make -j"$(nproc)" HOST=x86_64-linux-gnu QT_SKIP_WEBENGINE=1 QT_SKIP_QTDECLARATIVE=1
cd ..

CONFIG_SITE="$PWD/depends/x86_64-linux-gnu/share/config.site" \
./configure --enable-scrypt-sse2 --disable-bench --disable-tests \
  --disable-dependency-tracking --disable-werror \
  --prefix="$PWD/depends/x86_64-linux-gnu"

make -j"$(nproc)"

Notes:

  • This produces a Qt wallet build without Qt WebEngine.
  • WebEngine-backed UI features (including the Trade tab web widget) are unavailable in this build type.

Community

Wallets

Binary (pre-compiled) wallets are available on all platforms here in Releases.

Note: Important! Only download pre-compiled wallets from the official Verge website or official Github repos.

Note: For a fresh wallet install you can reduce the blockchain syncing time by downloading a nightly snapshot and following the setup instructions.

Windows Wallet Usage

  1. Download the pre-compiled software from the releases section here.

  2. Install

  3. In windows file explorer, open c:\Users\XXX\AppData\Roaming\VERGE (be sure to change XXX to your windows user)

  4. Right click and create a new file verge.txt

  5. Edit the file to have the following contents. Local RPC clients use the automatically generated authentication cookie, so no static RPC password is required.

    rpcport=20102
    port=21102
    daemon=1
    algo=groestl
    
  6. Save and close the file

  7. Rename the file to verge.conf

  8. Start the VERGE-qt program.

  9. Open up VERGE-qt console and run getinfo (or getmininginfo) to verify settings.

Note: You must re-start the wallet after making changes to verge.conf.

MacOS Wallet

  1. Download the pre-compiled macos software from the releases section here.
  2. Double click the DMG
  3. Drag the Verge-Qt to your Applications folder
  4. Double click the Verge-Qt application to open it.
  5. Go grab a β˜• while it syncs with the blockchain

Note: It may look like it is frozen or hung while it is indexing and syncing the blockchain. It's not. It's chugging away, but currently the UI doesn't give you a lot of feedback on status. We're working to fix that. Syncing takes a while to complete (ie. > 10 minutes or more) so just be patient.

Note: If you want to change your configuration the file is located at ~/Library/Application\ Support\VERGE\VERGE.conf. This isn't required by default.

Unix Wallet

  1. Compile using Unix instructions.

  2. The wallet GUI is in ./verge/src/qt and the daemon in ./verge/src.

  3. Optional - the binaries to your favorite location. for use by all users, run the following commands:

    sudo cp src/verged /usr/bin/
    sudo cp src/qt/verge-qt /usr/bin/
    
  4. Run ./verged from wherever you put it. The output from this command will tell you that you need to make a verge.conf file and will suggest some good starting values.

  5. Open up your new config file that was created in your home directory in your favorite text editor

    nano ~/.VERGE/verge.conf
    
  6. Add the desired node settings to verge.conf. Local RPC clients use the automatically generated authentication cookie. For remote RPC access, generate a unique rpcauth entry with share/rpcauth/rpcauth.py and restrict rpcbind and rpcallowip to trusted networks.

    rpcport=20102
    port=21102
    daemon=1
    algo=groestl
    
  7. Save the file and exit your editor. If using nano type ctrl + x on your keyboard and the y and hitting enter. This should have created a verge.conf file with what you just added.

  8. Start the Verge daemon again

    ./path/to/verged
    

Note: To check the status of how much of the blockchain has been downloaded (aka synced) type ./path/to/verged getinfo.

Note: If you see something like 'Killed (program cc1plus)' run dmesg to see the error(s)/problems(s). This is most likely caused by running out of resources. You may need to add some RAM or add some swap space.

You can also check out this Linux Wallet Video Tutorial.

Use Unstoppable Domains

To use VERGE with Unstoppable Domains for sending coins using Web3 Domains just put the name of the domain (ie: sunerok.crypto) in the "Pay To:" input in the Send tab of the wallet.

Developer Notes

Modern C++ Migration

Verge Core is actively migrating to modern C++ standards and practices:

  • C++17 Standard: Full adoption with selective C++20 features
  • Reduced Boost Dependencies: Migrating to standard library equivalents
  • Smart Pointers: RAII and memory safety improvements
  • Thread Safety: Modern concurrency patterns with std::mutex and std::atomic

Coding Standards

  • Use std::filesystem instead of boost::filesystem
  • Prefer std::thread over boost::thread
  • Use std::unique_ptr/std::shared_ptr instead of raw pointers
  • Apply const correctness and noexcept specifications
  • Follow RAII principles for resource management

Quick Build (Ubuntu/Debian)

# Install modern dependencies
sudo apt update
sudo apt install -y \
    build-essential cmake git \
    libssl-dev libevent-dev \
    libdb4.8-dev libdb4.8++-dev \
    libboost-system-dev libboost-filesystem-dev libboost-test-dev \
    libminiupnpc-dev libqt5gui5 libqt5core5a libqt5dbus5 \
    qttools5-dev qttools5-dev-tools \
    libprotobuf-dev protobuf-compiler \
    libqrencode-dev libseccomp-dev libcap-dev

# Clone and build
git clone https://github.com/vergecurrency/VERGE && cd VERGE
./autogen.sh && ./configure --enable-cxx17 && make -j$(nproc)
# Modern build approach
mkdir build && cd build
cmake .. -DCMAKE_CXX_STANDARD=17 -DCMAKE_BUILD_TYPE=Release
cmake --build . --parallel $(nproc)

Performance Tip: Use make -j$(nproc) or cmake --build . --parallel to utilize all CPU cores.

Memory Note: If you encounter memory issues, either add swap space or reduce parallelism with -j2.

macOS Development

Requirements: macOS 12.0+ (Monterey), Xcode 13.0+, Command Line Tools

Intel and Apple Silicon Support

# Install Homebrew dependencies
brew install cmake boost openssl libevent berkeley-db4
brew install qt5 protobuf qrencode miniupnpc

# For Apple Silicon Macs, you may need to specify paths
export PATH="/opt/homebrew/bin:$PATH"
export PKG_CONFIG_PATH="/opt/homebrew/lib/pkgconfig:$PKG_CONFIG_PATH"

# Clone and build
git clone https://github.com/vergecurrency/VERGE && cd VERGE
./autogen.sh
./configure --enable-cxx17 --with-boost=/opt/homebrew
make -j$(sysctl -n hw.ncpu)
mkdir build && cd build
cmake .. \
    -DCMAKE_CXX_STANDARD=17 \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_PREFIX_PATH="/opt/homebrew/opt/qt5" \
    -DOPENSSL_ROOT_DIR="/opt/homebrew/opt/openssl"
cmake --build . --parallel $(sysctl -n hw.ncpu)

Apple Silicon Note: Some dependencies may need explicit paths. Use brew --prefix to find installation directories.

Windows Wallet

TODO. Take a look at building/windows.

Docker Images

Check out the contrib/readme for more information.

Mining

Solo mining

Instead of joining a mining pool you can use the wallet to mine all by yourself. You need to specify the algorithm (see below) and set the "gen" flag. For instance, in the configuration specify gen=1.

Using different algorithms

To use a specific mining algorithm use the algo switch in your configuration file (.conf file) or from the command line (like this --algo=x17). Here are the possible values:

algo=x17
algo=scrypt
algo=groestl
algo=lyra
algo=blake

TestNet

Here is a list of active testnet nodes:

  • ddvnucmtvyiemiuk.onion (sunerok)
  • uacxdw34wnfybshfjs6hxdfzwkqxs765peu4iyyakqnz2mqyvspubeqd.onion (dedicated testnet)

Donations

We believe in keeping Verge free and open. Any donations to help fuel the development effort are greatly appreciated! πŸ˜„

  • Address for donations in Verge (XVG): DDd1pVWr8PPAw1z7DRwoUW6maWh5SsnCcp
  • Address for donations in Bitcoin (BTC): 142r3vCAH3AzABiQjFPmcrSCp6TDzEDuB1

Special Shout Outs

Special thanks to the following people that have helped make Verge possible. πŸ™Œ

Sunerok, CryptoRekt, MKinney, BearSylla, Hypermist, Pallas1, FuzzBawls, BuZz, glodfinch, InfernoMan, AhmedBodi, BitSpill, MentalCollatz, ekryski and the entire #VERGE community!

Bug Reporting

If you think you've found a bug or a problem with VERGE, please let us know! First, search our issue tracker to see if someone has already reported the problem. If they haven't, open a new issue, and fill out the template with as much information as possible. The more you can tell us about the problem and how it occurred, the more likely we are to fix it.

Please do not report security vulnerabilities publicly.

How to report a bug

Code issues

Since we are a 100% open-source project we strongly prefer if you create a pull-request on Github in the proper repository with the necessary fix.

Alternatively, if you would like to make a suggestion regarding a potential fix please send an email to contact@vergecurrency.com

Contact the developers privately by sending an e-mail to contact@vergecurrency.com with the details of the issue. Do not post the issue on github or anywhere else until the issue has been resolved.

algorithm
algorithms
blockchain
blockchain-network
blockchain-platform
blockchain-technology
client
coin
full
mining
node
server
testnet
utxo
verge
verge-qt
wallet
windows-wallet
xvg

Project health

Overall

3.8/10

Maintained

6/10

Code review

1/10
OpenSSF Scorecard

Significant stargazers

alpaca-tc

142 followers Β· starred Jan 2018

Adam Boudj

180 followers Β· starred Jan 2018

Sukey

12 followers Β· starred Jan 2018

Alrik Olson

18 followers Β· starred Dec 2017