Thank you for your interest in contributing the Hiero SDK for C++!
We appreciate your interest in helping us and the rest of our community. We welcome bug reports, feature requests, and code contributions.
Jump To:
Browse open, unassigned issues to find one that matches your skill level:
| Skill Level | Description | Prerequisite |
|---|---|---|
| Good First Issue | Step-by-step tasks for newcomers | None |
| Beginner | Small improvements with some exploration | 2 completed Good First Issues |
| Intermediate | Multi-file changes with design decisions | 3 completed Beginner Issues |
| Advanced | Architecture and design-heavy work | 3 completed Intermediate Issues |
Look for issues with the status: ready for dev label — these have been triaged and are ready to be worked on.
To claim an issue, comment on it with:
/assign
The bot will automatically:
- Verify you meet the skill-level prerequisites
- Assign you to the issue
- Update the issue labels
- Post a welcome message
If you don't meet the prerequisites, the bot will show your progress and link to issues you can work on first.
Once assigned, follow the Issue Workflow Guide to:
- Fork the repository and create a branch
- Make your changes
- Sign your commits (
-s -S) - Open a pull request
Note:
- The SDK is released under the Apache 2.0 License. Any code you submit will be released under this license.
- Pull requests cannot be merged without signed commits. See the Signing Guide.
Not sure which issue type to use? See the Issue Types Guide for a full breakdown with examples of what belongs in each category.
- Visit the C++ SDK Issues page
⚠️ Check the bug is not already reported. If it is, comment to confirm you're also experiencing it.- Click New Issue and choose the Bug Report template.
The template will guide you through providing a description, steps to reproduce, expected vs. actual behavior, and environment details. The more reproducible the report, the faster a fix can land.
Security vulnerabilities should be disclosed responsibly via our bug bounty program rather than as a public issue.
Note: If you intend to implement a feature yourself, please submit the request before writing any code and ask to be assigned. Features are for user-facing SDK capabilities — new transactions, queries, API methods, etc. Improvements to tooling, CI, or the contribution process are Tasks instead.
- Visit the C++ SDK Issues page
- Verify the feature has not already been proposed.
- Click New Issue and choose the Feature Request template.
For large or protocol-level changes, consider opening a Hiero Improvement Proposal or a GitHub Discussion first.
Use a Task for maintenance, improvement, or operational work: refactoring, dependency updates, documentation improvements, CI/CD changes, test coverage, or enhancements to existing features.
- Visit the C++ SDK Issues page
- Verify the work has not already been proposed.
- Click New Issue and choose the Task template.
All three templates automatically apply status: awaiting triage. A maintainer will review the issue, apply the
appropriate skill level and priority labels, and run /finalize to prepare it for contributors. Once finalized,
the issue will have status: ready for dev and can be claimed via /assign.
Prepare a new git tag and push it to origin.
Add a new git tag using the following command in terminal where v0.3.0 is the name of the newly added tag:
git tag -s v0.3.0
Then execute:
git push origin v0.3.0
It will populate the newly added tag in origin.
Open Hiero C++ SDK and search for Create a new release link.
Select tag v0.3.0 from the dropdown list. Enter the Release title to be same as the release number which is been
prepared (for example: v0.3.0).
It's a good decision to tap directly on button Generate release notes to get an automatically generated notes which
can be used as a basis.
This section should be filled with all of the issues which have been completed and merged into main branch. Use the
emoji ➡️ followed by a description in plain English for each over-arching new feature and a bug fix.
This section should list all of the newly added examples. Each of them should represent a link to the implementation ( for example: TransferTokensExample.cpp ). It's a good idea also to add prefix with ➡️ before each line.
Section to write any kind of important notes. For example, if there are any files which are not included in the build and should not be used, then it's better all of them to be listed here.
Here should be listed all of the Pull Requests (PRs) which are part of the release. Use the following format
(pull-request-title) by (@author) in (#link)
We welcome blog posts about the C++ SDK
For example:
- Documenting New Releases and Functionality
- Documenting Contributor Activity
- Documenting Development Use-cases