Hedera Configuration
appsettings.json, the default network, and how the node registers itself
appsettings.json
The node reads its network URLs from a Hedera section in application settings:
"Hedera": {
"DefaultNetwork": "testnet",
"Networks": {
"mainnet": { "MirrorRestUrl": "https://mainnet-public.mirrornode.hedera.com" },
"testnet": { "MirrorRestUrl": "https://testnet.mirrornode.hedera.com" },
"previewnet": { "MirrorRestUrl": "https://previewnet.mirrornode.hedera.com" }
}
}
| Key | Type | Required | Description |
|---|---|---|---|
DefaultNetwork |
text | ✓ Yes | Network used when an operation doesn't set its own network field. One of mainnet, testnet, previewnet. |
Networks |
object | ✓ Yes | Map of network name → Mirror Node REST base URL. See Networks for the built-in three and how to add more. |
Missing network: If an operation requests a
network value with no matching entry under Hedera:Networks, the node throws a HederaNetworkNotConfiguredException. See Troubleshooting.
Per-Operation network Field
Every operation accepts an optional network config key. When omitted, it falls back to Hedera:DefaultNetwork. Set it explicitly to target a specific network without changing the app-wide default:
| Field | Type | Required | Description |
|---|---|---|---|
network |
select | No | mainnet | testnet | previewnet. Defaults to Hedera:DefaultNetwork when unset. |
Registration
HederaDependency.RegisterDefaults(services) registers everything the node needs:
- The Mirror Node REST client (
HederaMirrorClient, a typedHttpClient) - Per-resource services (account, token, topic, transaction, utility)
- The executor itself, scoped
- The
ExecutorRegistryentry forhedera
Host apps must also add an explicit registration call: alongside the standard DI
registration, add
new HederaDependency().RegisterDefaults(services); to your
node-plugin bootstrap (Plugins_RegisterAllNodes(...) in
ServiceCollectionExtensionsForAI.cs) so the assembly is force-loaded and discoverable
at runtime. Without this line the node type won't appear in the workflow designer even though the
package is referenced.
Project Layout
The node ships as three .NET 9 projects:
| Project | Responsibility |
|---|---|
BizFirst.Integration.Hedera.Domain |
Sealed result records and network options. Zero external dependencies. |
BizFirst.Integration.Hedera.Services |
The Mirror Node REST client and one service per resource (account/token/topic/transaction/utility). |
BizFirst.Ai.ExecutionNodes.Blockchain.Hedera |
The executor: operation routing, config parsing, operation-info DTOs. |