{"id":13699654,"url":"https://github.com/vergecurrency/verge","last_synced_at":"2025-12-28T04:58:33.160Z","repository":{"id":38361608,"uuid":"50223128","full_name":"vergecurrency/verge","owner":"vergecurrency","description":"Official Verge Core Source Code Repository :muscle:","archived":false,"fork":false,"pushed_at":"2025-05-12T22:12:56.000Z","size":86756,"stargazers_count":1409,"open_issues_count":0,"forks_count":395,"subscribers_count":265,"default_branch":"master","last_synced_at":"2025-05-12T23:19:20.275Z","etag":null,"topics":["algorithm","algorithms","blockchain","blockchain-network","blockchain-platform","blockchain-technology","client","coin","full","mining","node","server","testnet","utxo","verge","verge-qt","wallet","windows-wallet","xvg"],"latest_commit_sha":null,"homepage":"https://VergeCurrency.com","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vergecurrency.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-01-23T04:20:14.000Z","updated_at":"2025-05-12T22:13:00.000Z","dependencies_parsed_at":"2023-09-26T05:14:30.655Z","dependency_job_id":"1cb3f450-c2c3-4e15-9ac8-ab6ba6231826","html_url":"https://github.com/vergecurrency/verge","commit_stats":{"total_commits":1664,"total_committers":78,"mean_commits":"21.333333333333332","dds":0.8257211538461539,"last_synced_commit":"bbf3e5ce7c7e29aded3428ef84f062e2c606fd4b"},"previous_names":[],"tags_count":52,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vergecurrency%2Fverge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vergecurrency%2Fverge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vergecurrency%2Fverge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vergecurrency%2Fverge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vergecurrency","download_url":"https://codeload.github.com/vergecurrency/verge/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254101615,"owners_count":22014909,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithm","algorithms","blockchain","blockchain-network","blockchain-platform","blockchain-technology","client","coin","full","mining","node","server","testnet","utxo","verge","verge-qt","wallet","windows-wallet","xvg"],"created_at":"2024-08-02T20:00:40.918Z","updated_at":"2025-12-28T04:58:33.154Z","avatar_url":"https://github.com/vergecurrency.png","language":"C++","funding_links":[],"categories":["C++","Privacy Coins"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/vergecurrency/VERGE/master/readme-header.png\" alt=\"Verge Source Code\"\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/status-stable-green.svg\"\u003e\n  \u003ca href=\"https://github.com/vergecurrency/verge/blob/master/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-blue.svg\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/C%2B%2B-17%2F20-blue.svg\"\u003e\n  \u003ca href=\"https://github.com/vergecurrency/verge/releases/latest\"\u003e\u003cimg alt=\"GitHub all releases\" src=\"https://img.shields.io/github/downloads/vergecurrency/verge/total?logo=GitHub\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/vergecurrency/VERGE/commits\"\u003e\u003cimg alt=\"GitHub commit activity\" src=\"https://img.shields.io/github/commit-activity/m/vergecurrency/VERGE\"\u003e\n  \u003ca href=\"https://github.com/vergecurrency/verge/stargazers\"\u003e\u003cimg alt=\"GitHub Repo stars\" src=\"https://img.shields.io/github/stars/vergecurrency/verge\"\u003e\n  \u003ca href=\"https://discord.gg/vergecurrency\"\u003e\u003cimg alt=\"Discord\" src=\"https://img.shields.io/discord/325024453065179137\"\u003e\n  \u003cimg alt=\"GitHub language count\" src=\"https://img.shields.io/github/languages/count/vergecurrency/verge\"\u003e\n \u003ca href=\"https://x.com/vergecurrency\"\u003e\u003cimg alt=\"X (formerly Twitter) Follow VergeCurrency!\" src=\"https://img.shields.io/twitter/follow/vergecurrency?logo=twitter\u0026logoColor=teal\u0026labelColor=black\u0026color=black\"\u003e\n\u003c/p\u003e\n\u003cbr\u003e\n\n# VERGE Source Code [XVG]\n\nLatest commit is stable, building on all platforms?:\n\u003cp align=\"left\"\u003e\n  \u003ca href=\"https://github.com/vergecurrency/verge/actions/workflows/check-commit.yml\"\u003e\n  \u003cimg src=\"https://github.com/vergecurrency/verge/actions/workflows/check-commit.yml/badge.svg\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## Build Requirements\n\nVerge Core requires a modern C++ toolchain and has migrated to reduce external dependencies for better performance and maintainability.\n\n### Minimum Requirements\n\n| Component | Requirement | Notes |\n|-----------|-------------|--------|\n| **Compiler** | GCC 9.0+ / Clang 10.0+ / MSVC 2019+ | C++17 support required |\n| **C++ Standard** | C++17 (targeting C++20) | Modern features for better performance |\n| **CMake** | 3.16+ | Recommended build system |\n| **Boost** | 1.70+ (selective components) | Reduced dependency footprint |\n\n### Supported Operating Systems\n\n| OS | Version | Architecture |\n|----|---------|--------------|\n| **Ubuntu** | 22.04, 24.04 | x64, ARM64 |\n| **Debian** | 11+ | x64, ARM64 |\n| **CentOS/RHEL** | 8+ | x64 |\n| **macOS** | 13.0+ (Ventura), 14.0 (Sonoma) |x64, ARM64 (Apple Silicon) |\n| **Windows** | 10 32bit/64bit, 11 32bit/64bit | x64\n\n## Modern C++ Migration Benefits\n\n### 🚀 **Performance Improvements**\n- **Faster Compilation**: Reduced template instantiation overhead\n- **Better Optimization**: Modern compiler optimizations with C++17/20\n- **Memory Efficiency**: Smart pointers and RAII reduce memory leaks\n- **Parallel Processing**: Standard library threading primitives\n\n### 📦 **Reduced Dependencies**\n- **Smaller Binary Size**: Less dependency on external libraries\n- **Easier Deployment**: Fewer runtime dependencies to manage\n- **Simplified Building**: Standard library features reduce complex linking\n\n### 🛡️ **Enhanced Security \u0026 Reliability**\n- **Memory Safety**: Smart pointers prevent common vulnerabilities\n- **Type Safety**: Modern C++ type system catches errors at compile time\n- **Thread Safety**: Better concurrency primitives prevent race conditions\n- **Exception Safety**: RAII patterns ensure proper resource cleanup\n\n### 🔧 **Developer Experience**\n- **Modern Tooling**: Better IDE support and debugging\n- **Cleaner Code**: More expressive and maintainable codebase\n- **Faster Development**: Standard library features reduce boilerplate\n- **Better Testing**: Modern testing frameworks and practices\n\n## Specifications\n\nSpecification | Value\n--- | ---\nProtocol | PoW (proof of Work)\nAlgorithms | scrypt, x17, Lyra2rev2, myr-groestl, \u0026 blake2s\nBlocktime | 30 seconds\nTotal Supply | 16,521,951,238 XVG (Complete!)\nRPC port | 20102 (testnet: 21102)\nP2P port | 21102 (testnet: 21104)\npre-mine | Not Applicable\nICO | Not Applicable\n\n## Blockrewards\nBlock Number Range | Reward\n--- | ---\n0 to 14,000 | 200,000 coins\n14,001 to 28,000 | 100,000 coins\n28,001 to 42,000 | 50,000 coins\n42,001 to 210,000 | 25,000 coins\n210,001 to 378,000 | 12,500 coins\n378,001 to 546,000 | 6,250 coins\n546,001 to 714,000 | 3,125 coins\n714,001 to 2,124,000 | 1,560 coins\n2,124,001 to 3,700,000 | 730 coins\n3,700,001 to 4,200,000 | 400 coins\n4,200,001 to 4,700,000 | 200 coins\n4,700,001 to 5,200,000 | 100 coins\n5,200,001 to 5,700,000 | 50  coins\n5,700,001 to 6,200,000 | 25  coins\n6,200,001 to 6,700,000 | 12.5 coins\n6,700,001 to 7,200,000 | 6.25 coins\n7,200,001+             | 0.0 coins\n\n## Resources\n\n* [Blockchain Explorer] (https://verge-blockchain.info/) https://verge-blockchain.info/\n* [Blockchain Explorer] (https://xvgblockexplorer.com/) https://xvgblockexplorer.com/\n* [Blockchain Explorer Testnet] (https://testnet.verge-blockchain.info/) https://testnet.verge-blockchain.info/\n* [Network Hash and Difficulty] (https://vergecurrency.network/d/VmzuEE5Mk/verge-blockchain?) https://vergecurrency.network/d/VmzuEE5Mk/verge-blockchain\n* [Network Transaction Information] (https://network.verge-blockchain.com/d/e8a7802b-23c3-4d81-88f3-fcd0e2efb235/) https://network.verge-blockchain.com/d/e8a7802b-23c3-4d81-88f3-fcd0e2efb235/ (all real transactions only! empty blocks, mining pool txs, etc are filtered out!)\n* [Mining Pool List] (https://miningpoolstats.stream/) Most pools of our 5 algorithms can be found here!\n* [Black Paper] (https://vergecurrency.com/static/blackpaper/verge-blackpaper-v5.0.pdf) Verge's whitepaper can be found here!\n\n### Community\n\n* [Telegram](https://t.me/officialxvg)\n* [Discord](https://discord.gg/vergecurrency)\n* [Twitter](https://www.twitter.com/vergecurrency)\n* [Facebook](https://www.facebook.com/VERGEcurrency/)\n* [Reddit](https://www.reddit.com/r/vergecurrency/)\n\n## Wallets\n\nBinary (pre-compiled) wallets are available on all platforms here in [Releases](https://github.com/vergecurrency/verge/releases).\n\n\u003e **Note:** **Important!** Only download pre-compiled wallets from the official Verge website or official Github repos.\n\n\u003e **Note:** For a fresh wallet install you can reduce the blockchain syncing time by downloading [a nightly snapshot](https://verge-blockchain.com/down) and following the [setup instructions](https://verge-blockchain.com/howto).\n\n### Windows Wallet Usage\n\n1. Download the pre-compiled software from the releases section here.\n2. Install\n3. In windows file explorer, open `c:\\Users\\XXX\\AppData\\Roaming\\VERGE` (be sure to change XXX to your windows user)\n4. Right click and create a new file `verge.txt`\n5. Edit the file to have the following contents (be sure to change the password)\n\n    ```\n    rpcuser=vergerpcusername\n    rpcpassword=85CpSuCNvDcYsdQU8w621mkQqJAimSQwCSJL5dPT9wQX\n    rpcport=20102\n    port=21102\n    daemon=1\n    algo=groestl\n    ```\n\n6. Save and close the file\n7. Rename the file to `verge.conf`\n8. Start the VERGE-qt program.\n9. Open up VERGE-qt console and run `getinfo` (or `getmininginfo`) to verify settings.\n\n\u003e **Note:** You must re-start the wallet after making changes to `verge.conf`.\n\n### MacOS Wallet\n\n1. Download the pre-compiled macos software from the releases section here.\n2. Double click the DMG\n3. Drag the Verge-Qt to your Applications folder\n4. Double click the Verge-Qt application to open it.\n5. Go grab a :coffee: while it syncs with the blockchain\n\n\u003e **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. \u003e 10 minutes or more) so just be patient.\n\n\u003e **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.\n\n### Unix Wallet\n\n1. Compile using [Unix instructions](doc/build-unix.md).\n2. The wallet GUI is in `./verge/src/qt` and the daemon in `./verge/src`.\n3. **Optional** - the binaries to your favorite location. for use by all users, run the following commands:\n\n    ```shell\n    sudo cp src/VERGEd /usr/bin/\n    sudo cp src/qt/VERGE-qt /usr/bin/\n    ```\n\n4. 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.\n5.  Open up your new config file that was created in your home directory in your favorite text editor\n\n    ```shell\n    nano ~/.VERGE/VERGE.conf\n    ```\n\n6. Paste the output from the `VERGEd` command into the VERGE.conf like this: (It is recommended to change the password to something unique.)\n\n    ```\n    rpcuser=vergerpcusername\n    rpcpassword=85CpSuCNvDcYsdQU8w621mkQqJAimSQwCSJL5dPT9wQX\n    rpcport=20102\n    port=21102\n    daemon=1\n    algo=groestl\n    ```\n\n7. 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.\n\n8. Start the Verge daemon again\n\n    ```shell\n    ./path/to/VERGEd\n    ```\n\n\u003e **Note:** To check the status of how much of the blockchain has been downloaded (aka synced) type `./path/to/VERGEd getinfo`.\n\n\u003e **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.\n\nYou can also check out this [Linux Wallet Video Tutorial](https://www.youtube.com/watch?v=WYe75b6RWes).\n\n## Building From Source\n\n* [Unix Instructions](doc/build-unix.md)\n* [OS X Instructions](doc/build-osx.md)\n* [Windows Instructions](doc/build-windows.md)\n\n\n## Use [Unstoppable Domains](https://unstoppabledomains.com)\n\nTo use VERGE with Unstoppable Domains for sending coins using Web3 Domains (know more about [Unstoppable Domains here](https://unstoppabledomains.com)), use this command to start the app \"./verge-qt --with-unstoppable\".\n\n## Developer Notes\n\n### Modern C++ Migration\n\nVerge Core is actively migrating to modern C++ standards and practices:\n\n- **C++17 Standard**: Full adoption with selective C++20 features\n- **Reduced Boost Dependencies**: Migrating to standard library equivalents\n- **Smart Pointers**: RAII and memory safety improvements\n- **Thread Safety**: Modern concurrency patterns with `std::mutex` and `std::atomic`\n\n### Coding Standards\n\n- Use `std::filesystem` instead of `boost::filesystem`\n- Prefer `std::thread` over `boost::thread`\n- Use `std::unique_ptr`/`std::shared_ptr` instead of raw pointers\n- Apply `const` correctness and `noexcept` specifications\n- Follow RAII principles for resource management\n\n### Quick Build (Ubuntu/Debian)\n\n```shell\n# Install modern dependencies\nsudo apt update\nsudo apt install -y \\\n    build-essential cmake git \\\n    libssl-dev libevent-dev \\\n    libdb4.8-dev libdb4.8++-dev \\\n    libboost-system-dev libboost-filesystem-dev libboost-test-dev \\\n    libminiupnpc-dev libqt5gui5 libqt5core5a libqt5dbus5 \\\n    qttools5-dev qttools5-dev-tools \\\n    libprotobuf-dev protobuf-compiler \\\n    libqrencode-dev libseccomp-dev libcap-dev\n\n# Clone and build\ngit clone https://github.com/vergecurrency/VERGE \u0026\u0026 cd VERGE\n./autogen.sh \u0026\u0026 ./configure --enable-cxx17 \u0026\u0026 make -j$(nproc)\n```\n\n### Advanced Build with CMake (Recommended)\n\n```shell\n# Modern build approach\nmkdir build \u0026\u0026 cd build\ncmake .. -DCMAKE_CXX_STANDARD=17 -DCMAKE_BUILD_TYPE=Release\ncmake --build . --parallel $(nproc)\n```\n\n\u003e **Performance Tip**: Use `make -j$(nproc)` or `cmake --build . --parallel` to utilize all CPU cores.\n\n\u003e **Memory Note**: If you encounter memory issues, either add swap space or reduce parallelism with `-j2`.\n\n\n\n\n### macOS Development\n\n\u003e **Requirements:** macOS 12.0+ (Monterey), Xcode 13.0+, Command Line Tools\n\n#### Intel and Apple Silicon Support\n\n```shell\n# Install Homebrew dependencies\nbrew install cmake boost openssl libevent berkeley-db4\nbrew install qt5 protobuf qrencode miniupnpc\n\n# For Apple Silicon Macs, you may need to specify paths\nexport PATH=\"/opt/homebrew/bin:$PATH\"\nexport PKG_CONFIG_PATH=\"/opt/homebrew/lib/pkgconfig:$PKG_CONFIG_PATH\"\n\n# Clone and build\ngit clone https://github.com/vergecurrency/VERGE \u0026\u0026 cd VERGE\n./autogen.sh\n./configure --enable-cxx17 --with-boost=/opt/homebrew\nmake -j$(sysctl -n hw.ncpu)\n```\n\n#### CMake Build (Recommended for macOS)\n\n```shell\nmkdir build \u0026\u0026 cd build\ncmake .. \\\n    -DCMAKE_CXX_STANDARD=17 \\\n    -DCMAKE_BUILD_TYPE=Release \\\n    -DCMAKE_PREFIX_PATH=\"/opt/homebrew/opt/qt5\" \\\n    -DOPENSSL_ROOT_DIR=\"/opt/homebrew/opt/openssl\"\ncmake --build . --parallel $(sysctl -n hw.ncpu)\n```\n\n\u003e **Apple Silicon Note**: Some dependencies may need explicit paths. Use `brew --prefix` to find installation directories.\n\n### Windows Wallet\n\nTODO. Take a look at [building/windows](./building/windows).\n\n## Docker Images\n\nCheck out the [`contrib/readme`](https://github.com/vergecurrency/VERGE/tree/master/contrib/docker) for more information.\n\n## Mining\n\n### Solo mining\n\nInstead 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`.\n\n### Using different algorithms\n\nTo 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:\n\n```\nalgo=x17\nalgo=scrypt\nalgo=groestl\nalgo=lyra\nalgo=blake\n```\n\n## TestNet\n\nHere is a list of active testnet nodes:\n* ddvnucmtvyiemiuk.onion (sunerok)\n* uacxdw34wnfybshfjs6hxdfzwkqxs765peu4iyyakqnz2mqyvspubeqd.onion (dedicated testnet)\n\n## Donations\n\nWe believe in keeping Verge free and open. Any donations to help fuel the development effort are greatly appreciated! :smile:\n\n* Address for donations in Verge (XVG): `DDd1pVWr8PPAw1z7DRwoUW6maWh5SsnCcp`\n* Address for donations in Bitcoin (BTC): `142r3vCAH3AzABiQjFPmcrSCp6TDzEDuB1`\n\n## Special Shout Outs\n\nSpecial thanks to the following people that have helped make Verge possible. :raised_hands:\n\nSunerok, CryptoRekt, MKinney, BearSylla, Hypermist, Pallas1, FuzzBawls, BuZz, glodfinch, InfernoMan, AhmedBodi, BitSpill, MentalCollatz, ekryski and the **entire** #VERGE community!\n\n\n\n\n# Bug Reporting\n\nIf 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.\n\n## _Please do not report security vulnerabilities publicly._\n\n\n## How to report a bug\n\n### Code issues\n\nSince 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.\n\nAlternatively, if you would like to make a suggestion regarding a potential fix please send an email to contact@vergecurrency.com\n\n\n### Security-related issues\n\nContact 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.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvergecurrency%2Fverge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvergecurrency%2Fverge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvergecurrency%2Fverge/lists"}