§ Wiki · Wiki entry

Reward Configuration Guide

How a node provider submits the reward configuration proposal that registers their nodes with the Network Nervous System and starts the reward stream.

After onboarding nodes, a provider must submit a reward configuration proposal before any rewards begin to flow. Without this proposal the nodes will run, the network will accept their work, and nothing will be paid. Reward configuration is a separate, deliberate governance action.

[!IMPORTANT] Proposals must be executed before the next minting date to be included in that minting cycle. The current minting schedule is published at next-rewards-gnj.caffeine.xyz.

Information you need before submitting

Gather the following before composing the proposal:

  • NEURON_ID — from the NNS Frontend Dapp (step 3.6 of the Node Provider Onboarding flow).
  • NODE_OPERATOR_PRINCIPAL — from step 7.1 of onboarding.
  • Node Machine IDs — one per machine, listed on the Internet Computer dashboard.
  • NODE_COUNT — the total number of nodes the configuration covers. If you are adding nodes to an existing allocation or updating an existing operator record, the count must be the new total, not just the delta.

Step 1 — Create the proposal

The proposal is submitted with ic-admin against the NNS. The default reward configuration for Gen-2 nodes is type3.1; substitute another value only if a different node configuration applies to your machines.

$ NEURON_ID=XXXXXXXXXXXXXXXXXXXX
$ NODE_OPERATOR_PRINCIPAL=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx
$ ./ic-admin \
        --nns-url https://ic0.app \
        -s ~/.config/dfx/identity/node-provider-hotkey/identity.pem \
    propose-to-update-node-operator-config \
        --proposer $NEURON_ID \
        --summary "Set rewards for the following nodes:

        * NODE_1_MACHINE_ID
        * NODE_2_MACHINE_ID
        * ...
        * NODE_N_MACHINE_ID
        " \
        --node-operator-id $NODE_OPERATOR_PRINCIPAL \
        --max-rewardable-nodes '{"type3.1": NODE_COUNT}'

Worked example — three Gen-2 nodes

$ NEURON_ID=13419667327548602649
$ NODE_OPERATOR_PRINCIPAL=uqquy-76uhn-2mys5-dh54e-85ntr-sr953-redif-zkte3-94ndi-st2i1-93t
$ ./ic-admin \
        --nns-url https://ic0.app \
        -s ~/.config/dfx/identity/node-provider-hotkey/identity.pem \
    propose-to-update-node-operator-config \
        --proposer $NEURON_ID \
        --summary "Set rewards for the following nodes:

        * sed94-atzdo-rltqy-tmnhr-fvspg-fat3p-sdbjp-7q3jg-dgfcq-zrlap-cqe
        * uq4uy-76uhn-2mys5-dh54e-85ntr-sr953-redif-zkte3-94ndi-st2i1-93t-sdjsl-vjlfn-6duch-vskdu-26pf5-cwibg-zooqk-sdn2e-cgugm-tae
        * 39esy-hmrb2-nfvao-t42co-tqfed-y3i7c-xqxyp-idt2w-wgmgr-l4x7l-gae
        " \
        --node-operator-id $NODE_OPERATOR_PRINCIPAL \
        --max-rewardable-nodes '{"type3.1": 3}'

Step 2 — Wait for execution

Find the proposal at dashboard.internetcomputer.org/governance and wait until it has been executed by the Network Nervous System (NNS). Only after execution does the configuration take effect.

[!TIP] If the proposal is still pending close to the next minting date, follow up on the developer forum so voters can weigh in — rewards for the period are only included once the proposal has executed.