{"id":13746719,"url":"https://github.com/firoorg/firo","last_synced_at":"2026-01-17T11:28:44.492Z","repository":{"id":37827063,"uuid":"67837600","full_name":"firoorg/firo","owner":"firoorg","description":"The privacy-focused cryptocurrency","archived":false,"fork":false,"pushed_at":"2025-05-06T13:03:32.000Z","size":217682,"stargazers_count":747,"open_issues_count":38,"forks_count":360,"subscribers_count":100,"default_branch":"master","last_synced_at":"2025-05-06T13:53:10.593Z","etag":null,"topics":["asic-resistant","blockchain","cryptocurrency","cryptography","lelantus","merkle-tree","merkle-tree-proof-of-work","p2p","privacy","sigma","zcoin","zero-knowledge","zero-knowledge-proofs","zerocoin","zkp"],"latest_commit_sha":null,"homepage":"https://firo.org","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/firoorg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"custom":["https://opencollective.com/firo","https://funding.firo.org/"]}},"created_at":"2016-09-09T22:50:27.000Z","updated_at":"2025-05-04T06:23:12.000Z","dependencies_parsed_at":"2024-02-19T17:10:16.184Z","dependency_job_id":"f7310108-eb4f-4078-9252-b40455b8fabf","html_url":"https://github.com/firoorg/firo","commit_stats":{"total_commits":12125,"total_committers":620,"mean_commits":"19.556451612903224","dds":0.8770309278350515,"last_synced_commit":"cf19353555dea925fcadb4381f5ac5fa9c87cc47"},"previous_names":[],"tags_count":133,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firoorg%2Ffiro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firoorg%2Ffiro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firoorg%2Ffiro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firoorg%2Ffiro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/firoorg","download_url":"https://codeload.github.com/firoorg/firo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252753735,"owners_count":21799003,"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":["asic-resistant","blockchain","cryptocurrency","cryptography","lelantus","merkle-tree","merkle-tree-proof-of-work","p2p","privacy","sigma","zcoin","zero-knowledge","zero-knowledge-proofs","zerocoin","zkp"],"created_at":"2024-08-03T06:00:59.672Z","updated_at":"2026-01-17T11:28:44.475Z","avatar_url":"https://github.com/firoorg.png","language":"C++","readme":"# Firo\n\n[![Financial Contributors on Open Collective](https://opencollective.com/firo/all/badge.svg?label=financial+contributors)](https://opencollective.com/firo) [![latest-release](https://img.shields.io/github/release/firoorg/firo)](https://github.com/firoorg/firo/releases)\n[![GitHub last-release](https://img.shields.io/github/release-date/firoorg/firo)](https://github.com/firoorg/firo/releases)\n[![GitHub downloads](https://img.shields.io/github/downloads/firoorg/firo/total)](https://github.com/firoorg/firo/releases)\n[![GitHub commits-since-last-version](https://img.shields.io/github/commits-since/firoorg/firo/latest/master)](https://github.com/firoorg/firo/graphs/commit-activity)\n[![GitHub commits-per-month](https://img.shields.io/github/commit-activity/m/firoorg/firo)](https://github.com/firoorg/firo/graphs/code-frequency)\n[![GitHub last-commit](https://img.shields.io/github/last-commit/firoorg/firo)](https://github.com/firoorg/firo/commits/master)\n![CodeRabbit Pull Request Reviews](https://img.shields.io/coderabbit/prs/github/firoorg/firo?utm_source=oss\u0026utm_medium=github\u0026utm_campaign=firoorg%2Ffiro\u0026labelColor=171717\u0026color=FF570A\u0026link=https%3A%2F%2Fcoderabbit.ai\u0026label=CodeRabbit+Reviews)\n\n[Firo](https://firo.org) formerly known as Zcoin, is a privacy focused cryptocurrency that utilizes the [Lelantus Spark protocol](https://eprint.iacr.org/2021/1173) which supports high anonymity sets without requiring trusted setup and relying on standard cryptographic assumptions.\n\nThe Lelantus Spark cryptographic library and implementation was audited by [HashCloak](https://firo.org/about/research/papers/lelantus_spark_code_audit_report.pdf). The Lelantus Spark cryptography paper has undergone two separate audits by [HashCloak](https://firo.org/about/research/papers/Lelantus_Spark_Audit_Report.pdf) and [Daniel (Linfeng) Zhao](https://firo.org/about/research/papers/LinfengSparkAudit.pdf).\n\nFiro also utilises [Dandelion++](https://arxiv.org/abs/1805.11060) to obscure the originating IP of transactions without relying on any external services such as Tor/i2P.\n\nFiro uses a hybrid PoW and LLMQ Chainlocks system combining fair distribution of supply with protection against 51% attacks and quick finality of blocks and transactions. FiroPOW (a ProgPOW variant) is used as its Proof-of-Work algorithm which targets GPUs and is FPGA/ASIC resistant.\n\n# Running with Docker\n\nIf you are already familiar with Docker, then running Firo with Docker might be the easier method for you. To run Firo using this method, first install [Docker](https://store.docker.com/search?type=edition\u0026offering=community). After this you may\ncontinue with the following instructions.\n\nPlease note that we currently don't support the GUI when running with Docker. Therefore, you can only use RPC (via HTTP or the `firo-cli` utility) to interact with Firo via this method.\n\n## Local Dockerfile\n\nThis repository contains a Dockerfile that you can build and run locally.\n\nTo build it, run from the root of this repository:\n\n```sh\ndocker build . -t firo-local\n```\n\nAfter the process is completed, run a container based on the `firo-local` image you built:\n\n```sh\ndocker run -d --name firod -v \"${HOME}/.firo:/home/firod/.firo\" firo-local\n```\n\nThis will start a detached docker container, which you can interact with using `docker exec`. See the section \"Interact with the container\" for a list of useful commands you can use to manage your node. Make sure to change `firod` with `firo-local`, if you have built the local Docker image.\n\n## Docker image on DockerHub\n\nIf it doesn't already exist, create a `.firo` folder in your home (this is a workaround until [#1241](https://github.com/firoorg/firo/issues/1241) is resolved):\n\n```sh\nmkdir -p ${HOME}/.firo\n```\n\nPull our [latest official Docker image](https://hub.docker.com/r/firoorg/firod):\n\n```sh\ndocker pull firoorg/firod\n```\n\nStart Firo daemon:\n\n```sh\ndocker run -d --name firod -v \"${HOME}/.firo:/home/firod/.firo\" firoorg/firod\n```\n\n## Interact with the container\n\nView current block count (this might take a while since the daemon needs to find other nodes and download blocks first):\n\n```sh\ndocker exec firod firo-cli getblockcount\n```\n\nView connected nodes:\n\n```sh\ndocker exec firod firo-cli getpeerinfo\n```\n\nStop daemon:\n\n```sh\ndocker stop firod\n```\n\nBackup wallet:\n\n```sh\ndocker cp firod:/home/firod/.firo/wallet.dat .\n```\n\nStart daemon again:\n\n```sh\ndocker start firod\n```\n\n# Linux Build Instructions and Notes\n\nFiro contains build scripts for its dependencies to ensure all component versions are compatible. For additional options\nsuch as cross compilation, read the [depends instructions](depends/README.md)\n\nAlternatively, you can build dependencies manually. See the full [unix build instructions](doc/build-unix.md).\n\nBootstrappable builds can [be achieved with Guix.](contrib/guix/README.md)\n\n## Development Dependencies (compiler and build tools)\n\n- Debian/Ubuntu/Mint (minimum Ubuntu 18.04):\n\n```sh\nsudo apt-get update\nsudo apt-get install python git curl build-essential cmake pkg-config\n# Also needed for GUI wallet only:\nsudo apt-get install qttools5-dev qttools5-dev-tools libxcb-xkb-dev bison\n```\n\nIf you use a later version of Ubuntu, you may need to replace `python` with `python3`.\n\n- Redhat/Fedora:\n\n```sh\nsudo dnf update\nsudo dnf install bzip2 perl-lib perl-FindBin gcc-c++ make cmake patch which\n# Also needed for GUI wallet only:\nsudo dnf install qt6-qttools-devel qt6-qtbase-devel xz bison\nsudo ln /usr/bin/bison /usr/bin/yacc\n```\n- Arch:\n\n```sh\nsudo pacman -Sy\nsudo pacman -S git base-devel python cmake\n```\n\n## Build Firo\n\n### Prerequisites (macOS Specific)\nEnsure [Homebrew](https://brew.sh/) is installed as per the [macOS build guide](https://github.com/firoorg/firo/blob/master/doc/build-macos.md).\n\n1.  Download the source:\n\n```sh\ngit clone https://github.com/firoorg/firo\ncd firo\n```\n\n2.  Build dependencies:\n\n```sh\ncd depends\nmake -j$(nproc)\ncd ..\n```\n\n3.  Configure and build Firo:\n\nHeadless (command-line only for servers etc.):\n\n```sh\ncd depends\nNO_QT=true make -j`nproc`\ncd ..\ncmake -B build -DCMAKE_TOOLCHAIN_FILE=$(pwd)/depends/$(depends/config.guess)/toolchain.cmake \\\n-DBUILD_GUI=OFF -DBUILD_CLI=ON\ncd build \u0026\u0026 make -j$(nproc)\n```\n\nOr with GUI wallet as well:\n\n```sh\ncmake -B build -DCMAKE_TOOLCHAIN_FILE=$(pwd)/depends/$(depends/config.guess)/toolchain.cmake \\\n-DBUILD_GUI=ON -DBUILD_CLI=ON\ncd build \u0026\u0026 make -j$(nproc)\n```\n\n4.  *(optional)* It is recommended to build and run the unit tests:\n\n```sh\ncmake -B build -DCMAKE_TOOLCHAIN_FILE=$(pwd)/depends/$(depends/config.guess)/toolchain.cmake \\\n-DBUILD_TESTS=ON -DBUILD_GUI=OFF -DBUILD_CLI=ON\ncd build \u0026\u0026 make -j$(nproc)\nmake test\n```\n\nIf the build succeeded, binaries will be generated in `build/bin/`: `firod`, `firo-cli`, and if GUI is enabled, `firo-qt`.\n\n#### 3. Run GUI Client\n\n```\n./bin/firo-qt\n```\n\n### CMake Options Reference\n\n| Flag | Description | Default |\n|------|-------------|---------|\n| `BUILD_DAEMON` | Build `firod` executable | `ON` |\n| `BUILD_GUI` | Build `firo-qt` GUI client | `ON` |\n| `BUILD_CLI` | Build `firo-tx` and other command-line tools | `ON` |\n| `ENABLE_WALLET` | Enable wallet functionality | `ON` |\n| `BUILD_TESTS` | Build test suite | `OFF` |\n| `BUILD_TX` | Build `firo-tx` transaction tool | Subset of `BUILD_CLI` |\n| `ENABLE_CRASH_HOOKS` | Enable crash reporting/stack traces | `OFF` |\n| `WITH_ZMQ` | Enable ZeroMQ notifications | `ON` |\n\n### Supported Cross-Compilation Targets\n\nTo build for other platforms, specify the `HOST` variable when building dependencies:\n| Host Target              | Platform                  |\n|--------------------------|---------------------------|\n| `x86_64-pc-linux-gnu`    | Linux 64-bit (default)    |\n| `x86_64-w64-mingw32`     | Windows 64-bit            |\n| `aarch64-apple-darwin`   | macOS                     |\n| `arm-linux-gnueabihf`    | Linux ARM 32-bit          |\n| `aarch64-linux-gnu`      | Linux ARM 64-bit          |\n\n#### Usage Example:\n1.  Build dependencies:\n\n```bash\n# Build dependencies for Windows 64-bit\ncd depends\nmake HOST=x86_64-w64-mingw32 -j$(nproc)\ncd ..\n```\n2.  Configure and build Firo:\n```bash\ncmake -B build -DCMAKE_TOOLCHAIN_FILE=$(pwd)/depends/x86_64-w64-mingw32/toolchain.cmake \\\n  -DBUILD_TESTS=ON -DBUILD_CLI=ON -DBUILD_GUI=ON \\\ncd build \u0026\u0026 make -j$(nproc)\n```\n\n### Notes\n * The toolchain path in `CMAKE_TOOLCHAIN_FILE`must match your target architecture. \n * `BUILD_TX` is automatically enabled if `BUILD_CLI=ON` is enabled. \n\n\n## macOS Build Instructions and Notes\n\nSee [doc/build-macos.md](doc/build-macos.md) for instructions on building on macOS.\n\n*Note: these instructions are inherited from Bitcoin and might not work as expected*\n\n## Windows (64/32 bit) Build Instructions and Notes\n\nSee [doc/build-windows.md](doc/build-windows.md) for instructions on building on Windows 64/32 bit.\n\n*Note: these instructions are inherited from Bitcoin and might not work as expected*\n\n# Run Firo\n\nNow that you have your self-built or precompiled binaries, it's time to run Firo! Depending by your skill level and/or setup, you might want to use the command line tool or the graphic user interface. If you have problems or need support, [contact the community](https://firo.org/community/social/).\n\n# Install Firo\n\nAfter building with `CMake`, generate `.sh` file with `make package`. Once you run `make package` you should have `./FiroCore-VERSION_MAJOR.VERSION_MINOR.VERSION_REVISION-Linux.sh` in your build directory. \n\nFor example, you can install `Firo` on your `/usr/bin` with: \n```\n./FiroCore-0.14.14-Linux.sh --prefix=/usr/bin --exclude-subdir\n```\n\n# Contributors\n\n## Code Contributors\n\nThis project exists thanks to all the people who contribute. Would you like to help Firo and contribute? See the [[CONTRIBUTING](CONTRIBUTING.md)] file.\n\u003ca href=\"https://github.com/firoorg/firo/graphs/contributors\"\u003e\u003cimg src=\"https://opencollective.com/firo/contributors.svg?width=890\u0026button=false\" /\u003e\u003c/a\u003e\n\n## Financial Contributors\n\nBecome a financial contributor and help us sustain our community. [[Contribute](https://opencollective.com/firo/contribute)]\n\nYou can also donate to the [MAGIC Firo Fund](https://magicgrants.org/funds/firo/) which allows some US entities to claim a charitable deduction.\n\n## Individuals\n\n\u003ca href=\"https://opencollective.com/firo\"\u003e\u003cimg src=\"https://opencollective.com/firo/individuals.svg?width=890\"\u003e\u003c/a\u003e\n\n## Organizations\n\nSupport this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/firo/contribute)]\n\n\u003ca href=\"https://opencollective.com/firo/organization/0/website\"\u003e\u003cimg src=\"https://opencollective.com/firo/organization/0/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/firo/organization/1/website\"\u003e\u003cimg src=\"https://opencollective.com/firo/organization/1/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/firo/organization/2/website\"\u003e\u003cimg src=\"https://opencollective.com/firo/organization/2/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/firo/organization/3/website\"\u003e\u003cimg src=\"https://opencollective.com/firo/organization/3/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/firo/organization/4/website\"\u003e\u003cimg src=\"https://opencollective.com/firo/organization/4/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/firo/organization/5/website\"\u003e\u003cimg src=\"https://opencollective.com/firo/organization/5/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/firo/organization/6/website\"\u003e\u003cimg src=\"https://opencollective.com/firo/organization/6/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/firo/organization/7/website\"\u003e\u003cimg src=\"https://opencollective.com/firo/organization/7/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/firo/organization/8/website\"\u003e\u003cimg src=\"https://opencollective.com/firo/organization/8/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/firo/organization/9/website\"\u003e\u003cimg src=\"https://opencollective.com/firo/organization/9/avatar.svg\"\u003e\u003c/a\u003e\n","funding_links":["https://opencollective.com/firo","https://funding.firo.org/","https://opencollective.com/firo/contribute","https://opencollective.com/firo/organization/0/website","https://opencollective.com/firo/organization/1/website","https://opencollective.com/firo/organization/2/website","https://opencollective.com/firo/organization/3/website","https://opencollective.com/firo/organization/4/website","https://opencollective.com/firo/organization/5/website","https://opencollective.com/firo/organization/6/website","https://opencollective.com/firo/organization/7/website","https://opencollective.com/firo/organization/8/website","https://opencollective.com/firo/organization/9/website"],"categories":["C++","Privacy Coins"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiroorg%2Ffiro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffiroorg%2Ffiro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiroorg%2Ffiro/lists"}