AI prompts
base on The hemi network core daemons. # Hemi Network
[](https://pkg.go.dev/github.com/hemilabs/heminetwork)
[](https://goreportcard.com/report/github.com/hemilabs/heminetwork)
[](https://github.com/hemilabs/heminetwork/actions/workflows/go.yml)
[](LICENSE)
Hemi is an EVM-compatible L2 blockchain that combines the security of Bitcoin with the programmability of Ethereum.
This repository contains the core daemons of the Hemi Network, including:
- **bfgd**: Hemi Bitcoin Finality Governor daemon.
- **hproxyd**: A proxy for balancing RPC requests across Hemi nodes.
- **popmd**: The Hemi PoP Miner daemon.
- **tbcd**: A fully custom, embeddable Bitcoin node written in Go.
---
## Components
The Hemi Network is composed of many services. The core Hemi services in this repository are:
| Name | Description |
|----------------------------------------------------|--------------------------------------------|
| [Bitcoin Finality Governor (`bfgd`)](./cmd/bfgd) | Provides finality information over an API |
| [Hemi RPC Proxy Daemon (`hproxyd`)](./cmd/hproxyd) | Proxies RPC requests to Hemi op-geth nodes |
| [Hemi PoP Miner Daemon (`popmd`)](./cmd/popmd) | The Hemi Proof-of-Proof miner daemon |
| [Hemi Tiny Bitcoin Daemon (`tbcd`)](./cmd/tbcd) | Embeddable Bitcoin node |
### Utilities
This repository also contains several utility binaries.
| Name | Description |
|----------------------------|-------------------------------|
| [`btctool`](./cmd/btctool) | Bitcoin utility tool |
| [`hemictl`](./cmd/hemictl) | Hemi network controller CLI |
| [`keygen`](./cmd/keygen) | Keypair generation tool |
## Installation
### Binaries
Pre-built binaries for Linux, macOS, Windows, and OpenBSD are available
via [GitHub Releases](https://github.com/hemilabs/heminetwork/releases).
### Docker images
Docker images are published to both [GitHub Container Registry](https://github.com/hemilabs/heminetwork/packages)
and [Docker Hub](https://hub.docker.com/u/hemilabs/). Docker images are currently available for:
- [`hemilabs/bfgd`](https://github.com/orgs/hemilabs/packages/container/package/bfgd) - Hemi Bitcoin Finality Governor
- [`hemilabs/hproxyd`](https://github.com/orgs/hemilabs/packages/container/package/hproxyd) - Hemi RPC proxy
- [`hemilabs/popmd`](https://github.com/orgs/hemilabs/packages/container/package/popmd) - Hemi PoP Miner Daemon
- [`hemilabs/tbcd`](https://github.com/orgs/hemilabs/packages/container/package/tbcd) - Hemi Tiny Bitcoin Daemon
### Build from source
**Prerequisites**
- Go v1.25 or newer - https://go.dev/dl/
- `git`, `make`
**Build**
1. Clone the `heminetwork` repository:
```shell
git clone https://github.com/hemilabs/heminetwork.git
cd heminetwork
```
2. Setup and build binaries:
```shell
make deps # Download and install dependencies
make install # Build binaries into ./bin/
```
## Contributing
We welcome contributions of all kinds!
- Found a bug or have an idea for a new feature? Open an [issue](https://github.com/hemilabs/heminetwork/issues).
- Want to build something new? We recommend starting with
a [proposal issue](https://github.com/hemilabs/heminetwork/issues).
- Have improvements for our code or docs? Pull requests are very welcome!
Join the discussion in our [Discord server](https://discord.gg/hemixyz) or keep an eye
on [issues](https://github.com/hemilabs/heminetwork/issues)
and [pull requests](https://github.com/hemilabs/heminetwork/pulls).
_All contributions to this repository must be made under the terms of the [MIT License](LICENSE)._
### Contact
This repository is maintained by the Protocol Engineering team at Hemi Labs. You can contact us in the [official Hemi
Discord server](https://discord.gg/hemixyz).
#### Security Vulnerabilities
If you discover vulnerabilities in Hemi, we encourage responsible disclosure of the vulnerability so that we can take
steps to resolve the vulnerability as quickly as possible. We ask you to help us better protect Hemi and our users by
reporting vulnerabilities through HackerOne. **Never report security vulnerabilities publicly, especially on GitHub
issues.**
- [Submit a report through Hemi's HackerOne VDP program](https://hackerone.com/hemi_labs_vdp)
If you have discovered a security vulnerability, please report it in accordance with
our [Security Policy](https://github.com/hemilabs/.github/blob/main/SECURITY.md).
## License
The contents of this repository are distributed under the terms of the MIT License, except where otherwise noted.<br/>
For more information, please refer to the [LICENSE](https://github.com/hemilabs/heminetwork/blob/main/LICENSE) file.
", Assign "at most 3 tags" to the expected json: {"id":"11823","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"