§ Wiki · Wiki entry

Node Deployment config.ini Reference

Reference for the node_reward_type field in the IC-OS installer config.ini — how to look up the correct value, what happens when it is missing, and how to verify the value after deployment.

The config.ini file on the IC-OS installer USB controls how a node machine joins the Internet Computer. Most of the file is networking (IPv6 prefix, gateway, optional IPv4 and domain) and is covered in the deployment runbooks themselves. This entry documents the one field that is easy to miss: node_reward_type.

A node deployed without a valid node_reward_type may register successfully but will not earn rewards. The Network Nervous System (NNS) treats this field as the operator's declaration of which reward category the node belongs to.

What node_reward_type is

node_reward_type is a single line in config.ini that tells the network which reward category the node should be paid under. The value must match a category that the NNS has approved for your node operator record.

Common values include:

  • type0
  • type1
  • type1.1
  • type3
  • type3.1

The set of valid values is defined by NNS configuration and changes over time as the community updates the reward table. Treat the list above as illustrative, not exhaustive.

How to determine the correct value

Look up your node operator record using ic-admin. The rewardable_nodes field lists the categories your operator is permitted to deploy under, with a count for each.

ic-admin --nns-url https://ic0.app get-node-operator <your_node_operator_id>

Example output:

Using NNS URLs: ["https://ic0.app/"]
Fetching the most recent value for key: node_operator_record_c5ssg-eh22p-pmsn6-fpjzj-k5nql-mx5mc-7gb4a-4klco-c4f37-ydnfp-bae
Most recent version is 44799. Value:
NodeOperator { node_operator_principal_id: c5ssg-eh22p-pmsn6-fpjzj-k5nql-mx5mc-7gb4a-4klco-c4f37-ydnfp-bae, node_allowance: 3, node_provider_principal_id: i7dto-bgkj2-xo5dx-cyrb7-zkk5y-q46eh-gz6iq-qkgyc-w4qte-scgtb-6ae, dc_id: "bu1", rewardable_nodes: {"type0": 0, "type1": 28}, ipv6: None }

In this record, rewardable_nodes: {"type0": 0, "type1": 28} tells you that type1 is approved for this operator. Set node_reward_type=type1 in config.ini.

If the record lists multiple non-zero categories, choose the one that matches the reward configuration for the specific node you are deploying.

[!TIP] The dre tool exposes the same data filtered by data center. To see every operator record for one data center:

dre registry --filter=dc_id=<dc_id>

Looking up the entire reward table

To see every category currently defined by NNS configuration:

ic-admin --nns-urls https://ic0.app get-node-rewards-table

What happens if you leave it empty

[!WARNING] A node deployed with an empty or invalid node_reward_type may register but will not be paid rewards. Older nodes deployed before March 2025 had this field auto-filled by the registry; new deployments must set it explicitly.

The two failure modes are:

  1. Registration fails with a Node reward type is required error. The node never joins the registry and you must redeploy with a corrected config.ini.
  2. Registration succeeds but rewards are zero. The node appears on the dashboard and runs normally, but the reward stream is empty. Verifying after deployment (next section) catches this case.

Verifying after deployment

After the node joins the registry, query its record directly:

ic-admin --nns-url https://ic0.app get-node <node-id>

In the resulting Node { ... } block, look for node_reward_type:. A correctly configured node shows node_reward_type: Some("type1") (or whichever category you set). A node showing node_reward_type: None is running for free — fix config.ini and redeploy that machine.

Best practices

  • Confirm node_reward_type against rewardable_nodes for your operator record before writing the USB image, not after the node has booted.
  • Use the same value for every node you deploy under one operator record, unless the NNS-approved record explicitly assigns multiple categories.
  • If you maintain a reusable config.ini template, treat node_reward_type as data-center-specific — it is keyed to the operator record, which is keyed to the data center.
  • After deployment, check both the operator record and the node record to confirm the value propagated.