{"id":22551526,"url":"https://github.com/hiero-ledger/hiero-sdk-cpp","last_synced_at":"2025-07-17T07:37:40.803Z","repository":{"id":61428816,"uuid":"542791519","full_name":"hiero-ledger/hiero-sdk-cpp","owner":"hiero-ledger","description":"C++ SDK for Hiero","archived":false,"fork":false,"pushed_at":"2025-07-09T15:43:31.000Z","size":72644,"stargazers_count":32,"open_issues_count":57,"forks_count":17,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-07-09T16:24:03.531Z","etag":null,"topics":["hacktoberfest"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hiero-ledger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-09-28T21:01:39.000Z","updated_at":"2025-07-09T15:43:35.000Z","dependencies_parsed_at":"2024-03-25T09:53:54.843Z","dependency_job_id":"bdf1ec75-14cd-49d1-a96e-b506828e0bbb","html_url":"https://github.com/hiero-ledger/hiero-sdk-cpp","commit_stats":null,"previous_names":["hiero-ledger/hiero-sdk-cpp"],"tags_count":46,"template":false,"template_full_name":null,"purl":"pkg:github/hiero-ledger/hiero-sdk-cpp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hiero-ledger%2Fhiero-sdk-cpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hiero-ledger%2Fhiero-sdk-cpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hiero-ledger%2Fhiero-sdk-cpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hiero-ledger%2Fhiero-sdk-cpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hiero-ledger","download_url":"https://codeload.github.com/hiero-ledger/hiero-sdk-cpp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hiero-ledger%2Fhiero-sdk-cpp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265578222,"owners_count":23791317,"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":["hacktoberfest"],"created_at":"2024-12-07T17:12:59.740Z","updated_at":"2025-07-17T07:37:40.797Z","avatar_url":"https://github.com/hiero-ledger.png","language":"C++","funding_links":[],"categories":["**Open Source Developer Assets**"],"sub_categories":["**Software Development Kits (SDKs)**"],"readme":"# Hiero C++ SDK\n\n![](https://img.shields.io/badge/c++-17-blue)\n![](https://img.shields.io/badge/cmake-3.24-blue)\n[![](https://github.com/hiero-ledger/hiero-sdk-cpp/actions/workflows/flow-pull-request-checks.yaml/badge.svg)](https://github.com/hiero-ledger/hiero-sdk-cpp/actions/workflows/flow-pull-request-checks.yaml)\n[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/hiero-ledger/hiero-sdk-cpp/badge)](https://scorecard.dev/viewer/?uri=github.com/hiero-ledger/hiero-sdk-cpp)\n[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/10697/badge)](https://bestpractices.coreinfrastructure.org/projects/10697)\n[![License](https://img.shields.io/badge/license-apache2-blue.svg)](LICENSE)\n\nThe C++ SDK for interacting with a Hiero network.\n\n## Prerequisites\n\nFor MacOS and Linux users:\n\n- ninja\n  - MacOS: `brew install ninja`\n  - Linux: `apt-get install ninja`\n- pkg-config\n  - MacOS: `brew install pkg-config`\n  - Linux: `apt-get install pkg-config`\n- cmake\n  - MacOS: `brew install cmake`\n  - Linux: `apt-get install cmake`\n\n📣 **Note**: Ensure you install all three `ninja`, `pkg-config`, and `cmake` to avoid errors in subsequent steps. The\ninstallations might take a few minutes.\n\nFor Windows users:\n\n- Visual Studio 2019/2022 Community/Pro with Universal Windows Platform Development Tools\n- [Perl](http://strawberryperl.com/) (`perl.exe` must be added to `%PATH%`)\n- [NASM](https://www.nasm.us) (`nasm.exe` must be added to `%PATH%`)\n\n## Build\n\nThis project features CMake Presets which simplify the setup of vcpkg based dependencies. The below commands are\ntypically all that is required.\n\n1. Clone the project\n\n```sh\ngit clone https://github.com/hiero-ledger/hiero-sdk-cpp.git\n```\n\n2. CD to the project directory\n\n```sh\ncd hiero-sdk-cpp\n```\n\n3. You can configure and build the project for various platforms using CMake presets. Additionally, optional components like TCK and Tests can be included in the build using flags.\n\n```sh\n# Ensure the VCPkg Submodule is initialized\ngit submodule update --init\n\n# Windows (x64) Build\ncmake --preset windows-x64-release -DBUILD_TCK=ON -DBUILD_TESTS=ON\ncmake --build --preset windows-x64-release\n\n# Linux (x64) Build\ncmake --preset linux-x64-release -DBUILD_TCK=ON -DBUILD_TESTS=ON\ncmake --build --preset linux-x64-release\n\n# MacOS (Intel x64) Build\ncmake --preset macos-x64-release -DBUILD_TCK=ON -DBUILD_TESTS=ON\ncmake --build --preset macos-x64-release\n\n# MacOS (Aarch64) Build\ncmake --preset macos-arm64-release -DBUILD_TCK=ON -DBUILD_TESTS=ON\ncmake --build --preset macos-arm64-release\n```\n\nOptional Build Flags\nThe project supports the following optional flags to include or exclude specific components:\n\n`BUILD_TCK`\n\n```\nDescription: Controls whether the TCK tests are included in the build.\nDefault: OFF\nEnable: Add -DBUILD_TCK=ON during configuration.\n```\n\n`BUILD_TESTS`\n\n```\nDescription: Controls whether the test suite is included in the build.\nDefault: OFF\nEnable: Add -DBUILD_TESTS=ON during configuration.\n```\n\n`BUILD_EXAMPLES`\n\n```\nDescription: Controls whether the user examples are included in the build.\nDefault: OFF\nEnable: Add -DBUILD_EXAMPLES=ON during configuration.\n```\n\n## Testing\n\nTo run all SDK tests (for Release or Debug builds):\n\n```sh\nctest -C [Release|Debug] --test-dir build/\u003cPRESET\u003e\n```\n\nTo run all SDK unit tests and test vectors:\n\n```sh\nctest -C [Release|Debug] --test-dir build/\u003cPRESET\u003e -R \"TestVectors|UnitTests\"\n```\n\nTo run all SDK integration tests:\n\n```sh\nctest -C [Release|Debug] --test-dir build/\u003cPRESET\u003e -R \"IntegrationTests\"\n```\n\nTo run a specific test:\n\n```sh\nctest -C [Release|Debug] --test-dir build/\u003cPRESET\u003e -R \u003cNAME OF TEST\u003e\n```\n\n### Running Integration Tests\n\nTo run the integration tests it's necessary to have a\nrunning [Hedera Local Node](https://github.com/hashgraph/hedera-local-node) (The project will be transfered to Hiero in near future). If the local node is already running, check\nthe configuration JSON file for the network settings. Ensure the values for `network` tag contains a valid `AccountId`\nand a valid `IP address` for an operational node.\n\nExample config file:\n\n```JSON\n{\n  \"network\": {\n    \"0.0.3\": \"127.0.0.1:50211\"\n  },\n  \"mirrorNetwork\": [\n    \"127.0.0.1:5600\"\n  ],\n  \"operator\": {\n    \"accountId\": \"0.0.2\",\n    \"privateKey\": \"302e020100300506032b65700422042091132178e72057a1d7528025956fe39b0b847f200ab59b2fdd367017f3087137\"\n  }\n}\n```\n\n(Source: [config/local_node.json](https://github.com/hiero-ledger/hiero-sdk-cpp/blob/main/config/local_node.json))\n\n## Examples\n\nExamples must be run from the root directory in order to correctly access the address book and configuration files\nlocated in the `addressbook/` and `config/` directories. Make sure your `.env` file is populated with:\n\n- `OPERATOR_ID`: The ID of the operator account.\n- `OPERATOR_KEY`: The DER-encoded hex private key of the operator account.\n- `HIERO_NETWORK`: The Hiero network name. Must be one of `mainnet`, `testnet`, or `previewnet`.\n- `PASSPHRASE`: Optional variable used by `hiero-sdk-cpp-generate-private-key-from-mnemonic-example` to generate a\n  private key from a mnemonic with a passphrase.\n\nThe command to run an example looks like:\n\n```shell\nbuild/\u003cPRESET\u003e/sdk/examples/[Release|Debug]/\u003cEXAMPLE_NAME\u003e\n```\n\n- `\u003cPRESET\u003e`: the preset that was used to build in Step 3 under [Build](#build).\n- `[Release|Debug]`: `Release` if you built in `Release` mode, otherwise `Debug`.\n- `\u003cEXAMPLE_NAME\u003e`: The name of the example you are trying to run.\n\nIf you're trying to run an example from the release artifacts, you must first `cd` into the architecture folder of the\nOS on which you are trying to run the example. For example, if you are running an `x86_64` architecture on `Linux`:\n\n```shell\ncd [Release|Debug]/Linux/x86_64\n```\n\nFrom there, you can run:\n\n```shell\nexamples/\u003cEXAMPLE_NAME\u003e\n```\n\n**NOTE:** Make sure you copy your `.env` file with your environment variables into this folder as well.\n\nAdditionally, the examples can be run using the `run_examples` scripts(`.sh` for macOS, Linux/ `.bat` for Windows systems) from the project root directory. In the scripts you will find an `EXECUTABLES_DIRECTORY` variable.\n\n```\nEXECUTABLES_DIRECTORY = \u003cbuild_folder_with_exec_binaries\u003e\n```\n\nMake sure to set it to the proper build folder of the binaries after building the project.\n\n## Contributing to this Project\n\nWhether you’re fixing bugs, enhancing features, or improving documentation, your contributions are important — let’s build something great together!\n\nFor instructions on how to contribute to this repo, please\nreview the [Contributing Guide for C++](CONTRIBUTING.md).\n\nMore instructions for contribution can be found in the\n[Global Contributing Guide](https://github.com/hiero-ledger/.github/blob/main/CONTRIBUTING.md).\n\n## Help/Community\n\n- Join our [community discussions](https://discord.lfdecentralizedtrust.org/) on discord.\n\n## About Users and Maintainers\n\n- Users and Maintainers guidelies are located in **[Hiero-Ledger's roles and groups guidelines](https://github.com/hiero-ledger/governance/blob/main/roles-and-groups.md#maintainers).**\n\n## Code of Conduct\n\nHiero uses the Linux Foundation Decentralised Trust [Code of Conduct](https://www.lfdecentralizedtrust.org/code-of-conduct).\n\n## License\n\n[Apache License 2.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhiero-ledger%2Fhiero-sdk-cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhiero-ledger%2Fhiero-sdk-cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhiero-ledger%2Fhiero-sdk-cpp/lists"}