<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.internetcomputer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alexander.ufimtsev</id>
	<title>Internet Computer Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.internetcomputer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alexander.ufimtsev"/>
	<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/wiki/Special:Contributions/Alexander.ufimtsev"/>
	<updated>2026-04-30T17:01:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Node_Swapping_Guide&amp;diff=8705</id>
		<title>Node Provider Node Swapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Node_Swapping_Guide&amp;diff=8705"/>
		<updated>2026-02-16T14:52:44Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: /* 🚧 Node swapping will be enabled for all the subnets in Q1 2026. It is now live for non-system subnets and can be used! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===&#039;&#039;&#039;Node swapping is now live for all the subnets!&#039;&#039;&#039;===&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
Node providers run nodes on the Internet Computer and receive rewards depending on how well their nodes perform. Only nodes that contribute to the overall performance of the node provider are the nodes that are part of a subnet. Those nodes are called &#039;&#039;assigned&#039;&#039;. All other nodes that are not  part of any subnet and are not utilized don&#039;t contribute to the overall performance of the node provider. Those nodes are called &#039;&#039;unassigned&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
It is in the node providers best interest to keep the &#039;&#039;assigned&#039;&#039; nodes as well maintained and as operational as possible since that is how they can maximize their rewards. To achieve that over time, the node providers can utilize the &#039;&#039;&#039;node swapping&#039;&#039;&#039; feature.  &lt;br /&gt;
&lt;br /&gt;
==Node swapping==&lt;br /&gt;
Node swapping feature is used to &#039;&#039;swap&#039;&#039; an &#039;&#039;assigned&#039;&#039; node for an &#039;&#039;unassigned&#039;&#039; node owned by the same &#039;&#039;node operator&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
=====Example=====&lt;br /&gt;
A node provider notices that one of his nodes is performing poorly. In order to maximize their rewards, they want to act quickly and remove the &#039;&#039;assigned&#039;&#039; node from a subnet for a different &#039;&#039;unassigned&#039;&#039; node &#039;&#039;&#039;within the same data center&#039;&#039;&#039;. They use the &#039;&#039;&#039;node swapping feature&#039;&#039;&#039; to do that without &#039;&#039;&#039;any proposals or governance&#039;&#039;&#039;. After performing the swap they can perform maintenance on the node and see why it failed in the first place. &lt;br /&gt;
&lt;br /&gt;
==Performing a node swap==&lt;br /&gt;
To perform a node swap one has to follow the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: if the node is turned off before it gracefully leaves the subnet it will appear as malicious to the consensus which can result in rewards penalty!&lt;br /&gt;
&lt;br /&gt;
#Find the principal ID of an &#039;&#039;assigned&#039;&#039; node that should be removed from a subnet. To do that one can use various tools, but for the sake of this example we will show examples from [https://dashboard.internetcomputer.org/ the public dashboard].[[File:Node provider dead node part of a subnet.png|left|frameless|1000x1000px|Degraded node with its node ID and health status]]&lt;br /&gt;
#Find the principal ID of an &#039;&#039;unassigned&#039;&#039; node that should be added to a subnet in place of an &#039;&#039;assigned&#039;&#039; node picked in the previous step.  To do that one can click on the data center (below the &#039;&#039;&#039;DC ID&#039;&#039;&#039; &amp;quot;to1&amp;quot; for this example) of the node from the previous step which will take them to the view which contains all the node machines from the same data center. From there, pick the one that isn&#039;t &#039;&#039;assigned&#039;&#039; to any subnet (the &#039;&#039;&#039;subnet ID&#039;&#039;&#039; column should contain a &#039;-&#039;).[[File:Unassigned nodes in the same data center.png|left|frameless|1111x1111px]]&lt;br /&gt;
#Using ic-admin utility to perform a node swap:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Uncomment this if the node operator identity is behind a private key file&lt;br /&gt;
#AUTH=(&lt;br /&gt;
# &amp;quot;--secret-key-pem&amp;quot;&lt;br /&gt;
# &amp;lt;path-to-key-pem&amp;gt;&lt;br /&gt;
#)&lt;br /&gt;
&lt;br /&gt;
# Uncomment this if node operator identity is behind an hsm&lt;br /&gt;
#AUTH=(&lt;br /&gt;
# &amp;quot;--use-hsm&amp;quot;&lt;br /&gt;
# &amp;quot;--slot&amp;quot;&lt;br /&gt;
# &amp;lt;hsm-key-slot&amp;gt;&lt;br /&gt;
# &amp;quot;--key-id&amp;quot;&lt;br /&gt;
# &amp;lt;hsm-key-id&amp;gt;&lt;br /&gt;
# &amp;quot;--pin&amp;quot;&lt;br /&gt;
# &amp;lt;hsm-pin&amp;gt;&lt;br /&gt;
#)&lt;br /&gt;
&lt;br /&gt;
ic-admin --nns-urls https://ic0.app ${AUTH[@]} swap-node-in-subnet-directly \&lt;br /&gt;
    --old-node-id &amp;lt;principal-from-step-1&amp;gt; \&lt;br /&gt;
    --new-node-id &amp;lt;principal-from-step-2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#After the response from the call is successful the node doesn&#039;t leave the subnet immediately. There is &#039;&#039;&#039;graceful leaving period&#039;&#039;&#039; that needs to be awaited. It takes around 15-20 minutes depending on the subnet. If the logs of the node are observed through the BMC console there are two messages that need to show in order for the node to completely leave the subnet &#039;&#039;gracefully&#039;&#039;. The first log that indicates that the node noticed that the swapping was requested looks like the following:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Node started leaving subnet &amp;lt;subnet-id&amp;gt;.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;After some time the node will show the following log which indicates it left the subnet:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Node gracefully left a subnet &amp;lt;subnet-id&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#After the second log appears it is safe to turn off the node and proceed to do maintenance.&lt;br /&gt;
&lt;br /&gt;
== Limitations and constraints==&lt;br /&gt;
To ensure fair and safe use of the swapping feature there are some limitations and constraints about the usage of the feature that need to be shared. &lt;br /&gt;
&lt;br /&gt;
=====Ownership and locality constraints =====&lt;br /&gt;
A node provider &#039;&#039;&#039;can&#039;&#039;&#039; only perform a swap of two nodes if and only if the following &#039;&#039;locality&#039;&#039; constraints are met:&lt;br /&gt;
&lt;br /&gt;
#The &#039;&#039;old node&#039;&#039; is an &#039;&#039;assigned&#039;&#039; node (it is a part of a subnet) and the &#039;&#039;new node&#039;&#039; is an &#039;&#039;unassigned&#039;&#039; node (it isn&#039;t a part of any subnet).&lt;br /&gt;
#Both &#039;&#039;old&#039;&#039; and &#039;&#039;new&#039;&#039; nodes are owned by the same &#039;&#039;&#039;node provider&#039;&#039;&#039; and are located in the same &#039;&#039;&#039;data center&#039;&#039;&#039;. Furthermore they have to be owned by the same &#039;&#039;&#039;node operator.&#039;&#039;&#039; This is needed to ensure that the &#039;&#039;decentralization&#039;&#039; doesn&#039;t change when the swaps are performed.&lt;br /&gt;
&lt;br /&gt;
=====Rate limiting constraints=====&lt;br /&gt;
A node provider &#039;&#039;&#039;can&#039;&#039;&#039; only perform a swap of two nodes if and only if the following &#039;&#039;rate limiting&#039;&#039; constraints are met:&lt;br /&gt;
&lt;br /&gt;
# The &#039;&#039;&#039;subnet&#039;&#039;&#039; which the &#039;&#039;old&#039;&#039; node is a part of hasn&#039;t had a swap in the last &#039;&#039;&#039;4 hours&#039;&#039;&#039; - this limit is here to protect the subnet from losing its state from too many swaps happening at the same time.&lt;br /&gt;
#The &#039;&#039;&#039;node provider&#039;&#039;&#039; performing the swap hasn&#039;t made a swap on the &#039;&#039;&#039;subnet&#039;&#039;&#039; which the &#039;&#039;old&#039;&#039; node is a part of in the last &#039;&#039;&#039;24 hours&#039;&#039;&#039; - this limit is here to protect other node providers from being unable to swap nodes because one node provider is constantly swapping nodes within the &#039;&#039;&#039;2 hour&#039;&#039;&#039; limit of the 1st constraint.&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Node_Swapping_Guide&amp;diff=8691</id>
		<title>Node Provider Node Swapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Node_Swapping_Guide&amp;diff=8691"/>
		<updated>2026-02-05T17:52:31Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===🚧 &#039;&#039;&#039;Node swapping will be enabled for all the subnets in Q1 2026. It is now live for non-system subnets and can be used!&#039;&#039;&#039;===&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
Node providers run nodes on the Internet Computer and receive rewards depending on how well their nodes perform. Only nodes that contribute to the overall performance of the node provider are the nodes that are part of a subnet. Those nodes are called &#039;&#039;assigned&#039;&#039;. All other nodes that are not  part of any subnet and are not utilized don&#039;t contribute to the overall performance of the node provider. Those nodes are called &#039;&#039;unassigned&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
It is in the node providers best interest to keep the &#039;&#039;assigned&#039;&#039; nodes as well maintained and as operational as possible since that is how they can maximize their rewards. To achieve that over time, the node providers can utilize the &#039;&#039;&#039;node swapping&#039;&#039;&#039; feature.  &lt;br /&gt;
&lt;br /&gt;
==Node swapping==&lt;br /&gt;
Node swapping feature is used to &#039;&#039;swap&#039;&#039; an &#039;&#039;assigned&#039;&#039; node for an &#039;&#039;unassigned&#039;&#039; node owned by the same &#039;&#039;node operator&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
=====Example=====&lt;br /&gt;
A node provider notices that one of his nodes is performing poorly. In order to maximize their rewards, they want to act quickly and remove the &#039;&#039;assigned&#039;&#039; node from a subnet for a different &#039;&#039;unassigned&#039;&#039; node &#039;&#039;&#039;within the same data center&#039;&#039;&#039;. They use the &#039;&#039;&#039;node swapping feature&#039;&#039;&#039; to do that without &#039;&#039;&#039;any proposals or governance&#039;&#039;&#039;. After performing the swap they can perform maintenance on the node and see why it failed in the first place. &lt;br /&gt;
&lt;br /&gt;
==Performing a node swap==&lt;br /&gt;
To perform a node swap one has to follow the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: if the node is turned off before it gracefully leaves the subnet it will appear as malicious to the consensus which can result in rewards penalty!&lt;br /&gt;
&lt;br /&gt;
#Find the principal ID of an &#039;&#039;assigned&#039;&#039; node that should be removed from a subnet. To do that one can use various tools, but for the sake of this example we will show examples from [https://dashboard.internetcomputer.org/ the public dashboard].[[File:Node provider dead node part of a subnet.png|left|frameless|1000x1000px|Degraded node with its node ID and health status]]&lt;br /&gt;
#Find the principal ID of an &#039;&#039;unassigned&#039;&#039; node that should be added to a subnet in place of an &#039;&#039;assigned&#039;&#039; node picked in the previous step.  To do that one can click on the data center (below the &#039;&#039;&#039;DC ID&#039;&#039;&#039; &amp;quot;to1&amp;quot; for this example) of the node from the previous step which will take them to the view which contains all the node machines from the same data center. From there, pick the one that isn&#039;t &#039;&#039;assigned&#039;&#039; to any subnet (the &#039;&#039;&#039;subnet ID&#039;&#039;&#039; column should contain a &#039;-&#039;).[[File:Unassigned nodes in the same data center.png|left|frameless|1111x1111px]]&lt;br /&gt;
#Using ic-admin utility to perform a node swap:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Uncomment this if the node operator identity is behind a private key file&lt;br /&gt;
#AUTH=(&lt;br /&gt;
# &amp;quot;--secret-key-pem&amp;quot;&lt;br /&gt;
# &amp;lt;path-to-key-pem&amp;gt;&lt;br /&gt;
#)&lt;br /&gt;
&lt;br /&gt;
# Uncomment this if node operator identity is behind an hsm&lt;br /&gt;
#AUTH=(&lt;br /&gt;
# &amp;quot;--use-hsm&amp;quot;&lt;br /&gt;
# &amp;quot;--slot&amp;quot;&lt;br /&gt;
# &amp;lt;hsm-key-slot&amp;gt;&lt;br /&gt;
# &amp;quot;--key-id&amp;quot;&lt;br /&gt;
# &amp;lt;hsm-key-id&amp;gt;&lt;br /&gt;
# &amp;quot;--pin&amp;quot;&lt;br /&gt;
# &amp;lt;hsm-pin&amp;gt;&lt;br /&gt;
#)&lt;br /&gt;
&lt;br /&gt;
ic-admin --nns-urls https://ic0.app ${AUTH[@]} swap-node-in-subnet-directly \&lt;br /&gt;
    --old-node-id &amp;lt;principal-from-step-1&amp;gt; \&lt;br /&gt;
    --new-node-id &amp;lt;principal-from-step-2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#After the response from the call is successful the node doesn&#039;t leave the subnet immediately. There is &#039;&#039;&#039;graceful leaving period&#039;&#039;&#039; that needs to be awaited. It takes around 15-20 minutes depending on the subnet. If the logs of the node are observed through the BMC console there are two messages that need to show in order for the node to completely leave the subnet &#039;&#039;gracefully&#039;&#039;. The first log that indicates that the node noticed that the swapping was requested looks like the following:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Node started leaving subnet &amp;lt;subnet-id&amp;gt;.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;After some time the node will show the following log which indicates it left the subnet:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Node gracefully left a subnet &amp;lt;subnet-id&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#After the second log appears it is safe to turn off the node and proceed to do maintenance.&lt;br /&gt;
&lt;br /&gt;
== Limitations and constraints==&lt;br /&gt;
To ensure fair and safe use of the swapping feature there are some limitations and constraints about the usage of the feature that need to be shared. &lt;br /&gt;
&lt;br /&gt;
=====Ownership and locality constraints =====&lt;br /&gt;
A node provider &#039;&#039;&#039;can&#039;&#039;&#039; only perform a swap of two nodes if and only if the following &#039;&#039;locality&#039;&#039; constraints are met:&lt;br /&gt;
&lt;br /&gt;
#The &#039;&#039;old node&#039;&#039; is an &#039;&#039;assigned&#039;&#039; node (it is a part of a subnet) and the &#039;&#039;new node&#039;&#039; is an &#039;&#039;unassigned&#039;&#039; node (it isn&#039;t a part of any subnet).&lt;br /&gt;
#Both &#039;&#039;old&#039;&#039; and &#039;&#039;new&#039;&#039; nodes are owned by the same &#039;&#039;&#039;node provider&#039;&#039;&#039; and are located in the same &#039;&#039;&#039;data center&#039;&#039;&#039;. Furthermore they have to be owned by the same &#039;&#039;&#039;node operator.&#039;&#039;&#039; This is needed to ensure that the &#039;&#039;decentralization&#039;&#039; doesn&#039;t change when the swaps are performed.&lt;br /&gt;
&lt;br /&gt;
=====Rate limiting constraints=====&lt;br /&gt;
A node provider &#039;&#039;&#039;can&#039;&#039;&#039; only perform a swap of two nodes if and only if the following &#039;&#039;rate limiting&#039;&#039; constraints are met:&lt;br /&gt;
&lt;br /&gt;
# The &#039;&#039;&#039;subnet&#039;&#039;&#039; which the &#039;&#039;old&#039;&#039; node is a part of hasn&#039;t had a swap in the last &#039;&#039;&#039;4 hours&#039;&#039;&#039; - this limit is here to protect the subnet from losing its state from too many swaps happening at the same time.&lt;br /&gt;
#The &#039;&#039;&#039;node provider&#039;&#039;&#039; performing the swap hasn&#039;t made a swap on the &#039;&#039;&#039;subnet&#039;&#039;&#039; which the &#039;&#039;old&#039;&#039; node is a part of in the last &#039;&#039;&#039;24 hours&#039;&#039;&#039; - this limit is here to protect other node providers from being unable to swap nodes because one node provider is constantly swapping nodes within the &#039;&#039;&#039;2 hour&#039;&#039;&#039; limit of the 1st constraint.&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Node_Swapping_Guide&amp;diff=8683</id>
		<title>Node Provider Node Swapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Node_Swapping_Guide&amp;diff=8683"/>
		<updated>2025-12-19T15:54:02Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===🚧 &#039;&#039;&#039;Node swapping will be enabled for all the subnets in January 2026. It is now live for non-system subnets and can be used!&#039;&#039;&#039;===&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
Node providers run nodes on the Internet Computer and receive rewards depending on how well their nodes perform. Only nodes that contribute to the overall performance of the node provider are the nodes that are part of a subnet. Those nodes are called &#039;&#039;assigned&#039;&#039;. All other nodes that are not  part of any subnet and are not utilized don&#039;t contribute to the overall performance of the node provider. Those nodes are called &#039;&#039;unassigned&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
It is in the node providers best interest to keep the &#039;&#039;assigned&#039;&#039; nodes as well maintained and as operational as possible since that is how they can maximize their rewards. To achieve that over time, the node providers can utilize the &#039;&#039;&#039;node swapping&#039;&#039;&#039; feature.  &lt;br /&gt;
&lt;br /&gt;
==Node swapping==&lt;br /&gt;
Node swapping feature is used to &#039;&#039;swap&#039;&#039; an &#039;&#039;assigned&#039;&#039; node for an &#039;&#039;unassigned&#039;&#039; node owned by the same &#039;&#039;node operator&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
=====Example=====&lt;br /&gt;
A node provider notices that one of his nodes is performing poorly. In order to maximize their rewards, they want to act quickly and remove the &#039;&#039;assigned&#039;&#039; node from a subnet for a different &#039;&#039;unassigned&#039;&#039; node &#039;&#039;&#039;within the same data center&#039;&#039;&#039;. They use the &#039;&#039;&#039;node swapping feature&#039;&#039;&#039; to do that without &#039;&#039;&#039;any proposals or governance&#039;&#039;&#039;. After performing the swap they can perform maintenance on the node and see why it failed in the first place. &lt;br /&gt;
&lt;br /&gt;
==Performing a node swap==&lt;br /&gt;
To perform a node swap one has to follow the following steps:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: if the node is turned off before it gracefully leaves the subnet it will appear as malicious to the consensus which can result in rewards penalty!&lt;br /&gt;
&lt;br /&gt;
#Find the principal ID of an &#039;&#039;assigned&#039;&#039; node that should be removed from a subnet. To do that one can use various tools, but for the sake of this example we will show examples from [https://dashboard.internetcomputer.org/ the public dashboard].[[File:Node provider dead node part of a subnet.png|left|frameless|1000x1000px|Degraded node with its node ID and health status]]&lt;br /&gt;
#Find the principal ID of an &#039;&#039;unassigned&#039;&#039; node that should be added to a subnet in place of an &#039;&#039;assigned&#039;&#039; node picked in the previous step.  To do that one can click on the data center (below the &#039;&#039;&#039;DC ID&#039;&#039;&#039; &amp;quot;to1&amp;quot; for this example) of the node from the previous step which will take them to the view which contains all the node machines from the same data center. From there, pick the one that isn&#039;t &#039;&#039;assigned&#039;&#039; to any subnet (the &#039;&#039;&#039;subnet ID&#039;&#039;&#039; column should contain a &#039;-&#039;).[[File:Unassigned nodes in the same data center.png|left|frameless|1111x1111px]]&lt;br /&gt;
#Using ic-admin utility to perform a node swap:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Uncomment this if the node operator identity is behind a private key file&lt;br /&gt;
#AUTH=(&lt;br /&gt;
# &amp;quot;--secret-key-pem&amp;quot;&lt;br /&gt;
# &amp;lt;path-to-key-pem&amp;gt;&lt;br /&gt;
#)&lt;br /&gt;
&lt;br /&gt;
# Uncomment this if node operator identity is behind an hsm&lt;br /&gt;
#AUTH=(&lt;br /&gt;
# &amp;quot;--use-hsm&amp;quot;&lt;br /&gt;
# &amp;quot;--slot&amp;quot;&lt;br /&gt;
# &amp;lt;hsm-key-slot&amp;gt;&lt;br /&gt;
# &amp;quot;--key-id&amp;quot;&lt;br /&gt;
# &amp;lt;hsm-key-id&amp;gt;&lt;br /&gt;
# &amp;quot;--pin&amp;quot;&lt;br /&gt;
# &amp;lt;hsm-pin&amp;gt;&lt;br /&gt;
#)&lt;br /&gt;
&lt;br /&gt;
ic-admin --nns-urls https://ic0.app ${AUTH[@]} swap-node-in-subnet-directly \&lt;br /&gt;
    --old-node-id &amp;lt;principal-from-step-1&amp;gt; \&lt;br /&gt;
    --new-node-id &amp;lt;principal-from-step-2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#After the response from the call is successful the node doesn&#039;t leave the subnet immediately. There is &#039;&#039;&#039;graceful leaving period&#039;&#039;&#039; that needs to be awaited. It takes around 15-20 minutes depending on the subnet. If the logs of the node are observed through the BMC console there are two messages that need to show in order for the node to completely leave the subnet &#039;&#039;gracefully&#039;&#039;. The first log that indicates that the node noticed that the swapping was requested looks like the following:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Node started leaving subnet &amp;lt;subnet-id&amp;gt;.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;After some time the node will show the following log which indicates it left the subnet:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Node gracefully left a subnet &amp;lt;subnet-id&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#After the second log appears it is safe to turn off the node and proceed to do maintenance.&lt;br /&gt;
&lt;br /&gt;
== Limitations and constraints==&lt;br /&gt;
To ensure fair and safe use of the swapping feature there are some limitations and constraints about the usage of the feature that need to be shared. &lt;br /&gt;
&lt;br /&gt;
=====Ownership and locality constraints =====&lt;br /&gt;
A node provider &#039;&#039;&#039;can&#039;&#039;&#039; only perform a swap of two nodes if and only if the following &#039;&#039;locality&#039;&#039; constraints are met:&lt;br /&gt;
&lt;br /&gt;
#The &#039;&#039;old node&#039;&#039; is an &#039;&#039;assigned&#039;&#039; node (it is a part of a subnet) and the &#039;&#039;new node&#039;&#039; is an &#039;&#039;unassigned&#039;&#039; node (it isn&#039;t a part of any subnet).&lt;br /&gt;
#Both &#039;&#039;old&#039;&#039; and &#039;&#039;new&#039;&#039; nodes are owned by the same &#039;&#039;&#039;node provider&#039;&#039;&#039; and are located in the same &#039;&#039;&#039;data center&#039;&#039;&#039;. Furthermore they have to be owned by the same &#039;&#039;&#039;node operator.&#039;&#039;&#039; This is needed to ensure that the &#039;&#039;decentralization&#039;&#039; doesn&#039;t change when the swaps are performed.&lt;br /&gt;
&lt;br /&gt;
=====Rate limiting constraints=====&lt;br /&gt;
A node provider &#039;&#039;&#039;can&#039;&#039;&#039; only perform a swap of two nodes if and only if the following &#039;&#039;rate limiting&#039;&#039; constraints are met:&lt;br /&gt;
&lt;br /&gt;
# The &#039;&#039;&#039;subnet&#039;&#039;&#039; which the &#039;&#039;old&#039;&#039; node is a part of hasn&#039;t had a swap in the last &#039;&#039;&#039;4 hours&#039;&#039;&#039; - this limit is here to protect the subnet from losing its state from too many swaps happening at the same time.&lt;br /&gt;
#The &#039;&#039;&#039;node provider&#039;&#039;&#039; performing the swap hasn&#039;t made a swap on the &#039;&#039;&#039;subnet&#039;&#039;&#039; which the &#039;&#039;old&#039;&#039; node is a part of in the last &#039;&#039;&#039;24 hours&#039;&#039;&#039; - this limit is here to protect other node providers from being unable to swap nodes because one node provider is constantly swapping nodes within the &#039;&#039;&#039;2 hour&#039;&#039;&#039; limit of the 1st constraint.&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Reward_Configuration_Guide&amp;diff=8650</id>
		<title>Node Provider Reward Configuration Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Reward_Configuration_Guide&amp;diff=8650"/>
		<updated>2025-11-25T15:55:12Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: fixed max-rewardable-nodes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;After onboarding all your nodes, you must submit a reward configuration proposal in order to start receiving node rewards. If you do not do this, you will not receive node rewards. Proposals must be executed prior to the [https://next-rewards-gnj.caffeine.xyz/ next minting date] in order to be included.&lt;br /&gt;
&lt;br /&gt;
In the next code block:&lt;br /&gt;
&lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;NEURON_ID&amp;lt;/code&amp;gt; value with your neuron ID from the NNS Frontend Dapp (step 3.6 from the [[Node Provider Onboarding]]).&lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;NODE_OPERATOR_PRINCIPAL&amp;lt;/code&amp;gt; value with your node operator principal (step 7.1 from the [[Node Provider Onboarding]]).&lt;br /&gt;
*Replace &amp;lt;code&amp;gt;NODE_1_MACHINE_ID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NODE_2_MACHINE_ID&amp;lt;/code&amp;gt; ... &amp;lt;code&amp;gt;NODE_N_MACHINE_ID&amp;lt;/code&amp;gt; with the node machine IDs for all N of your node machines (found on the [https://dashboard.internetcomputer.org/ dashboard])&lt;br /&gt;
*Replace &amp;lt;code&amp;gt;NODE_COUNT&amp;lt;/code&amp;gt; with the number of nodes you are setting a reward configuration for.  *Important : &#039;&#039;If you adding nodes to a previous node allocation or updating a previous node operator record, you have to make sure the total node count should be accounted for&#039;&#039; &#039;&#039;in the&#039;&#039; &amp;lt;code&amp;gt;NODE_COUNT&amp;lt;/code&amp;gt; &#039;&#039;parameter.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== 1. Create the proposal ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ NEURON_ID = XXXXXXXXXXXXXXXXXXXX&lt;br /&gt;
$ NODE_OPERATOR_PRINCIPAL = xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx&lt;br /&gt;
$ ./ic-admin \&lt;br /&gt;
        --nns-url https://ic0.app \&lt;br /&gt;
        -s ~/.config/dfx/identity/node-provider-hotkey/identity.pem \&lt;br /&gt;
    propose-to-update-node-operator-config \&lt;br /&gt;
        --proposer $NEURON_ID \&lt;br /&gt;
        --summary &amp;quot;Set rewards for the following nodes:&lt;br /&gt;
&lt;br /&gt;
        * NODE_1_MACHINE_ID&lt;br /&gt;
        * NODE_2_MACHINE_ID&lt;br /&gt;
        * ...&lt;br /&gt;
        * NODE_N_MACHINE_ID&lt;br /&gt;
        &amp;quot; \&lt;br /&gt;
        --node-operator-id $NODE_OPERATOR_PRINCIPAL \&lt;br /&gt;
        --max-rewardable-nodes &#039;{&amp;quot;type3.1&amp;quot;: NODE_COUNT}&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default reward configuration for Gen2 nodes is &amp;lt;code&amp;gt;type3.1&amp;lt;/code&amp;gt;. If a different node configuration is applicable to your node models, replace this value. &lt;br /&gt;
&lt;br /&gt;
Example reward configuration proposal for 3 Gen2 nodes:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ NEURON_ID = 13419667327548602649&lt;br /&gt;
$ NODE_OPERATOR_PRINCIPAL = uqquy-76uhn-2mys5-dh54e-85ntr-sr953-redif-zkte3-94ndi-st2i1-93t&lt;br /&gt;
$ ./ic-admin \&lt;br /&gt;
        --nns-url https://ic0.app \&lt;br /&gt;
        -s ~/.config/dfx/identity/node-provider-hotkey/identity.pem \&lt;br /&gt;
    propose-to-update-node-operator-config \&lt;br /&gt;
        --proposer $NEURON_ID \&lt;br /&gt;
        --summary &amp;quot;Set rewards for the following nodes:&lt;br /&gt;
&lt;br /&gt;
        * sed94-atzdo-rltqy-tmnhr-fvspg-fat3p-sdbjp-7q3jg-dgfcq-zrlap-cqe&lt;br /&gt;
        * uq4uy-76uhn-2mys5-dh54e-85ntr-sr953-redif-zkte3-94ndi-st2i1-93t-sdjsl-vjlfn-6duch-vskdu-26pf5-cwibg-zooqk-sdn2e-cgugm-tae&lt;br /&gt;
        * 39esy-hmrb2-nfvao-t42co-tqfed-y3i7c-xqxyp-idt2w-wgmgr-l4x7l-gae&lt;br /&gt;
        &amp;quot; \&lt;br /&gt;
        --node-operator-id $NODE_OPERATOR_PRINCIPAL \&lt;br /&gt;
        --max-rewardable-nodes &#039;{&amp;quot;type3.1&amp;quot;: 3}&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 2. Find the proposal on https://dashboard.internetcomputer.org/governance and wait until it has been executed. ====&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Onboarding&amp;diff=8649</id>
		<title>Node Provider Onboarding</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Onboarding&amp;diff=8649"/>
		<updated>2025-11-25T15:51:46Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: changed node-allowance to max-rewardable-nodes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Learn how to be accepted by the NNS as a Node Provider and onboard your nodes to the IC.&lt;br /&gt;
&lt;br /&gt;
Please allocate up to a week to complete this guide, as it may take several days for a proposal to be accepted by the NNS, and you may have to submit multiple NNS proposals. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note that the following steps do not need to be performed on the node machine itself.&#039;&#039;&#039; You can complete them on your personal laptop.&lt;br /&gt;
&lt;br /&gt;
If you encounter issues through any of these steps, check the [[Node Provider Troubleshooting]] page. If that does not solve your problem, you are encouraged to ask for assistance in the [[Node Provider Matrix channel]].&lt;br /&gt;
&lt;br /&gt;
For regular operations after onboarding, please refer to [[Node Provider Maintenance Guide|Node Provider Maintenance Guide.]]&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;&amp;lt;big&amp;gt;Requirements&amp;lt;/big&amp;gt;&#039;&#039;&#039; ==&lt;br /&gt;
* Assure your node(s) meet the [[Node Provider Machine Hardware Guide|Node Provider Machine Hardware requirements.]]&lt;br /&gt;
* View the [[Node Provider Networking Guide|Node Provider Networking Guide.]]&lt;br /&gt;
* Setup a [https://www.ledger.com/ hardware wallet].&lt;br /&gt;
*[https://shop.nitrokey.com/shop/product/nkhs2-nitrokey-hsm-2-7/ NitroKey HSM] (Optional, legacy—not recommended).&lt;br /&gt;
* 26 ICP (25 of which are to be staked for the NNS proposal deposit).&lt;br /&gt;
* Basic understanding of [[Neurons 101|neurons]], [https://internetcomputer.org/docs/current/tokenomics/nns/nns-staking-voting-rewards staking], and [[Governance of the Internet Computer|governance]] proposals, such as understanding what it means to stake a neuron for 8 years.&lt;br /&gt;
&lt;br /&gt;
== 1. Install the required tools ==&lt;br /&gt;
===&#039;&#039;&#039; A. Install ic-admin &#039;&#039;&#039;===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ic-admin&amp;lt;/code&amp;gt; is the tool used to create and submit NNS proposals. You can install it by running the following in a terminal:&lt;br /&gt;
&lt;br /&gt;
==== MacOS ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
curl -L &amp;quot;https://github.com/dfinity/ic/releases/latest/download/ic-admin-x86_64-darwin.gz&amp;quot; -o - | gunzip &amp;gt; ic-admin &amp;amp;&amp;amp; chmod 0755 ./ic-admin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
NOTE: The instructions below have been tested with the Ubuntu 20.04 release&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
curl -L &amp;quot;https://github.com/dfinity/ic/releases/latest/download/ic-admin-x86_64-linux.gz&amp;quot; -o - | gunzip &amp;gt; ic-admin &amp;amp;&amp;amp; chmod 0755 ./ic-admin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039; B. Install dfx &#039;&#039;&#039;===&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;code&amp;gt;dfx&amp;lt;/code&amp;gt; is a CLI tool used to generate neuron hotkeys, among other things such as canister deployment and management. &amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ sh -ci &amp;quot;$(curl -fsSL https://internetcomputer.org/install.sh)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#Verify that &amp;lt;code&amp;gt;dfx&amp;lt;/code&amp;gt; is up to date. &amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ export PATH=$HOME/bin:$PATH&lt;br /&gt;
$ dfx upgrade&lt;br /&gt;
$ dfx --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==2. Create Node Provider hotkey ==&lt;br /&gt;
&lt;br /&gt;
#Create an identity for the Node Provider &#039;&#039;&#039;hotkey&#039;&#039;&#039; &amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ dfx identity new --storage-mode=plaintext node-provider-hotkey&lt;br /&gt;
&lt;br /&gt;
Created identity: &amp;quot;node-provider-hotkey&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ dfx --identity node-provider-hotkey identity get-principal&lt;br /&gt;
&lt;br /&gt;
xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx&lt;br /&gt;
# example node-provider-hotkey: wuyst-x5tpn-g5wri-mp3ps-vjtba-de3xs-w5xgb-crvek-tucbe-o5rqi-mae&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&#039;&#039;&#039;You will need the Node Provider hotkey in the next steps.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The Node Provider hotkey is NOT the Node Provider principal. This is the hotkey that is used for the NNS proposal submissions only.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: You may be prompted to enter a passphrase when creating your identity and accessing your identity principal. Take note of the passphrase you choose.&lt;br /&gt;
&lt;br /&gt;
==3. Create and Manage Neuron via NNS Frontend Dapp and Internet Identity==&lt;br /&gt;
&lt;br /&gt;
#Send at least 26 ICP tokens to your hardware wallet address.&lt;br /&gt;
#Navigate to the Neurons tab and create a Neuron by staking at least 26 ICP from your hardware wallet. Staking more ICP is acceptable, but 25 is the minimum needed for this process, and you must have a little more for transaction fees.&lt;br /&gt;
#&amp;lt;u&amp;gt;IMPORTANT!&amp;lt;/u&amp;gt; Confirm the transaction on your hardware wallet. &lt;br /&gt;
#:[[File:-docs-stake_neuron_1.png|1024px|stake neuron]]&lt;br /&gt;
#After the Neuron has been created successfully, confirm to &amp;quot;Add NNS Dapp as hotkey&amp;quot; in the dialogue and on your hardware wallet, and close the dialog after the action completes.&lt;br /&gt;
#:[[File:-docs-stake_neuron_2.png|1024px|neuron id]]&lt;br /&gt;
#Set the dissolve delay to at least 6 months, and confirm the choice in the dialogue and on your hardware wallet. After the action completes, you can close the &amp;quot;Follow Neurons&amp;quot;.&lt;br /&gt;
#:[[File:dissolve_delay.png|480px|neuron id]]&lt;br /&gt;
#You will now see a Neuron listed with its ID. Copy the Neuron ID, since you will need it in the next steps to place the necessary proposals.&lt;br /&gt;
#:[[File:Neuron id.png|1024px]]&lt;br /&gt;
&lt;br /&gt;
==4. Add hotkeys==&lt;br /&gt;
&lt;br /&gt;
#Select the Neuron you just created to open Neuron management view and press “Add hotkey” button.&lt;br /&gt;
#:[[File:Hotkey 1.png|873x873px]]&lt;br /&gt;
# A dialog will pop up where you can enter the hotkey you generated in step 2.1 (output from command &amp;lt;code&amp;gt;dfx --identity node-provider-hotkey identity get-principal&amp;lt;/code&amp;gt;). This will allow you to submit NNS proposals using &amp;lt;code&amp;gt;ic-admin&amp;lt;/code&amp;gt; and will not be used for anything else.&amp;lt;br&amp;gt;&lt;br /&gt;
#:Press the &#039;&#039;&#039;confirm&#039;&#039;&#039; button and confirm the transactions on your hardware wallet.&amp;lt;br&amp;gt;&lt;br /&gt;
#:[[File:Hotkey 2.png|899x899px]]&lt;br /&gt;
#Get the Ledger Hardware Wallet Principal Id: Navigate back to ICP page and select your Ledger hardware wallet account. You will need to use this Ledger Hardware Wallet principal as the Node Provider principal in order to get the rewards directly into the secure hardware wallet.&lt;br /&gt;
#:[[File:Node provider principal 1.png|1024px]]&lt;br /&gt;
#:[[File:Node provider principal 2.png|800px]]&lt;br /&gt;
#Copy and save this Node Provider principal by clicking on the copy icon after the principal id. You&#039;ll need it in the next steps. &amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ NODE_PROVIDER_PRINCIPAL=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx   &lt;br /&gt;
# Input ledger Hardware Wallet principal, from the NNS FrontEnd dapp https://nns.ic0.app/&lt;br /&gt;
&lt;br /&gt;
# example: $ NODE_PROVIDER_PRINCIPAL=fharn-5vyi2-4xb4a-64yyi-3jpmj-pga23-mxy25-d5uim-fqcro-eoefh-tae&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==5. Choose onboarding path (HSM vs no HSM)==&lt;br /&gt;
Onboarding &#039;&#039;&#039;without&#039;&#039;&#039; a NitroKey HSM is the current onboarding path. In particular, node providers onboarding [[Node Provider Machine Hardware Guide|Gen 2 hardware]] must onboard &#039;&#039;&#039;without&#039;&#039;&#039; a NitroKey HSM. If you will be onboarding &#039;&#039;&#039;without&#039;&#039;&#039; a NitroKey HSM, continue to the next step.  &lt;br /&gt;
&lt;br /&gt;
If the legacy procedure is required for your onboarding (which should only be the case in rare and exceptional situations), follow the [[NitroKey HSM onboarding instructions]] and then &#039;&#039;&#039;return to step 8.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
==6. Setup the Node Operator keys ==&lt;br /&gt;
#&#039;&#039;&#039;&#039;&#039;Ensure dfx is at least version 0.14.&#039;&#039;&#039;&#039;&#039; Node Operator keys created with older versions of dfx &#039;&#039;&#039;will fail to join the IC&#039;&#039;&#039;.  Run:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ dfxvm update&lt;br /&gt;
$ dfx --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#Create a new principal with dfx:&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ dfx identity new --storage-mode=plaintext node_operator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#Confirm &amp;lt;code&amp;gt;node_operator&amp;lt;/code&amp;gt; identity was created successfully:&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ dfx identity list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;This list &#039;&#039;should&#039;&#039; contain &amp;lt;code&amp;gt;node_operator&amp;lt;/code&amp;gt;.&lt;br /&gt;
#Copy new key to a known location:&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ cp ~/.config/dfx/identity/node_operator/identity.pem ./node_operator_private_key.pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#Check the contents of the &amp;lt;code&amp;gt;node_operator_private_key.pem&amp;lt;/code&amp;gt; file and double check that it contains the following contents. It is imperative that the first line has &amp;lt;code&amp;gt;-----BEGIN EC PRIVATE KEY-----&amp;lt;/code&amp;gt;. If it does not, make sure you use the latest &amp;lt;code&amp;gt;dfx&amp;lt;/code&amp;gt; version and that you followed the instructions precisely.&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
❯ cat ./node_operator_private_key.pem&lt;br /&gt;
-----BEGIN EC PRIVATE KEY-----&lt;br /&gt;
[3 lines of base64 encoded private key, e.g. n2Nhp68YcQpuS0u96r...]&lt;br /&gt;
-----END EC PRIVATE KEY-----&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Note: you must retain access to the &amp;lt;code&amp;gt;node_operator_private_key.pem&amp;lt;/code&amp;gt; file for when you onboard nodes in &#039;&#039;&#039;[https://wiki.internetcomputer.org/wiki/Node_Provider_Roadmap#Milestone_Five:_Node_Machine_Onboarding roadmap milestone five.]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==7. Get the node operator principal==&lt;br /&gt;
&lt;br /&gt;
#Get the principal:&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ NODE_OPERATOR_PRINCIPAL=$(dfx --identity node_operator identity get-principal)&lt;br /&gt;
$ echo $NODE_OPERATOR_PRINCIPAL&lt;br /&gt;
&lt;br /&gt;
uqquy-76uhn-2mys5-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;You will need the node operator principal in the next steps.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==8. Register your Node Provider principal to the network==&lt;br /&gt;
In the next codeblock: &lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;NODE_PROVIDER_NAME&amp;lt;/code&amp;gt; value with the name of the entity that will provide the nodes.&lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;NODE_PROVIDER_PRINCIPAL&amp;lt;/code&amp;gt; value with the Ledger Hardware Wallet principal that you got from the NNS Frontend Dapp (step 4.4)&lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;NEURON_ID&amp;lt;/code&amp;gt; value with your neuron ID from the NNS Frontend Dapp (step 3.6)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039;&#039;&#039; Please make sure that you also update the &amp;lt;code&amp;gt;--summary&amp;lt;/code&amp;gt; and include a link to the forum discussion, your company&#039;s web page, and/or to another place that can convince the voting community that you are making a legitimate request. You must also include the file hash for the [[Node Provider Self-declaration|self declaration and proof of identity documents]], or the proposal will be rejected. This way you will avoid the community voting NO to your proposal and you losing your staked ICPs.&lt;br /&gt;
&lt;br /&gt;
##Create the Proposal &amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ NODE_PROVIDER_NAME=&amp;quot;My Company&amp;quot;&lt;br /&gt;
$ NODE_PROVIDER_PRINCIPAL=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx&lt;br /&gt;
$ NEURON_ID=XXXXXXXXXXXXXXXXXXXX&lt;br /&gt;
$ ./ic-admin \&lt;br /&gt;
        --nns-url https://ic0.app \&lt;br /&gt;
        -s ~/.config/dfx/identity/node-provider-hotkey/identity.pem \&lt;br /&gt;
    propose-to-add-or-remove-node-provider add \&lt;br /&gt;
        --proposer $NEURON_ID \&lt;br /&gt;
        --proposal-title &amp;quot;Register a node provider &#039;${NODE_PROVIDER_NAME}&#039;&amp;quot; \&lt;br /&gt;
        --summary &amp;quot;Register a node provider &#039;${NODE_PROVIDER_NAME}&#039;, in line with the announcement and discussion at &amp;lt;https://forum.dfinity.org/t/...&amp;gt;. The self-declaration documentation is available at &amp;lt;https://wiki.internetcomputer.org/wiki/...&amp;gt; with SHA256 hash &amp;lt;SHA256&amp;gt;. The proof of identity is available at &amp;lt;https://wiki.internetcomputer.org/wiki/...&amp;gt; with SHA256 hash &amp;lt;SHA256&amp;gt;.&amp;quot; \&lt;br /&gt;
        --node-provider-pid &amp;quot;$NODE_PROVIDER_PRINCIPAL&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Note: make sure &amp;lt;code&amp;gt;${NODE_PROVIDER_NAME}&amp;lt;/code&amp;gt; is presented in single quotes, so the IC dashboard can pick up and display the correct Node Provider name.&lt;br /&gt;
#Find the proposal on https://dashboard.internetcomputer.org/governance and &#039;&#039;&#039;wait until it is executed before proceeding to next step.&#039;&#039;&#039;&lt;br /&gt;
#In order to expedite the speed of your proposal&#039;s approval, it is best to create a post in this [https://forum.dfinity.org/t/new-node-provider-proposals/16643/69 forum thread] to raise awareness of your proposal. You can use this as a [https://docs.google.com/document/d/1nKy5hKiF72a4NCHvpgij-Np9pbtR5KOBbF1W6qr-nds/edit?usp=sharing template] for the post.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See guide for [[Troubleshooting Failed NNS proposals]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==9. Register your datacenter to the network (if necessary)==&lt;br /&gt;
#Search for your data center on https://dashboard.internetcomputer.org/centers. &lt;br /&gt;
#*If you found the datacenter that is hosting your nodes, remember its ID, and skip the following section. Otherwise, proceed with the registration of a new DC record.&lt;br /&gt;
#:[[File:dc_id.png|1041x1041px|alt=]]&lt;br /&gt;
===Create a data center record for a new DC===&lt;br /&gt;
In the next block of code:&lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;NEURON_ID&amp;lt;/code&amp;gt; value with your neuron ID from the NNS Frontend Dapp (step 3.6)&lt;br /&gt;
*Replace the JSON fields from the &amp;lt;code&amp;gt;–data-centers-to-add&amp;lt;/code&amp;gt; argument and their corresponding values in &amp;lt;code&amp;gt;--summary&amp;lt;/code&amp;gt;:&lt;br /&gt;
**&amp;lt;code&amp;gt;&amp;amp;quot;id&amp;amp;quot;&amp;lt;/code&amp;gt; represents the city that your datacenter is in and is formulated as a combination of two letters representing the city and an incrementing number. Search data center IDs on https://dashboard.internetcomputer.org, and find a combination of two letters that’s not yet registered.&lt;br /&gt;
***&#039;&#039;If the city or region where the new DC is located, has already been &amp;quot;named&amp;quot; by another DC in the same city or region, then pick the same letters and increment the number.&#039;&#039;&lt;br /&gt;
***&#039;&#039;If there is no other DC in this city or region, then pick a new letter-abbreviation that is not used yet and give it the number 1.&#039;&#039;&lt;br /&gt;
***Examples:&lt;br /&gt;
****dl1 (Dallas, no IDs with “dl” prefix)&lt;br /&gt;
****zh10 (Zurich, numbers 0-9 are already registered)&lt;br /&gt;
***:[[File:dc_id.png|1024px]]&lt;br /&gt;
**&amp;lt;code&amp;gt;&amp;amp;quot;region&amp;amp;quot;&amp;lt;/code&amp;gt; represents the local region of a datacenter and is formulated as a three-part string divided by commas. The three parts making the string are continent, country code, and region, in the given order. Examples:&lt;br /&gt;
***North America,US,Florida&lt;br /&gt;
***Europe,DE,Bavaria&lt;br /&gt;
***Asia,SG,Singapore&lt;br /&gt;
**:[[File:datacenter_region.png|1024px]]&lt;br /&gt;
**&amp;lt;code&amp;gt;&amp;amp;quot;owner&amp;amp;quot;&amp;lt;/code&amp;gt; The entity that provides your datacenter facilities. &lt;br /&gt;
***Search https://dashboard.internetcomputer.org for existing data center providers.&lt;br /&gt;
***If there’s match, make sure you use the same exact some name for your datacenter.&lt;br /&gt;
***Otherwise, name the data center owner to your best knowledge.&lt;br /&gt;
**:[[File:datacenter_owner.png|1024px]]&lt;br /&gt;
**&amp;lt;code&amp;gt;&amp;amp;quot;gps&amp;amp;quot;&amp;lt;/code&amp;gt; GPS coordinates. &lt;br /&gt;
***Find your datacenter on https://www.google.com/maps/.&lt;br /&gt;
***Right click on location, and select the GPS coordinates (first item in the menu) in order to copy them.&lt;br /&gt;
**:[[File:maps.png|310x310px|alt=Getting GPS coordinates|Getting GPS coordinates]]&lt;br /&gt;
&lt;br /&gt;
#Create the proposal. **Make sure you include in the text of the proposal, a link to your forum post with additional details and reference so the community can easily find additional information and ask questions. &amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ NEURON_ID=XXXXXXXXXXXXXXXXXXXX&lt;br /&gt;
$ ./ic-admin \&lt;br /&gt;
        --nns-url https://ic0.app \&lt;br /&gt;
        -s ~/.config/dfx/identity/node-provider-hotkey/identity.pem \&lt;br /&gt;
    propose-to-add-or-remove-data-centers \&lt;br /&gt;
        --summary &amp;quot;Register a Flexential datacenter as dl1 in North America,US,Texas&amp;quot; \&lt;br /&gt;
        --skip-confirmation \&lt;br /&gt;
        --proposer $NEURON_ID \&lt;br /&gt;
        --data-centers-to-add &#039;{&lt;br /&gt;
            &amp;quot;id&amp;quot;: &amp;quot;dl1&amp;quot;,&lt;br /&gt;
            &amp;quot;region&amp;quot;: &amp;quot;North America,US,Texas&amp;quot;,&lt;br /&gt;
            &amp;quot;owner&amp;quot;: &amp;quot;Flexential&amp;quot;,&lt;br /&gt;
            &amp;quot;gps&amp;quot;: [&lt;br /&gt;
                33.00803, -96.66614&lt;br /&gt;
            ]&lt;br /&gt;
        }&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&#039;&#039;&#039;Remember to replace all the values of both the arguments &amp;lt;code&amp;gt;–data-centers-to-add&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--summary&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
#Find the proposal on https://dashboard.internetcomputer.org/governance and wait until it&#039;s executed before proceeding to next step.&lt;br /&gt;
#In order to expedite the speed of your proposal&#039;s approval, it is best to create a post in this [https://forum.dfinity.org/t/new-node-provider-proposals/16643/69 forum thread] to raise awareness of your proposal. You can use this as a [https://docs.google.com/document/d/1Hg0tI9O5__Tp4qKrNKuTADsQT7Z47I6aAFXbiDimG_U/edit?usp=sharing template] for the post.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See guide for [[Troubleshooting Failed NNS proposals]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==10. Create a node operator record==&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;:&#039;&#039; Before submitting the Node Operator record, please go through the description of [[Validation of Candidate Node Machines]] to validate whether additional node machines are needed for decentralization of the IC-network. &lt;br /&gt;
&lt;br /&gt;
*Create a pdf with the outcome of running the optimization model and the steps that allow the community to reproduce the validation check.&lt;br /&gt;
*Include the pdf in the wiki page that includes the NP documents (self-declaration and proof-of-identity document)&lt;br /&gt;
*Include a link to the pdf as well as the hash of the document in the Node Operator record proosal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the next codeblock:&lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;NEURON_ID&amp;lt;/code&amp;gt; value with your neuron ID from the NNS Frontend Dapp (step 3.6).&lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;NODE_PROVIDER_PRINCIPAL&amp;lt;/code&amp;gt; value with the Ledger Hardware Wallet principal that you got from the NNS Frontend Dapp (step 4.4).&lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;NODE_OPERATOR_PRINCIPAL&amp;lt;/code&amp;gt; value with your node operator principal (step 7.1). &#039;&#039;&#039;Important&#039;&#039;&#039;: if you are adding an additional node operator record because you will deploy nodes in another data center, please make sure to create a new node operator principal first (steps 6 and 7). A node operator principal can only be tied to 1 data center.&lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;NODE_PROVIDER_NAME&amp;lt;/code&amp;gt; value with the name of the entity that will provide the nodes.&lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;REWARDABLE_NODES&amp;lt;/code&amp;gt; variable value with number of nodes you are providing.&lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;DC_ID&amp;lt;/code&amp;gt; variable value with id of your datacenter.&lt;br /&gt;
&lt;br /&gt;
#Create the proposal: &amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ NEURON_ID=XXXXXXXXXXXXXXXXXXXX&lt;br /&gt;
$ NODE_PROVIDER_PRINCIPAL=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx&lt;br /&gt;
$ NODE_OPERATOR_PRINCIPAL=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx&lt;br /&gt;
$ NODE_PROVIDER_NAME=&amp;quot;My Company&amp;quot;&lt;br /&gt;
$ REWARDABLE_NODES=&#039;{&amp;quot;type3.1&amp;quot;: 1}&#039;&lt;br /&gt;
$ DC_ID=dl1&lt;br /&gt;
&lt;br /&gt;
$ ./ic-admin \&lt;br /&gt;
        --nns-url https://ic0.app \&lt;br /&gt;
        -s ~/.config/dfx/identity/node-provider-hotkey/identity.pem \&lt;br /&gt;
    propose-to-add-node-operator \&lt;br /&gt;
        $NODE_PROVIDER_PRINCIPAL \&lt;br /&gt;
        --summary &amp;quot;Node provider &#039;$NODE_PROVIDER_NAME&#039; is adding $NODE_ALLOWANCE nodes in the $DC_ID data center. The result of the canidate node machine validation and exact configuration run is available at &amp;lt;https://wiki.internetcomputer.org/wiki/...&amp;gt; with SHA256 hash &amp;lt;SHA256&amp;gt;.&amp;quot; \&lt;br /&gt;
        --proposer $NEURON_ID \&lt;br /&gt;
        --node-operator-principal-id $NODE_OPERATOR_PRINCIPAL \&lt;br /&gt;
        --max-rewardable-nodes $REWARDABLE_NODES \&lt;br /&gt;
        --dc-id $DC_ID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#Find the proposal on https://dashboard.internetcomputer.org/governance and wait until it&#039;s executed before proceeding to next step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See guide for [[Troubleshooting Failed NNS proposals]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Remuneration&amp;diff=8648</id>
		<title>Node Provider Remuneration</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Remuneration&amp;diff=8648"/>
		<updated>2025-11-24T00:24:16Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: Added PBR&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Rewards ==&lt;br /&gt;
&lt;br /&gt;
Node Providers receive rewards (remuneration) for owning node machines that run in the Internet Computer network. Node Provider rewards are set by the NNS DAO, with changes only possible through NNS proposals adopted by the Internet Computer community.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;NNS mints Node Provider Rewards every ~2,629,700 seconds&#039;&#039;&#039;, which is 1/12th of a year. You can find the last and next minting dates [https://next-rewards-gnj.caffeine.xyz/ here]. &lt;br /&gt;
&lt;br /&gt;
The NNS uses the 30-day moving average price of ICP in Special Drawing Rights (XDR), an international reserve asset created by the International Monetary Fund (IMF). This value is tracked on the [https://dashboard.internetcomputer.org Internet Computer Dashboard] as part of the [https://dashboard.internetcomputer.org/network Network Overview], on the &amp;quot;Conversion Rate&amp;quot; chart. (See [[How the 30-Day Moving Average Is Calculated]].) Rewards for the previous month are converted to ICP and transferred to account of the principal registered by the Node Provider in the [[Node Provider Onboarding|Node Onboarding]] process.&lt;br /&gt;
&lt;br /&gt;
These are the current rewards, but reward changes can be proposed to the NNS and adopted by voters at any time.&lt;br /&gt;
&lt;br /&gt;
== Remuneration models ==&lt;br /&gt;
The NNS distributes rewards depending on:&lt;br /&gt;
&lt;br /&gt;
* The generation of the node hardware (gen-1/gen-2)&lt;br /&gt;
* Geographic location&lt;br /&gt;
* The total number of nodes a provider operates&amp;lt;br /&amp;gt;&lt;br /&gt;
Different hardware generations lead to varying capital expenditures (CAPEX) and operating expenditures (OPEX), which can also fluctuate based on geographic location. Furthermore, certain locations are deemed more valuable for enhancing network decentralization, resulting in higher rewards for Node Providers in those areas.&lt;br /&gt;
&lt;br /&gt;
Two [[Node Provider Machine Hardware Guide|node machine hardware generations]] are currently recognized: gen-1 and gen-2. Each hardware generation is associated with its own remuneration model. Some cost estimates are provided for the current 2nd generation, but keep in mind that actual hardware and operational expenses may differ.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Hardware Type&lt;br /&gt;
|Remuneration Model&lt;br /&gt;
|-&lt;br /&gt;
|Gen-1&lt;br /&gt;
|Gen-1 type-0&lt;br /&gt;
|-&lt;br /&gt;
|Gen-1 + storage upgrade&lt;br /&gt;
|Gen-1 type-1&lt;br /&gt;
|-&lt;br /&gt;
|Gen-2&lt;br /&gt;
|V2: Gen-2 remuneration&lt;br /&gt;
V2.2: Gen-2 remuneration update&lt;br /&gt;
|-&lt;br /&gt;
|Gen-3&lt;br /&gt;
|V3: Gen-3 remuneration&lt;br /&gt;
|}In the future, a remuneration model will be proposed that includes both automated incentives, rewards, and penalties.  &lt;br /&gt;
&lt;br /&gt;
== Initial Gen-1 Remuneration Model ==&lt;br /&gt;
&lt;br /&gt;
Nodes purchased prior to Genesis were considered Gen-1 nodes. All nodes started out as type-0 with the following calculations:   &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;TYPE-0&#039;&#039;&#039;&lt;br /&gt;
|Reward per month (in XDR)&lt;br /&gt;
|-&lt;br /&gt;
|USA&lt;br /&gt;
|873&lt;br /&gt;
|-&lt;br /&gt;
|US - FL/GA/CA&lt;br /&gt;
|1087&lt;br /&gt;
|-&lt;br /&gt;
|EU&lt;br /&gt;
|1087&lt;br /&gt;
|-&lt;br /&gt;
|Asia&lt;br /&gt;
|1212&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After the first nodes were up and running, the decision was made to increase the storage capacity of all nodes to support larger subnet states. Thus, a type-1 table was created to reward for the additional costs that the extra storage incurred. Rewards were also broken down further by country. These type-1 values include both the original equipment costs incurred by Gen-1 Node Providers, their operating costs, and the varied costs that Node Providers incurred to purchase the additional storage, ship it to their data centers, and get it installed in each server. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;TYPE-1&#039;&#039;&#039;                                &lt;br /&gt;
|Total rewards per node (in XDR)&lt;br /&gt;
|-&lt;br /&gt;
|US - FL/GA/CA&lt;br /&gt;
|1600&lt;br /&gt;
|-&lt;br /&gt;
|US - other&lt;br /&gt;
|1499&lt;br /&gt;
|-&lt;br /&gt;
|Canada&lt;br /&gt;
|1624&lt;br /&gt;
|-&lt;br /&gt;
|Slovenia&lt;br /&gt;
|1720&lt;br /&gt;
|-&lt;br /&gt;
|Switzerland&lt;br /&gt;
|1696&lt;br /&gt;
|-&lt;br /&gt;
|EU - other&lt;br /&gt;
|1584&lt;br /&gt;
|-&lt;br /&gt;
|Singapore&lt;br /&gt;
|1842&lt;br /&gt;
|-&lt;br /&gt;
|Japan&lt;br /&gt;
|1773&lt;br /&gt;
|}&lt;br /&gt;
An [[Proposed Gen-1 Remuneration Model|Interim Gen-1 Remuneration Model]] was initially approved for when the original 48-month agreements are completed, but it has since been replaced with the Gen-1.1 Remuneration Model.&lt;br /&gt;
&lt;br /&gt;
== Gen-1.1 Remuneration Model ==&lt;br /&gt;
This section presents the remuneration model for Gen-1 servers which are continuing to run as IC nodes beyond their initial 48 months.&lt;br /&gt;
&lt;br /&gt;
With the adoption of [https://dashboard.internetcomputer.org/proposal/132553 motion proposal #132553] as discussed in [https://forum.dfinity.org/t/proposal-update-interim-gen-1-node-provider-remuneration-after-48-months/35001 this forum post], a new post-48-month remuneration model was adopted for Gen1 node machines. This remuneration model implements fixed and lower rewards for Gen1 node machines after 48 months of operation, with a maximum of 42 nodes per node provider. The expected length of time that these rewards will remain in force is 24 months. &lt;br /&gt;
&lt;br /&gt;
With the adoption of [https://dashboard.internetcomputer.org/proposal/135253 motion proposal 135253] as discussed in [https://forum.dfinity.org/t/proposal-update-interim-gen-1-node-provider-remuneration-after-48-months/35001/208 this forum post], an extra 10% of the highest Gen-1.1 rewards was given to the node providers that chose to relocate their nodes to a non-EU member state. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!TYPE-1.1&lt;br /&gt;
!Reward per node per month (in XDR)&lt;br /&gt;
|-&lt;br /&gt;
|US - FL/GA/CA&lt;br /&gt;
|1072&lt;br /&gt;
|-&lt;br /&gt;
|US - other&lt;br /&gt;
|1004&lt;br /&gt;
|-&lt;br /&gt;
|Canada&lt;br /&gt;
|1088&lt;br /&gt;
|-&lt;br /&gt;
|Slovenia&lt;br /&gt;
|1152&lt;br /&gt;
|-&lt;br /&gt;
|Switzerland&lt;br /&gt;
|1136&lt;br /&gt;
|-&lt;br /&gt;
|EU - other&lt;br /&gt;
|1061&lt;br /&gt;
|-&lt;br /&gt;
|Singapore&lt;br /&gt;
|1234&lt;br /&gt;
|-&lt;br /&gt;
|Japan&lt;br /&gt;
|1188&lt;br /&gt;
|-&lt;br /&gt;
|Non-EU (relocation)&lt;br /&gt;
|1357&lt;br /&gt;
|}&lt;br /&gt;
As part of that approved motion proposal: &lt;br /&gt;
&lt;br /&gt;
* Excess nodes may be sold to another NP while keeping the nodes in the same data center.&lt;br /&gt;
* Excess nodes may be sold to an optimal NP with the nodes moved to a new country and data center.&lt;br /&gt;
* No node provider can have more than 42 nodes.&lt;br /&gt;
The steps that the new NP must follow are outlined here: [[Steps for Gen-1 Node onboarding after 48 months]]&lt;br /&gt;
&lt;br /&gt;
== Gen-2 Remuneration Model ==&lt;br /&gt;
&lt;br /&gt;
This section presents the remuneration model for 2nd generation Node Providers.&lt;br /&gt;
&lt;br /&gt;
Based on the feedback from Node Providers and the community, discussed in this [https://forum.dfinity.org/t/the-state-and-direction-of-decentralization-nodes-on-the-internet-computer/9170/128?u=svenf forum post], the Gen2 remuneration model is based on the following principles:&lt;br /&gt;
* Higher rewards for the first nodes of a new Node Provider in order to attract more Node Providers in an effort to improve ownership decentralization.&lt;br /&gt;
* More refined rewards for nodes in new geographies, like South America, Africa, Asia and Australia, to stimulate further geographical decentralization.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The node reward model is parametrized by:&lt;br /&gt;
*&#039;&#039;&#039;Geography multiplier (mult)&#039;&#039;&#039;: This multiplier will be lower, namely 2, for regions with many nodes (e.g. Europe and North America), and higher, namely 3, for regions where there are currently limited nodes present (such as Africa and South America)&lt;br /&gt;
*&#039;&#039;&#039;Reduction coefficient (r)&#039;&#039;&#039;: The node reward of the n-th node of a Node Provider is multiplied by r ^ (n-1). The reduction coefficient r is dependent on the geography of the Node Provider. As a result, the first nodes of a Node Provider get attractive rewards, but it is increasingly less attractive to add additional nodes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rewards are furthermore dependent on estimated capital and operational expenses that vary based on geographies. A table with the concrete numbers follows below.&lt;br /&gt;
&lt;br /&gt;
In summary, for a geography &#039;&#039;&#039;g&#039;&#039;&#039;, let&lt;br /&gt;
* mult(&#039;&#039;&#039;g&#039;&#039;&#039;) be the geography multiplier&lt;br /&gt;
* cost(&#039;&#039;&#039;g&#039;&#039;&#039;) be the total costs over 4 years for acquiring and maintaining a gen 2 node in g in XDR&lt;br /&gt;
* r(&#039;&#039;&#039;np&#039;&#039;&#039;, &#039;&#039;&#039;g&#039;&#039;&#039;) be the reduction coefficient&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The monthly reward for the n-th node of a Node Provider (&#039;&#039;&#039;np&#039;&#039;&#039;) in geography &#039;&#039;&#039;g&#039;&#039;&#039; are defined as follows:&lt;br /&gt;
 reward(&#039;&#039;&#039;g, n&#039;&#039;&#039;) = cost(&#039;&#039;&#039;g&#039;&#039;&#039;) * mult(&#039;&#039;&#039;g&#039;&#039;&#039;) * r(&#039;&#039;&#039;np, g&#039;&#039;&#039;) ^ (n-1) / (4 * 12)&lt;br /&gt;
If a Node Provider has nodes in more than one type or geography but within the same country, the NNS knows that they are in the same country and counts the combined total of nodes, each according to their own type and geography. &lt;br /&gt;
&lt;br /&gt;
The total costs over 4 years are multiplied by the geography multiplier, multiplied by the reduction coefficient, and divided by 4 years times 12 months. As a result, rewards for nodes in new geographies and for Node Providers with few nodes are higher. Thereby, a geographical and ownership decentralization is incentivized. The following table shows the geography-dependent values and the monthly reward for the first node onboarded. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Geography&lt;br /&gt;
|Total cost over 4 years&lt;br /&gt;
|Multiplier&lt;br /&gt;
|Monthly reward for 1st node (in XDR)&lt;br /&gt;
|Reduction coefficient r&lt;br /&gt;
|-&lt;br /&gt;
|USA&lt;br /&gt;
|31034&lt;br /&gt;
|2&lt;br /&gt;
|1294&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|US - FL/GA/CA&lt;br /&gt;
|37031&lt;br /&gt;
|2&lt;br /&gt;
|1542&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|EU&lt;br /&gt;
|36996&lt;br /&gt;
|2&lt;br /&gt;
|1542&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|Asia Singapore/Japan&lt;br /&gt;
|40508&lt;br /&gt;
|2&lt;br /&gt;
|1688&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|Asia non Singapore&lt;br /&gt;
|40508&lt;br /&gt;
|3&lt;br /&gt;
|2532&lt;br /&gt;
|0.98&lt;br /&gt;
|-&lt;br /&gt;
|South Africa&lt;br /&gt;
|43986&lt;br /&gt;
|3&lt;br /&gt;
|2748&lt;br /&gt;
|0.98&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the reduction coefficient r(&#039;&#039;&#039;np, g&#039;&#039;&#039;) is applied per (Node Provider + Country) pair. This means if there is more than one Node Provider in the same country, r(&#039;&#039;&#039;np, g&#039;&#039;&#039;) is calculated separately for them. For instance: Node Provider A has 10 nodes in France (EU); reduction coefficient for the 1st node of Node Provider A is 0.95, and for the 10th node is 0.95 ^ 9 = 0.63. If there is Node Provider B with 10 nodes in France (EU) as well, they will get the same rewards as Node Provider A. &lt;br /&gt;
&lt;br /&gt;
As an example, the below table shows the calculation of the rewards of the 1st to the 10th node for a Node Provider in South Africa. &lt;br /&gt;
 reward(&#039;&#039;&#039;south africa, n&#039;&#039;&#039;)&lt;br /&gt;
 = cost(&#039;&#039;&#039;south africa&#039;&#039;&#039;) * mult(&#039;&#039;&#039;south africa&#039;&#039;&#039;) * r(&#039;&#039;&#039;south africa&#039;&#039;&#039;) ^ (&#039;&#039;&#039;n&#039;&#039;&#039;-1) / (4 * 12)&lt;br /&gt;
 = ( 21’455 + 22’531) * 3 * 0.98 ^ (&#039;&#039;&#039;n&#039;&#039;&#039;-1) / (4 * 12)&lt;br /&gt;
 = 2748 * 0.98 ^ (&#039;&#039;&#039;n&#039;&#039;&#039;-1)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|N-th node&lt;br /&gt;
|Multiplier (rounded)&lt;br /&gt;
|Monthly remuneration (rounded, in XDR)&lt;br /&gt;
|-&lt;br /&gt;
|Node 1&lt;br /&gt;
|0.98 ^ (1-1) =1 &lt;br /&gt;
|2748&lt;br /&gt;
|-&lt;br /&gt;
|Node 2&lt;br /&gt;
|0.98 ^ (2-1) =0.98&lt;br /&gt;
|2693&lt;br /&gt;
|-&lt;br /&gt;
|Node 3&lt;br /&gt;
|0.98 ^ (3-1) =0.96040&lt;br /&gt;
|2639&lt;br /&gt;
|-&lt;br /&gt;
|Node 4&lt;br /&gt;
|0.98 ^ (4-1) =0.941192&lt;br /&gt;
|2586&lt;br /&gt;
|-&lt;br /&gt;
|Node 5&lt;br /&gt;
|0.98 ^ (5-1) =0.92236816 &lt;br /&gt;
|2534 &lt;br /&gt;
|-&lt;br /&gt;
|Node 6&lt;br /&gt;
|0.98 ^ (6-1) =0.9039207968&lt;br /&gt;
|2483 &lt;br /&gt;
|-&lt;br /&gt;
|Node 7&lt;br /&gt;
|0.98 ^ (7-1) =0.885842309&lt;br /&gt;
|2434 &lt;br /&gt;
|-&lt;br /&gt;
|Node 8&lt;br /&gt;
|0.98 ^ (8-1) = 0.8681255332&lt;br /&gt;
|2385&lt;br /&gt;
|-&lt;br /&gt;
|Node 9&lt;br /&gt;
|0.98 ^ (9-1) =0.8507630226&lt;br /&gt;
|2337 &lt;br /&gt;
|-&lt;br /&gt;
|Node 10&lt;br /&gt;
|0.98 ^ (10-1) =0.8337477621&lt;br /&gt;
|2291 &lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
[[File:Profit margin for each additional node graph for remuneration V2.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
The above figure shows the additional cash flow (investments minus costs) a Node Provider receives for adding an additional node for three regions (South Africa, Europe and USA) that can be calculated based on the Version 2 remuneration model. Note that the calculation does not take into account the time value of the cash flows (i.e. discounted value), but purely the cash flows or rewards and expenses. &lt;br /&gt;
&lt;br /&gt;
What is visible from this graph is that adding additional nodes only generates additional cash flow for a specific number of nodes, in a specific region. For example, in Europe adding up to approximately 15 nodes will generate additional cash flow, whereas for the US region, this is only 2 nodes. &lt;br /&gt;
&lt;br /&gt;
Potential new Node Providers can make a full calculation themselves of the Internal Rate of Return, Payback period and cash flow based on their actual CAPEX and OPEX costs. Of course, these actual CAPEX and OPEX costs may differ from the costs on which the remuneration is based, depending on the specific contracts the new Node Provider has been able to negotiate with hardware vendors and DC operators. &lt;br /&gt;
&lt;br /&gt;
=== Version 2.1 Remuneration Model ===&lt;br /&gt;
The Version 2.1 remuneration model replaces the Version 2 remuneration for 2nd generation Node Providers. It includes the following changes compared to Version 2, based on discussion in this [https://forum.dfinity.org/t/the-state-and-direction-of-decentralization-nodes-on-the-internet-computer/9170/192 forum thread]:&lt;br /&gt;
&lt;br /&gt;
* No entry for the region Asia will be used anymore. For the Asia region, specific country entries will be used. &lt;br /&gt;
* Specific entries for Hong Kong and India will be added to the remuneration table. &lt;br /&gt;
* The multiplier is set to a value of 2 for all countries. In future, this might be updated through a new NNS proposal if the community determines that the risk premium for projects should be different for different countries (for example, if the risk of running in node in one specific country is higher than the risk of running in node in another country, this might validate a different multiplier).&lt;br /&gt;
* A limit is set to the number of nodes in new countries for which the remuneration applies. Once this is reached, the reduction coefficient for additional nodes will be adjusted to allow adding only one or two nodes for this country, similar to existing countries like the U.S. and Switzerland. Currently, the limit of number of nodes per country is set to 50 nodes, which allows NP’s to add a node in that specific country to every available subnet and have a small set of additional nodes in case nodes are unhealthy or require maintenance.&lt;br /&gt;
* Version 2 was relevant for a limited time period in 2023. Version 2.1 became the current model as of May 2023.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following table shows the geography-dependent values and the monthly reward for the first node onboarded based on the Remuneration Version 2.1. &lt;br /&gt;
&lt;br /&gt;
With this latest update, there are sufficient node machines for running the current load of canisters on every subnet, and for the decentralisation of the subnets measured in Nakamoto coefficients; no new country entries will be added. Work is in progress on an IC Topology Roadmap for the next half year and the next year, with the objective to assess how many node machines and where new node machines are required for further growth and decentralisation of the IC network. Based on that it will be discussed on the IC forum what changes to make to the Node Provider remuneration table and subsequent proposals will be submitted to the NNS for the community to vote upon. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Geography&lt;br /&gt;
|Total costs over 4 years&lt;br /&gt;
|Multiplier&lt;br /&gt;
|Monthly reward for 1st node (in XDR)&lt;br /&gt;
|Reduction coefficient r&lt;br /&gt;
|-&lt;br /&gt;
|US&lt;br /&gt;
|31034&lt;br /&gt;
|2&lt;br /&gt;
|1294&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|US California &lt;br /&gt;
|37031&lt;br /&gt;
|2&lt;br /&gt;
|1543&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|Canada&lt;br /&gt;
|37031&lt;br /&gt;
|2&lt;br /&gt;
|1543&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|Germany &lt;br /&gt;
|36996&lt;br /&gt;
|2&lt;br /&gt;
|1542&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|Switzerland&lt;br /&gt;
|36996&lt;br /&gt;
|2&lt;br /&gt;
|1542&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|France&lt;br /&gt;
|36996&lt;br /&gt;
|2&lt;br /&gt;
|1542&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|Belgium&lt;br /&gt;
|36996&lt;br /&gt;
|2&lt;br /&gt;
|1542&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|Slovenia&lt;br /&gt;
|36996&lt;br /&gt;
|2&lt;br /&gt;
|1542&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|Europe (other than above)&lt;br /&gt;
|36996&lt;br /&gt;
|2&lt;br /&gt;
|1542&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|Israel&lt;br /&gt;
|49500&lt;br /&gt;
|2&lt;br /&gt;
|2063&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|Japan&lt;br /&gt;
|40508&lt;br /&gt;
|2&lt;br /&gt;
|1688&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|Singapore&lt;br /&gt;
|40508&lt;br /&gt;
|2&lt;br /&gt;
|1688&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|Hong Kong&lt;br /&gt;
|46141&lt;br /&gt;
|2&lt;br /&gt;
|1922&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|India&lt;br /&gt;
|50377&lt;br /&gt;
|2&lt;br /&gt;
|2100&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|South Korea&lt;br /&gt;
|51774&lt;br /&gt;
|2&lt;br /&gt;
|2158&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|Sri Lanka&lt;br /&gt;
|52800&lt;br /&gt;
|2&lt;br /&gt;
|2200&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|Georgia&lt;br /&gt;
|57455&lt;br /&gt;
|2&lt;br /&gt;
|2394&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|South Africa&lt;br /&gt;
|55455&lt;br /&gt;
|2&lt;br /&gt;
|2310&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|Australia &lt;br /&gt;
|47000&lt;br /&gt;
|2&lt;br /&gt;
|1958&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|New Zealand&lt;br /&gt;
|47000&lt;br /&gt;
|2&lt;br /&gt;
|1958&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|Panama&lt;br /&gt;
|51774&lt;br /&gt;
|2&lt;br /&gt;
|2158&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|Costa Rica&lt;br /&gt;
|51774&lt;br /&gt;
|2&lt;br /&gt;
|2158&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|Colombia&lt;br /&gt;
|57455&lt;br /&gt;
|2&lt;br /&gt;
|2394&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|Argentina (proposed)&lt;br /&gt;
|57455&lt;br /&gt;
|2&lt;br /&gt;
|2394&lt;br /&gt;
|0.95&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Reward calculator ==&lt;br /&gt;
For your convenience, we prepared the following [https://www.calconic.com/calculator-widgets/ic-node-provider-rewards/659d42a6d96fa70029e56629?layouts=true calculator for the node rewards]&lt;br /&gt;
&lt;br /&gt;
== Trustworthy Node Metrics ==&lt;br /&gt;
In February 2024, Trustworthy Node Metrics were introduced on the IC, in an attempt to provide greater visibility into node performance, stability, and reliability. These metrics could potentially be used to influence node rewards in the future.&lt;br /&gt;
&lt;br /&gt;
There is a forum post here https://forum.dfinity.org/t/trustworthy-node-metrics-for-useful-work/22989, then&lt;br /&gt;
&lt;br /&gt;
Blog post on Medium here: https://medium.com/dfinity/dont-trust-verify-new-node-metrics-on-the-internet-computer-367cc154a572&lt;br /&gt;
&lt;br /&gt;
And technical documentation and instructions here: https://dfinity.github.io/dre/trustworthy-metrics/trustworthy-metrics.html&lt;br /&gt;
== Performance-based Rewards ==&lt;br /&gt;
Introduction of Performance-based Rewards (PBR) incentivizes Node Provider to keep their nodes healthy and prominently address any issue with the hardware or connectivity, as well as proactively communicate any problems that appear to be within the IC-OS stack. See the [[Performance-based Rewards]] for the details.&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Performance-based_Rewards&amp;diff=8647</id>
		<title>Performance-based Rewards</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Performance-based_Rewards&amp;diff=8647"/>
		<updated>2025-11-24T00:21:40Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: Added a page on Performance-based Rewards&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Introduction===&lt;br /&gt;
The ICP network incentivizes node providers to contribute their nodes by paying them ‘&#039;&#039;&#039;node rewards&#039;&#039;&#039;’. These rewards have been static to date, regardless of node performance. Introduction of Performance-based Rewards (PBR) incentivizes Node Provider to keep their nodes healthy and prominently address any issue with the hardware or connectivity, as well as proactively communicate any problems that appear to be within the IC-OS stack.&lt;br /&gt;
&lt;br /&gt;
===How do Performance-based Rewards V1 Work?===&lt;br /&gt;
PBR treats the current Node rewards as the base maximum each eligible node can achieve in a month, i.e. 100%. It is then augmented with Node Trustworthy Metrics to show how each node has performed each month. In particular, Trustworthy Metrics depend on ‘&#039;&#039;Block Maker Failure Rate&#039;&#039;’. In short, the Nodes in a subnet are given an equal number of chances to make a block to keep the subnet running. However, if a node isn’t reachable or starved of resources (CPU, RAM, Disk I/O), it won’t be able to create a block, thereby increasing the ‘&#039;&#039;Block Maker Failure Rate&#039;&#039;’. This statistic is collected regularly by the NNS, which uses it to compute the performance reduction score between 0 and 100%. As illustrated below, the reward reduction is 0 for failure rates up to 10%, then increases linearly to 80% at a failure rate of 60%, and finally stays at 80% for higher failure rates.&lt;br /&gt;
[[File:Reward reduction vs failure rates.png|thumb|alt=|center]]&lt;br /&gt;
&lt;br /&gt;
==== PBR and Unassigned Nodes. ====&lt;br /&gt;
If nodes do not belong to any subnet, they do not participate in block-making activities, making it impossible to use Trustworthy Metrics for their performance. As a result, unassigned nodes are getting rewards based on the average performance of the assigned nodes for each node provider. Each node provider will have at least one assigned node to calculate the average score.&lt;br /&gt;
&lt;br /&gt;
==== Calculating Failure Rate ====&lt;br /&gt;
For each node in a subnet, the system calculates:&lt;br /&gt;
 Node Failure Rate = Failed Blocks / (Proposed Blocks + Failed Blocks)&lt;br /&gt;
&lt;br /&gt;
==== Subnet Performance ====&lt;br /&gt;
Multiple nodes in each subnet can fail to make blocks. To make the calculation fair and not punish everyone, each subnet calculates its overall performance using 75th Percentile. So, the subnet uses the node that is slower than 3/4 of all nodes to set its performance. For example, in a hypothetical subnet with four nodes with failure rates [0.99%, 4.76%, 16.67%, 33.33%] (sorted), the 3rd-slowest node (failure rate:16.67%) will be used as the overall subnet performance.&lt;br /&gt;
&lt;br /&gt;
==== Relative Performance ====&lt;br /&gt;
Once Subnet Performance is computed, a relative performance metric for each node can be derived.&lt;br /&gt;
 Relative Performance = Max(0, Node Failure Rate - Subnet Performance)&lt;br /&gt;
For example, the Node failure rate is 33.33%, and the subnet performance is 16.67%. So, relative node performance is therefore (33.33%- 16.67%) = 16.66%. This reduces each node&#039;s failure rate by the failure rate of the subnets it is in, making the score fairer for everyone.&lt;br /&gt;
&lt;br /&gt;
==== Performance Multiplier ====&lt;br /&gt;
To derive a performance multiplier for the relative node performance, the following formula is used:&lt;br /&gt;
 If Relative Performance &amp;lt; 10%:&lt;br /&gt;
     Performance Multiplier = 1.0 (No penalty)&lt;br /&gt;
 Else If Relative Performance ≥ 60%:&lt;br /&gt;
     Performance Multiplier = 0.2 (Maximum penalty - 80% reduction)&lt;br /&gt;
 Else:&lt;br /&gt;
     Performance Multiplier = 1.0 - ((Relative Performance - 10%) / (60% - 10%)) × 80%&lt;br /&gt;
If we use our example:&lt;br /&gt;
*Relative performance: 16.66%&lt;br /&gt;
*Since 10% ≤ 16.66% &amp;lt; 60%:&lt;br /&gt;
*Penalty = ((16.66% - 10%) / (60% - 10%)) × 80% = 10.66%&lt;br /&gt;
*Performance Multiplier = 1.0 - 10.66% = 89.34%&lt;br /&gt;
Therefore, the node will get 89.34% of its possible rewards for its Generation and location remuneration.&lt;br /&gt;
&lt;br /&gt;
=== Working with Performance Data ===&lt;br /&gt;
Both commercial, free and open source tools are available for retrieving node performance data. &lt;br /&gt;
&lt;br /&gt;
==== Command Line Tool (Open Source) ====&lt;br /&gt;
PBR support has been fully integrated into ‘dre’ tool (https://github.com/dfinity/dre). You can obtain it for Linux and MacOS by downloading it from (https://github.com/dfinity/dre/releases). In case you already have dre tool installed, you can upgrade it by running &amp;lt;code&amp;gt;dre upgrade&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===== Current Rewards =====&lt;br /&gt;
To display current node rewards, run &amp;lt;code&amp;gt;dre node-rewards ongoing&amp;lt;/code&amp;gt;. This will display a list of node provider principals, current projected rewards vs the base (100% potential), and the difference between them. It will also display a list of underperforming nodes.&lt;br /&gt;
&lt;br /&gt;
===== Past Rewards =====&lt;br /&gt;
To display rewards for the previous month, run ‘dre node-rewards past-rewards YYYY-MM, where YYYY is a year and MM is a month you are interested in.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dre node-rewards past-rewards 2025-10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will display a breakdown for each node provider for each day within that reward period.&lt;br /&gt;
&lt;br /&gt;
===== Exporting data as CSV =====&lt;br /&gt;
It might be more comfortable to export the data into a spreadsheet. For that, there is &amp;lt;code&amp;gt;--csv-detailed-output-path&amp;lt;/code&amp;gt; parameter. If specified, it will use the specified folder (you can use a dot (.) for the current folder or select another). It will create a folder with details for all nodes and all node providers.&lt;br /&gt;
&lt;br /&gt;
Open the folder and find the sub-folder for your node provider principal. Within that folder, you will find a variety of CSV files:&lt;br /&gt;
    1. rewards_summary: One record for each day, showing:&lt;br /&gt;
        * The rewards_total_xdr_permyriad value of rewards earned&lt;br /&gt;
        * The number of nodes found in the registry&lt;br /&gt;
        * The first five characters of the ID of nodes that were underperforming that day, if any&lt;br /&gt;
    2. base_rewards: One record for each day for each type of node showing:&lt;br /&gt;
        * The monthly_xdr_permyriad value for that area from the rewards table&lt;br /&gt;
        * The daily_xdr_permyriad value (monthly / 30.4375)&lt;br /&gt;
        * The node reward type (if NP has more than one type registered, then there will be more than one record for each day&lt;br /&gt;
        * The region that is called from the rewards table&lt;br /&gt;
    3. base_rewards_type3: &lt;br /&gt;
        * &lt;br /&gt;
    4. A file for each node that was registered in the NNS that month, which records for each day:&lt;br /&gt;
        * The node type&lt;br /&gt;
        * The region it’s registered to&lt;br /&gt;
        * The DC&lt;br /&gt;
        * The subnet it was assigned to that day, if any&lt;br /&gt;
        * subnet_assigned_fr_percent&lt;br /&gt;
        * Number of blocks proposed for that subnet&lt;br /&gt;
        * Number of blocks failed for that subnet&lt;br /&gt;
        * original_fr_percent&lt;br /&gt;
        * relative_fr_percent&lt;br /&gt;
        * extrapolated_fr_percent&lt;br /&gt;
        * performance_multiplier_percent&lt;br /&gt;
        * rewards_reduction_percent = The penalty percentage applied that day&lt;br /&gt;
        * base_rewards_xdr_permyriad = Base rewards from the rewards table&lt;br /&gt;
        * adjusted_rewards_xdr_permyriad = Adjusted rewards after penalty applied&lt;br /&gt;
        * Node status assigned or not&lt;br /&gt;
&lt;br /&gt;
=== Analyzing Node Penalties and Their Impact on Rewards: ===&lt;br /&gt;
&lt;br /&gt;
# Download the CSV and locate the folder for your own NP principal&lt;br /&gt;
# Use the Rewards Summary file to identify which nodes had issues that month quickly&lt;br /&gt;
# Please open the file for that particular node to see which day(s) it had issues, the block failure rate for that day, and how the NNS calculated the penalty for that day. Details on the exact formulas that are used are provided in the first section of this document.&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=File:Reward_reduction_vs_failure_rates.png&amp;diff=8646</id>
		<title>File:Reward reduction vs failure rates.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=File:Reward_reduction_vs_failure_rates.png&amp;diff=8646"/>
		<updated>2025-11-24T00:11:16Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The graph of Reward reduction vs failure rates&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=George_Bassadone&amp;diff=8636</id>
		<title>George Bassadone</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=George_Bassadone&amp;diff=8636"/>
		<updated>2025-10-24T11:11:35Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;Proof of Identity:&amp;lt;/u&amp;gt; ===&lt;br /&gt;
[[File:Proof of Identity George Bassadone.pdf|thumb|1479x1479px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Self Declaration document: ====&lt;br /&gt;
[[File:Self-declaration form Signed.pdf|thumb|1485x1485px]]&lt;br /&gt;
Compliance Assessment&lt;br /&gt;
[[File:15 09 Compliance Assessment George Bassadone signed.pdf|thumb]]&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Bianca-Martina_Rohner&amp;diff=8589</id>
		<title>Bianca-Martina Rohner</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Bianca-Martina_Rohner&amp;diff=8589"/>
		<updated>2025-09-05T14:57:04Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Self-declaration ==&lt;br /&gt;
SHA256 hash: ca3973712c4d7947b0b835368ca0648696d52ff6e7ed69a7c92766c1da51e0ce&lt;br /&gt;
[[File:BMR self declaration.pdf|center|thumb|1133x1133px|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
== Identity document ==&lt;br /&gt;
SHA 256 hash: 2c1fa30253103788b7c6510bb1fc66fd4e11b9e9df163ec936c9a460b377ade2 &lt;br /&gt;
&lt;br /&gt;
[[File:BMR identity proof.pdf|center|thumb|1133x1133px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Candidate Node Validation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Panama node machines&lt;br /&gt;
[[File:Optimization Model Panama.pdf|center|thumb|1132x1132px|Optimization Model Panama]]Compliance Assessment&lt;br /&gt;
&lt;br /&gt;
== Compliance document ==&lt;br /&gt;
[[File:NEW_25_08_Compliance_Assesment_Bianca_Martina_Rohner_signiert.pdf|thumb|Compliance assessment]]&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Onboarding&amp;diff=8567</id>
		<title>Node Provider Onboarding</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Onboarding&amp;diff=8567"/>
		<updated>2025-09-02T15:52:37Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: changed the rules for picking DC name that is more consistent.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Learn how to be accepted by the NNS as a Node Provider and onboard your nodes to the IC.&lt;br /&gt;
&lt;br /&gt;
Please allocate up to a week to complete this guide, as it may take several days for a proposal to be accepted by the NNS, and you may have to submit multiple NNS proposals. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note that the following steps do not need to be performed on the node machine itself.&#039;&#039;&#039; You can complete them on your personal laptop.&lt;br /&gt;
&lt;br /&gt;
If you encounter issues through any of these steps, check the [[Node Provider Troubleshooting]] page. If that does not solve your problem, you are encouraged to ask for assistance in the [[Node Provider Matrix channel]].&lt;br /&gt;
&lt;br /&gt;
For regular operations after onboarding, please refer to [[Node Provider Maintenance Guide|Node Provider Maintenance Guide.]]&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;&amp;lt;big&amp;gt;Requirements&amp;lt;/big&amp;gt;&#039;&#039;&#039; ==&lt;br /&gt;
* Assure your node(s) meet the [[Node Provider Machine Hardware Guide|Node Provider Machine Hardware requirements.]]&lt;br /&gt;
* View the [[Node Provider Networking Guide|Node Provider Networking Guide.]]&lt;br /&gt;
* Setup a [https://www.ledger.com/ hardware wallet].&lt;br /&gt;
*[https://shop.nitrokey.com/shop/product/nkhs2-nitrokey-hsm-2-7/ NitroKey HSM] (Optional, legacy—not recommended).&lt;br /&gt;
* 26 ICP (25 of which are to be staked for the NNS proposal deposit).&lt;br /&gt;
* Basic understanding of [[Neurons 101|neurons]], [https://internetcomputer.org/docs/current/tokenomics/nns/nns-staking-voting-rewards staking], and [[Governance of the Internet Computer|governance]] proposals, such as understanding what it means to stake a neuron for 8 years.&lt;br /&gt;
&lt;br /&gt;
== 1. Install the required tools ==&lt;br /&gt;
===&#039;&#039;&#039; A. Install ic-admin &#039;&#039;&#039;===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ic-admin&amp;lt;/code&amp;gt; is the tool used to create and submit NNS proposals. You can install it by running the following in a terminal:&lt;br /&gt;
&lt;br /&gt;
==== MacOS ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
curl -L &amp;quot;https://github.com/dfinity/ic/releases/latest/download/ic-admin-x86_64-darwin.gz&amp;quot; -o - | gunzip &amp;gt; ic-admin &amp;amp;&amp;amp; chmod 0755 ./ic-admin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
NOTE: The instructions below have been tested with the Ubuntu 20.04 release&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
curl -L &amp;quot;https://github.com/dfinity/ic/releases/latest/download/ic-admin-x86_64-linux.gz&amp;quot; -o - | gunzip &amp;gt; ic-admin &amp;amp;&amp;amp; chmod 0755 ./ic-admin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039; B. Install dfx &#039;&#039;&#039;===&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;code&amp;gt;dfx&amp;lt;/code&amp;gt; is a CLI tool used to generate neuron hotkeys, among other things such as canister deployment and management. &amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ sh -ci &amp;quot;$(curl -fsSL https://internetcomputer.org/install.sh)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#Verify that &amp;lt;code&amp;gt;dfx&amp;lt;/code&amp;gt; is up to date. &amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ export PATH=$HOME/bin:$PATH&lt;br /&gt;
$ dfx upgrade&lt;br /&gt;
$ dfx --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==2. Create Node Provider hotkey ==&lt;br /&gt;
&lt;br /&gt;
#Create an identity for the Node Provider &#039;&#039;&#039;hotkey&#039;&#039;&#039; &amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ dfx identity new --storage-mode=plaintext node-provider-hotkey&lt;br /&gt;
&lt;br /&gt;
Created identity: &amp;quot;node-provider-hotkey&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ dfx --identity node-provider-hotkey identity get-principal&lt;br /&gt;
&lt;br /&gt;
xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx&lt;br /&gt;
# example node-provider-hotkey: wuyst-x5tpn-g5wri-mp3ps-vjtba-de3xs-w5xgb-crvek-tucbe-o5rqi-mae&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&#039;&#039;&#039;You will need the Node Provider hotkey in the next steps.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The Node Provider hotkey is NOT the Node Provider principal. This is the hotkey that is used for the NNS proposal submissions only.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: You may be prompted to enter a passphrase when creating your identity and accessing your identity principal. Take note of the passphrase you choose.&lt;br /&gt;
&lt;br /&gt;
==3. Create and Manage Neuron via NNS Frontend Dapp and Internet Identity==&lt;br /&gt;
&lt;br /&gt;
#Send at least 26 ICP tokens to your hardware wallet address.&lt;br /&gt;
#Navigate to the Neurons tab and create a Neuron by staking at least 26 ICP from your hardware wallet. Staking more ICP is acceptable, but 25 is the minimum needed for this process, and you must have a little more for transaction fees.&lt;br /&gt;
#&amp;lt;u&amp;gt;IMPORTANT!&amp;lt;/u&amp;gt; Confirm the transaction on your hardware wallet. &lt;br /&gt;
#:[[File:-docs-stake_neuron_1.png|1024px|stake neuron]]&lt;br /&gt;
#After the Neuron has been created successfully, confirm to &amp;quot;Add NNS Dapp as hotkey&amp;quot; in the dialogue and on your hardware wallet, and close the dialog after the action completes.&lt;br /&gt;
#:[[File:-docs-stake_neuron_2.png|1024px|neuron id]]&lt;br /&gt;
#Set the dissolve delay to at least 6 months, and confirm the choice in the dialogue and on your hardware wallet. After the action completes, you can close the &amp;quot;Follow Neurons&amp;quot;.&lt;br /&gt;
#:[[File:dissolve_delay.png|480px|neuron id]]&lt;br /&gt;
#You will now see a Neuron listed with its ID. Copy the Neuron ID, since you will need it in the next steps to place the necessary proposals.&lt;br /&gt;
#:[[File:Neuron id.png|1024px]]&lt;br /&gt;
&lt;br /&gt;
==4. Add hotkeys==&lt;br /&gt;
&lt;br /&gt;
#Select the Neuron you just created to open Neuron management view and press “Add hotkey” button.&lt;br /&gt;
#:[[File:Hotkey 1.png|873x873px]]&lt;br /&gt;
# A dialog will pop up where you can enter the hotkey you generated in step 2.1 (output from command &amp;lt;code&amp;gt;dfx --identity node-provider-hotkey identity get-principal&amp;lt;/code&amp;gt;). This will allow you to submit NNS proposals using &amp;lt;code&amp;gt;ic-admin&amp;lt;/code&amp;gt; and will not be used for anything else.&amp;lt;br&amp;gt;&lt;br /&gt;
#:Press the &#039;&#039;&#039;confirm&#039;&#039;&#039; button and confirm the transactions on your hardware wallet.&amp;lt;br&amp;gt;&lt;br /&gt;
#:[[File:Hotkey 2.png|899x899px]]&lt;br /&gt;
#Get the Ledger Hardware Wallet Principal Id: Navigate back to ICP page and select your Ledger hardware wallet account. You will need to use this Ledger Hardware Wallet principal as the Node Provider principal in order to get the rewards directly into the secure hardware wallet.&lt;br /&gt;
#:[[File:Node provider principal 1.png|1024px]]&lt;br /&gt;
#:[[File:Node provider principal 2.png|800px]]&lt;br /&gt;
#Copy and save this Node Provider principal by clicking on the copy icon after the principal id. You&#039;ll need it in the next steps. &amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ NODE_PROVIDER_PRINCIPAL=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx   &lt;br /&gt;
# Input ledger Hardware Wallet principal, from the NNS FrontEnd dapp https://nns.ic0.app/&lt;br /&gt;
&lt;br /&gt;
# example: $ NODE_PROVIDER_PRINCIPAL=fharn-5vyi2-4xb4a-64yyi-3jpmj-pga23-mxy25-d5uim-fqcro-eoefh-tae&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==5. Choose onboarding path (HSM vs no HSM)==&lt;br /&gt;
Onboarding &#039;&#039;&#039;without&#039;&#039;&#039; a NitroKey HSM is the current onboarding path. In particular, node providers onboarding [[Node Provider Machine Hardware Guide|Gen 2 hardware]] must onboard &#039;&#039;&#039;without&#039;&#039;&#039; a NitroKey HSM. If you will be onboarding &#039;&#039;&#039;without&#039;&#039;&#039; a NitroKey HSM, continue to the next step.  &lt;br /&gt;
&lt;br /&gt;
If the legacy procedure is required for your onboarding (which should only be the case in rare and exceptional situations), follow the [[NitroKey HSM onboarding instructions]] and then &#039;&#039;&#039;return to step 8.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
==6. Setup the Node Operator keys ==&lt;br /&gt;
#&#039;&#039;&#039;&#039;&#039;Ensure dfx is at least version 0.14.&#039;&#039;&#039;&#039;&#039; Node Operator keys created with older versions of dfx &#039;&#039;&#039;will fail to join the IC&#039;&#039;&#039;.  Run:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ dfxvm update&lt;br /&gt;
$ dfx --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#Create a new principal with dfx:&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ dfx identity new --storage-mode=plaintext node_operator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#Confirm &amp;lt;code&amp;gt;node_operator&amp;lt;/code&amp;gt; identity was created successfully:&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ dfx identity list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;This list &#039;&#039;should&#039;&#039; contain &amp;lt;code&amp;gt;node_operator&amp;lt;/code&amp;gt;.&lt;br /&gt;
#Copy new key to a known location:&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ cp ~/.config/dfx/identity/node_operator/identity.pem ./node_operator_private_key.pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#Check the contents of the &amp;lt;code&amp;gt;node_operator_private_key.pem&amp;lt;/code&amp;gt; file and double check that it contains the following contents. It is imperative that the first line has &amp;lt;code&amp;gt;-----BEGIN EC PRIVATE KEY-----&amp;lt;/code&amp;gt;. If it does not, make sure you use the latest &amp;lt;code&amp;gt;dfx&amp;lt;/code&amp;gt; version and that you followed the instructions precisely.&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
❯ cat ./node_operator_private_key.pem&lt;br /&gt;
-----BEGIN EC PRIVATE KEY-----&lt;br /&gt;
[3 lines of base64 encoded private key, e.g. n2Nhp68YcQpuS0u96r...]&lt;br /&gt;
-----END EC PRIVATE KEY-----&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Note: you must retain access to the &amp;lt;code&amp;gt;node_operator_private_key.pem&amp;lt;/code&amp;gt; file for when you onboard nodes in &#039;&#039;&#039;[https://wiki.internetcomputer.org/wiki/Node_Provider_Roadmap#Milestone_Five:_Node_Machine_Onboarding roadmap milestone five.]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==7. Get the node operator principal==&lt;br /&gt;
&lt;br /&gt;
#Get the principal:&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ NODE_OPERATOR_PRINCIPAL=$(dfx --identity node_operator identity get-principal)&lt;br /&gt;
$ echo $NODE_OPERATOR_PRINCIPAL&lt;br /&gt;
&lt;br /&gt;
uqquy-76uhn-2mys5-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;You will need the node operator principal in the next steps.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==8. Register your Node Provider principal to the network==&lt;br /&gt;
In the next codeblock: &lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;NODE_PROVIDER_NAME&amp;lt;/code&amp;gt; value with the name of the entity that will provide the nodes.&lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;NODE_PROVIDER_PRINCIPAL&amp;lt;/code&amp;gt; value with the Ledger Hardware Wallet principal that you got from the NNS Frontend Dapp (step 4.4)&lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;NEURON_ID&amp;lt;/code&amp;gt; value with your neuron ID from the NNS Frontend Dapp (step 3.6)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039;&#039;&#039; Please make sure that you also update the &amp;lt;code&amp;gt;--summary&amp;lt;/code&amp;gt; and include a link to the forum discussion, your company&#039;s web page, and/or to another place that can convince the voting community that you are making a legitimate request. You must also include the file hash for the [[Node Provider Self-declaration|self declaration and proof of identity documents]], or the proposal will be rejected. This way you will avoid the community voting NO to your proposal and you losing your staked ICPs.&lt;br /&gt;
&lt;br /&gt;
##Create the Proposal &amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ NODE_PROVIDER_NAME=&amp;quot;My Company&amp;quot;&lt;br /&gt;
$ NODE_PROVIDER_PRINCIPAL=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx&lt;br /&gt;
$ NEURON_ID=XXXXXXXXXXXXXXXXXXXX&lt;br /&gt;
$ ./ic-admin \&lt;br /&gt;
        --nns-url https://ic0.app \&lt;br /&gt;
        -s ~/.config/dfx/identity/node-provider-hotkey/identity.pem \&lt;br /&gt;
    propose-to-add-or-remove-node-provider add \&lt;br /&gt;
        --proposer $NEURON_ID \&lt;br /&gt;
        --proposal-title &amp;quot;Register a node provider &#039;${NODE_PROVIDER_NAME}&#039;&amp;quot; \&lt;br /&gt;
        --summary &amp;quot;Register a node provider &#039;${NODE_PROVIDER_NAME}&#039;, in line with the announcement and discussion at &amp;lt;https://forum.dfinity.org/t/...&amp;gt;. The self-declaration documentation is available at &amp;lt;https://wiki.internetcomputer.org/wiki/...&amp;gt; with SHA256 hash &amp;lt;SHA256&amp;gt;. The proof of identity is available at &amp;lt;https://wiki.internetcomputer.org/wiki/...&amp;gt; with SHA256 hash &amp;lt;SHA256&amp;gt;.&amp;quot; \&lt;br /&gt;
        --node-provider-pid &amp;quot;$NODE_PROVIDER_PRINCIPAL&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Note: make sure &amp;lt;code&amp;gt;${NODE_PROVIDER_NAME}&amp;lt;/code&amp;gt; is presented in single quotes, so the IC dashboard can pick up and display the correct Node Provider name.&lt;br /&gt;
#Find the proposal on https://dashboard.internetcomputer.org/governance and &#039;&#039;&#039;wait until it is executed before proceeding to next step.&#039;&#039;&#039;&lt;br /&gt;
#In order to expedite the speed of your proposal&#039;s approval, it is best to create a post in this [https://forum.dfinity.org/t/new-node-provider-proposals/16643/69 forum thread] to raise awareness of your proposal. You can use this as a [https://docs.google.com/document/d/1nKy5hKiF72a4NCHvpgij-Np9pbtR5KOBbF1W6qr-nds/edit?usp=sharing template] for the post.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See guide for [[Troubleshooting Failed NNS proposals]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==9. Register your datacenter to the network (if necessary)==&lt;br /&gt;
#Search for your data center on https://dashboard.internetcomputer.org/centers. &lt;br /&gt;
#*If you found the datacenter that is hosting your nodes, remember its ID, and skip the following section. Otherwise, proceed with the registration of a new DC record.&lt;br /&gt;
#:[[File:dc_id.png|1041x1041px|alt=]]&lt;br /&gt;
===Create a data center record for a new DC===&lt;br /&gt;
In the next block of code:&lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;NEURON_ID&amp;lt;/code&amp;gt; value with your neuron ID from the NNS Frontend Dapp (step 3.6)&lt;br /&gt;
*Replace the JSON fields from the &amp;lt;code&amp;gt;–data-centers-to-add&amp;lt;/code&amp;gt; argument and their corresponding values in &amp;lt;code&amp;gt;--summary&amp;lt;/code&amp;gt;:&lt;br /&gt;
**&amp;lt;code&amp;gt;&amp;amp;quot;id&amp;amp;quot;&amp;lt;/code&amp;gt; represents the city that your datacenter is in and is formulated as a combination of two letters representing the city and an incrementing number. Search data center IDs on https://dashboard.internetcomputer.org, and find a combination of two letters that’s not yet registered.&lt;br /&gt;
***&#039;&#039;If the city or region where the new DC is located, has already been &amp;quot;named&amp;quot; by another DC in the same city or region, then pick the same letters and increment the number.&#039;&#039;&lt;br /&gt;
***&#039;&#039;If there is no other DC in this city or region, then pick a new letter-abbreviation that is not used yet and give it the number 1.&#039;&#039;&lt;br /&gt;
***Examples:&lt;br /&gt;
****dl1 (Dallas, no IDs with “dl” prefix)&lt;br /&gt;
****zh10 (Zurich, numbers 0-9 are already registered)&lt;br /&gt;
***:[[File:dc_id.png|1024px]]&lt;br /&gt;
**&amp;lt;code&amp;gt;&amp;amp;quot;region&amp;amp;quot;&amp;lt;/code&amp;gt; represents the local region of a datacenter and is formulated as a three-part string divided by commas. The three parts making the string are continent, country code, and region, in the given order. Examples:&lt;br /&gt;
***North America,US,Florida&lt;br /&gt;
***Europe,DE,Bavaria&lt;br /&gt;
***Asia,SG,Singapore&lt;br /&gt;
**:[[File:datacenter_region.png|1024px]]&lt;br /&gt;
**&amp;lt;code&amp;gt;&amp;amp;quot;owner&amp;amp;quot;&amp;lt;/code&amp;gt; The entity that provides your datacenter facilities. &lt;br /&gt;
***Search https://dashboard.internetcomputer.org for existing data center providers.&lt;br /&gt;
***If there’s match, make sure you use the same exact some name for your datacenter.&lt;br /&gt;
***Otherwise, name the data center owner to your best knowledge.&lt;br /&gt;
**:[[File:datacenter_owner.png|1024px]]&lt;br /&gt;
**&amp;lt;code&amp;gt;&amp;amp;quot;gps&amp;amp;quot;&amp;lt;/code&amp;gt; GPS coordinates. &lt;br /&gt;
***Find your datacenter on https://www.google.com/maps/.&lt;br /&gt;
***Right click on location, and select the GPS coordinates (first item in the menu) in order to copy them.&lt;br /&gt;
**:[[File:maps.png|310x310px|alt=Getting GPS coordinates|Getting GPS coordinates]]&lt;br /&gt;
&lt;br /&gt;
#Create the proposal. **Make sure you include in the text of the proposal, a link to your forum post with additional details and reference so the community can easily find additional information and ask questions. &amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ NEURON_ID=XXXXXXXXXXXXXXXXXXXX&lt;br /&gt;
$ ./ic-admin \&lt;br /&gt;
        --nns-url https://ic0.app \&lt;br /&gt;
        -s ~/.config/dfx/identity/node-provider-hotkey/identity.pem \&lt;br /&gt;
    propose-to-add-or-remove-data-centers \&lt;br /&gt;
        --summary &amp;quot;Register a Flexential datacenter as dl1 in North America,US,Texas&amp;quot; \&lt;br /&gt;
        --skip-confirmation \&lt;br /&gt;
        --proposer $NEURON_ID \&lt;br /&gt;
        --data-centers-to-add &#039;{&lt;br /&gt;
            &amp;quot;id&amp;quot;: &amp;quot;dl1&amp;quot;,&lt;br /&gt;
            &amp;quot;region&amp;quot;: &amp;quot;North America,US,Texas&amp;quot;,&lt;br /&gt;
            &amp;quot;owner&amp;quot;: &amp;quot;Flexential&amp;quot;,&lt;br /&gt;
            &amp;quot;gps&amp;quot;: [&lt;br /&gt;
                33.00803, -96.66614&lt;br /&gt;
            ]&lt;br /&gt;
        }&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&#039;&#039;&#039;Remember to replace all the values of both the arguments &amp;lt;code&amp;gt;–data-centers-to-add&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--summary&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
#Find the proposal on https://dashboard.internetcomputer.org/governance and wait until it&#039;s executed before proceeding to next step.&lt;br /&gt;
#In order to expedite the speed of your proposal&#039;s approval, it is best to create a post in this [https://forum.dfinity.org/t/new-node-provider-proposals/16643/69 forum thread] to raise awareness of your proposal. You can use this as a [https://docs.google.com/document/d/1Hg0tI9O5__Tp4qKrNKuTADsQT7Z47I6aAFXbiDimG_U/edit?usp=sharing template] for the post.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See guide for [[Troubleshooting Failed NNS proposals]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==10. Create a node operator record==&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;:&#039;&#039; Before submitting the Node Operator record, please go through the description of [[Validation of Candidate Node Machines]] to validate whether additional node machines are needed for decentralization of the IC-network. &lt;br /&gt;
&lt;br /&gt;
*Create a pdf with the outcome of running the optimization model and the steps that allow the community to reproduce the validation check.&lt;br /&gt;
*Include the pdf in the wiki page that includes the NP documents (self-declaration and proof-of-identity document)&lt;br /&gt;
*Include a link to the pdf as well as the hash of the document in the Node Operator record proosal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the next codeblock:&lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;NEURON_ID&amp;lt;/code&amp;gt; value with your neuron ID from the NNS Frontend Dapp (step 3.6).&lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;NODE_PROVIDER_PRINCIPAL&amp;lt;/code&amp;gt; value with the Ledger Hardware Wallet principal that you got from the NNS Frontend Dapp (step 4.4).&lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;NODE_OPERATOR_PRINCIPAL&amp;lt;/code&amp;gt; value with your node operator principal (step 7.1). &#039;&#039;&#039;Important&#039;&#039;&#039;: if you are adding an additional node operator record because you will deploy nodes in another data center, please make sure to create a new node operator principal first (steps 6 and 7). A node operator principal can only be tied to 1 data center.&lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;NODE_PROVIDER_NAME&amp;lt;/code&amp;gt; value with the name of the entity that will provide the nodes.&lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;NODE_ALLOWANCE&amp;lt;/code&amp;gt; variable value with number of nodes you are providing.&lt;br /&gt;
*Replace the &amp;lt;code&amp;gt;DC_ID&amp;lt;/code&amp;gt; variable value with id of your datacenter.&lt;br /&gt;
&lt;br /&gt;
#Create the proposal: &amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ NEURON_ID=XXXXXXXXXXXXXXXXXXXX&lt;br /&gt;
$ NODE_PROVIDER_PRINCIPAL=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx&lt;br /&gt;
$ NODE_OPERATOR_PRINCIPAL=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx&lt;br /&gt;
$ NODE_PROVIDER_NAME=&amp;quot;My Company&amp;quot;&lt;br /&gt;
$ NODE_ALLOWANCE=8&lt;br /&gt;
$ DC_ID=dl1&lt;br /&gt;
&lt;br /&gt;
$ ./ic-admin \&lt;br /&gt;
        --nns-url https://ic0.app \&lt;br /&gt;
        -s ~/.config/dfx/identity/node-provider-hotkey/identity.pem \&lt;br /&gt;
    propose-to-add-node-operator \&lt;br /&gt;
        $NODE_PROVIDER_PRINCIPAL \&lt;br /&gt;
        --summary &amp;quot;Node provider &#039;$NODE_PROVIDER_NAME&#039; is adding $NODE_ALLOWANCE nodes in the $DC_ID data center. The result of the canidate node machine validation and exact configuration run is available at &amp;lt;https://wiki.internetcomputer.org/wiki/...&amp;gt; with SHA256 hash &amp;lt;SHA256&amp;gt;.&amp;quot; \&lt;br /&gt;
        --proposer $NEURON_ID \&lt;br /&gt;
        --node-operator-principal-id $NODE_OPERATOR_PRINCIPAL \&lt;br /&gt;
        --node-allowance $NODE_ALLOWANCE \&lt;br /&gt;
        --dc-id $DC_ID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#Find the proposal on https://dashboard.internetcomputer.org/governance and wait until it&#039;s executed before proceeding to next step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See guide for [[Troubleshooting Failed NNS proposals]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=DFINITY_Stiftung&amp;diff=8519</id>
		<title>DFINITY Stiftung</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=DFINITY_Stiftung&amp;diff=8519"/>
		<updated>2025-08-22T14:10:27Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: added audit results&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====Self-declaration====&lt;br /&gt;
Also see [[DFINITY Foundation]].&lt;br /&gt;
[[File:CHE189770146-19.12.2024-Merkmale DFINITY Stiftung.pdf|thumb|alt=|none]]&lt;br /&gt;
[[File:DFINITY Self-declaration (1) (1).pdf|thumb|alt=|none]]&lt;br /&gt;
&lt;br /&gt;
====Audit Results====&lt;br /&gt;
[[File:CERTIFICATE_OF_COMPLIANCE_Dfinity_Foundation_Final_signed.pdf|thumb|alt=|none]]&lt;br /&gt;
====Swiss registration====&lt;br /&gt;
[[File:DFINITY Stiftung Central Business Index listing.pdf|thumb|alt=|none]]&lt;br /&gt;
&lt;br /&gt;
==== Handover document to Zarety LLC for 42 of the nodes in BO1 and AT1 that we sold to Zarety.   ====&lt;br /&gt;
[[File:Complete with Docusign Zarety DFINITY node.pdf|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
==== Handover document to Blue Ant LLC for the 42 nodes in AT1 and MR1 that we sold to Blue Ant ====&lt;br /&gt;
[[File:Enzo&#039;s copy of 2024.12 - DFINITY node hand over statement (1).pdf|none|thumb]]&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=File:CERTIFICATE_OF_COMPLIANCE_Dfinity_Foundation_Final_signed.pdf&amp;diff=8518</id>
		<title>File:CERTIFICATE OF COMPLIANCE Dfinity Foundation Final signed.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=File:CERTIFICATE_OF_COMPLIANCE_Dfinity_Foundation_Final_signed.pdf&amp;diff=8518"/>
		<updated>2025-08-22T13:56:04Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: DFINITY Stiftung Audit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
DFINITY Stiftung Audit&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Self_Declarations&amp;diff=8517</id>
		<title>Node Provider Self Declarations</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Self_Declarations&amp;diff=8517"/>
		<updated>2025-08-22T13:40:07Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;&#039;&#039;NOTE: Please try to keep entries in this document alphabetically sorted, to reduce conflicts in edits.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[0X52]]&lt;br /&gt;
&lt;br /&gt;
[[100 Count Holdings, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[43rd Big Idea Films, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[87m Neuron, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[ACCUSET SOLUTIONS]]&lt;br /&gt;
&lt;br /&gt;
[[Arceau NP LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Aitubi AG]]&lt;br /&gt;
&lt;br /&gt;
[[Aksinia Stavskaya]]&lt;br /&gt;
&lt;br /&gt;
[[Altimist Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[ALLUSION BV]]&lt;br /&gt;
&lt;br /&gt;
[[AlpineDC SA]]&lt;br /&gt;
&lt;br /&gt;
[[User:Alpha.agentic|ANTHONY ISAAKIDIS]]&lt;br /&gt;
&lt;br /&gt;
[[ANYPOINT PTY LTD]]&lt;br /&gt;
&lt;br /&gt;
[[AVRVM AG]]&lt;br /&gt;
&lt;br /&gt;
[[Artem Horodyskyi|ARTEM HORODYSKIY]]&lt;br /&gt;
&lt;br /&gt;
[[Bianca-Martina Rohner]]&lt;br /&gt;
&lt;br /&gt;
[[Bigger Capital|Bigger Capital Pty Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Bitapp]]&lt;br /&gt;
&lt;br /&gt;
[[Bitmoon]]&lt;br /&gt;
&lt;br /&gt;
[[Blockchain Development Labs Inc]]&lt;br /&gt;
&lt;br /&gt;
[[BlockFinance LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Blocktech Ventures LLC]]&lt;br /&gt;
&lt;br /&gt;
[[BLP22, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Blueant LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Bohatyrov Volodymyr]]&lt;br /&gt;
&lt;br /&gt;
[[Buldakova Rehina]]&lt;br /&gt;
&lt;br /&gt;
[[CarbonTwelve]]&lt;br /&gt;
&lt;br /&gt;
[[CocoMango LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Conic Ventures]]&lt;br /&gt;
&lt;br /&gt;
[[Coplus Limited]]&lt;br /&gt;
&lt;br /&gt;
[[CoreLedger]]&lt;br /&gt;
&lt;br /&gt;
[[Decentralized Entities Foundation]]&lt;br /&gt;
&lt;br /&gt;
[[DENODE|DeNoDe]]&lt;br /&gt;
&lt;br /&gt;
[[DFINITY Stiftung]]&lt;br /&gt;
&lt;br /&gt;
[[DragginCorp SARL]] &lt;br /&gt;
&lt;br /&gt;
[[Eastman_Ventures_Pty_Ltd|Eastan_Ventures_Pty_Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Exaion]]&lt;br /&gt;
&lt;br /&gt;
[[Extragone]]&lt;br /&gt;
&lt;br /&gt;
[[User:FenexLLC|FenexLLC]]&lt;br /&gt;
&lt;br /&gt;
[[Ferndale International]]&lt;br /&gt;
&lt;br /&gt;
[[Fractal Labs, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Geeta Kalwani]]&lt;br /&gt;
&lt;br /&gt;
[[GeoNodes LLC]]&lt;br /&gt;
&lt;br /&gt;
[[George Bassadone]]&lt;br /&gt;
&lt;br /&gt;
[[Geodd Pvt Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Giant Leaf, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[User:James Wang|HashQuark]]&lt;br /&gt;
&lt;br /&gt;
[[HoneyComb Capital]]&lt;br /&gt;
&lt;br /&gt;
[[Iancu-Aurel|Iancu Aurel]]&lt;br /&gt;
&lt;br /&gt;
[[Icaria_Systems_Pty_Ltd|Icaria_Systes_Pty_Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Icswitch]]&lt;br /&gt;
&lt;br /&gt;
[[Illusions in Art Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[InfoObjects Inc]]&lt;br /&gt;
&lt;br /&gt;
[[Ivanov Oleksandr]]&lt;br /&gt;
&lt;br /&gt;
[[Karel Frank]]&lt;br /&gt;
&lt;br /&gt;
[[Katerina Karapuz]]&lt;br /&gt;
&lt;br /&gt;
[[Kontrapunt (Pty) Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Krishna Enterprises]]&lt;br /&gt;
&lt;br /&gt;
[[Krzysztof Żelazko]]&lt;br /&gt;
&lt;br /&gt;
[[Louise Velayo]]&lt;br /&gt;
&lt;br /&gt;
[[Ludens LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Lukas Helebrandt]]&lt;br /&gt;
&lt;br /&gt;
[[Marvelous Web3]]&lt;br /&gt;
&lt;br /&gt;
[[Maksym Ishchenko]]&lt;br /&gt;
&lt;br /&gt;
[[MB Patrankos šūvis]] &lt;br /&gt;
&lt;br /&gt;
[[:File:NODE-PROVIDER-SELF.pdf|ML SOLUTIONS LTD]]&lt;br /&gt;
&lt;br /&gt;
[[ML_MIST]]&lt;br /&gt;
&lt;br /&gt;
[[Michael_and_Dominik_Peterer]]&lt;br /&gt;
&lt;br /&gt;
[[User:Miguel.mencia|Miguel Mencia Gijon]]&lt;br /&gt;
&lt;br /&gt;
[[MI Servers]]&lt;br /&gt;
&lt;br /&gt;
[[Mariano Stoll]]&lt;br /&gt;
&lt;br /&gt;
[[Neptune Partners]]&lt;br /&gt;
&lt;br /&gt;
[[NODAL CAPITAL]]&lt;br /&gt;
&lt;br /&gt;
[[NODAO]]&lt;br /&gt;
&lt;br /&gt;
[[NOKU SA]]&lt;br /&gt;
&lt;br /&gt;
[[Nova_LCC]]&lt;br /&gt;
&lt;br /&gt;
[[NoviSystems|NoviSystems, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Nataliia Nykyforak]]&lt;br /&gt;
&lt;br /&gt;
[[Natalia Kulesha]]&lt;br /&gt;
&lt;br /&gt;
[[Nikola Nikov]]&lt;br /&gt;
&lt;br /&gt;
[[OneSixtyTwo Digital Capital]]&lt;br /&gt;
&lt;br /&gt;
[[User:Soekawat|Origin Game]]&lt;br /&gt;
&lt;br /&gt;
[[ParaFi Technologies NS LLC]]&lt;br /&gt;
&lt;br /&gt;
[[User:Protocol16|Protocol16 (Philip Hur)]]&lt;br /&gt;
&lt;br /&gt;
[[PindarTechnologyLimited]]&lt;br /&gt;
&lt;br /&gt;
[[User:Powermetacorp|Power Meta Corporation]]&lt;br /&gt;
&lt;br /&gt;
[[Privoxy Solutions, LLC.]]&lt;br /&gt;
&lt;br /&gt;
[[Quantum Node Ltd.]]&lt;br /&gt;
&lt;br /&gt;
[[Reist Telecom AG]]&lt;br /&gt;
&lt;br /&gt;
[[Rivonia Holdings, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Rivram Inc]]&lt;br /&gt;
&lt;br /&gt;
[[Stamper Co., Ltd.]]&lt;br /&gt;
&lt;br /&gt;
[[senseLAN]]&lt;br /&gt;
&lt;br /&gt;
[[Serenity lotus limited]]&lt;br /&gt;
&lt;br /&gt;
[[Starbase]]&lt;br /&gt;
&lt;br /&gt;
[[Swiss Datalink AG]]&lt;br /&gt;
&lt;br /&gt;
[[Sygnum]]&lt;br /&gt;
&lt;br /&gt;
[[Technical University of Munich]]&lt;br /&gt;
&lt;br /&gt;
[[Tenderloin Ventures AG|Tenderloin Ventures AG (Tomahawk.vc)]]&lt;br /&gt;
&lt;br /&gt;
[[Timur Rakhimzhan]]&lt;br /&gt;
&lt;br /&gt;
[[Uvaca Labs LLC]]&lt;br /&gt;
&lt;br /&gt;
[[VirtualHiveLtd|Virtual Hive Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Vladyslav Popov]]&lt;br /&gt;
&lt;br /&gt;
[[Wolkboer (Pty) Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[WMA Investments Limited]]&lt;br /&gt;
&lt;br /&gt;
[[Yannick Endrion]]&lt;br /&gt;
&lt;br /&gt;
[[Zaboo d.o.o.]]&lt;br /&gt;
&lt;br /&gt;
[[Zarety LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Zondax AG]]&lt;br /&gt;
&lt;br /&gt;
[[User:Web3game|Web3game]]&lt;br /&gt;
&lt;br /&gt;
[[User:Zenithcode|Zenith Code LLC]]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.internetcomputer.org/wiki/User:ZTLC_PTE_Ltd ZTLC_PTE_Ltd]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=ParaFi_Technologies_NS_LLC&amp;diff=8472</id>
		<title>ParaFi Technologies NS LLC</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=ParaFi_Technologies_NS_LLC&amp;diff=8472"/>
		<updated>2025-07-10T18:51:54Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: correcting hash&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Self-Declaration==&lt;br /&gt;
SHA256 hash of ParaFi_Technologies_NS_LLC_Identity_and_Compliance_Declarations.pdf: b79709b72e8f9c7785df50641f6cd692eef8b52f798f6f55f07b2ab71990131d&lt;br /&gt;
[[File:ParaFi_Technologies_NS_LLC_Identity_and_Compliance_Declarations.pdf|center|thumb|Self-Declaration|link=Special:FilePath/ParaFi_Technologies_NS_LLC_Identity_and_Compliance_Declarations.pdf]]  &lt;br /&gt;
&lt;br /&gt;
==Proof of Identity==&lt;br /&gt;
SHA256 hash of ParaFi_Technologies_NS_LLC_Certificate_of_Formation.pdf: 1cff8bc8fcc7e5db249a21de52971ac72338782fb6f247387c80b87abdd0d536&lt;br /&gt;
[[File:ParaFi_Technologies_NS_LLC_Certificate_of_Formation.pdf|center|thumb|Proof of Identity|link=Special:FilePath/ParaFi_Technologies_NS_LLC_Certificate_of_Formation.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Node Machine Handover Statement==&lt;br /&gt;
SHA256 Hash of ParaFi_Technologies_NS_LLC_Node_Machine_Handover_Statement.pdf: 35844c0ba1eb6acb584ab5ce674347bc81321d741d7a6ec8e4572e7fe04a8c7a&lt;br /&gt;
[[File:ParaFi_Technologies_NS_LLC_Node_Machine_Handover_Statement.pdf|center|thumb|Node Handover Statement]]&lt;br /&gt;
&lt;br /&gt;
==Assessment of Independence==&lt;br /&gt;
SHA256 Hash of ParaFi_Technologies_NS_LLC_Assessment_of_Independence.pdf: 142b3326d53ddb5ec88d88723bb64d1ef7618d4735b740d051c6264f08f00a45&lt;br /&gt;
[[File:ParaFi_Technologies_NS_LLC_Assessment_of_Independence.pdf|center|thumb|Assessment of Independence]]&lt;br /&gt;
&lt;br /&gt;
==Compliance Assessment==&lt;br /&gt;
SHA256 Hash of ParaFi_Technologies_NS_LLC_Compliance_Assessment.pdf:&lt;br /&gt;
4bc6501bb7e9379cf55ca2a90c0e206ef521f69029eafcab8aac2ad59ed6ccab&lt;br /&gt;
[[File:ParaFi_Technologies_NS_LLC_Compliance_Assessment.pdf|center|thumb|Compliance Assessment]]&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=File:ParaFi_Technologies_NS_LLC_Compliance_Assessment.pdf&amp;diff=8471</id>
		<title>File:ParaFi Technologies NS LLC Compliance Assessment.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=File:ParaFi_Technologies_NS_LLC_Compliance_Assessment.pdf&amp;diff=8471"/>
		<updated>2025-07-10T18:46:41Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: ParaFi Technologies NS LLC Compliance Assessment / Certificate of Compliance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
ParaFi Technologies NS LLC Compliance Assessment / Certificate of Compliance&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Self_Declarations&amp;diff=8461</id>
		<title>Node Provider Self Declarations</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Self_Declarations&amp;diff=8461"/>
		<updated>2025-07-08T13:10:50Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: adding icswitch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;&#039;&#039;NOTE: Please try to keep entries in this document alphabetically sorted, to reduce conflicts in edits.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[0X52]]&lt;br /&gt;
&lt;br /&gt;
[[100 Count Holdings, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[43rd Big Idea Films, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[87m Neuron, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[ACCUSET SOLUTIONS]]&lt;br /&gt;
&lt;br /&gt;
[[Arceau NP LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Aitubi AG]]&lt;br /&gt;
&lt;br /&gt;
[[Aksinia Stavskaya]]&lt;br /&gt;
&lt;br /&gt;
[[Altimist Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[ALLUSION BV]]&lt;br /&gt;
&lt;br /&gt;
[[User:Alpha.agentic|ANTHONY ISAAKIDIS]]&lt;br /&gt;
&lt;br /&gt;
[[ANYPOINT PTY LTD]]&lt;br /&gt;
&lt;br /&gt;
[[AVRVM AG]]&lt;br /&gt;
&lt;br /&gt;
[[Artem Horodyskyi|ARTEM HORODYSKIY]]&lt;br /&gt;
&lt;br /&gt;
[[Bianca-Martina Rohner]]&lt;br /&gt;
&lt;br /&gt;
[[Bigger Capital|Bigger Capital Pty Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Bitapp]]&lt;br /&gt;
&lt;br /&gt;
[[Bitmoon]]&lt;br /&gt;
&lt;br /&gt;
[[Blockchain Development Labs Inc]]&lt;br /&gt;
&lt;br /&gt;
[[BlockFinance LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Blocktech Ventures LLC]]&lt;br /&gt;
&lt;br /&gt;
[[BLP22, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Blueant LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Bohatyrov Volodymyr]]&lt;br /&gt;
&lt;br /&gt;
[[Buldakova Rehina]]&lt;br /&gt;
&lt;br /&gt;
[[CarbonTwelve]]&lt;br /&gt;
&lt;br /&gt;
[[CocoMango LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Conic Ventures]]&lt;br /&gt;
&lt;br /&gt;
[[Coplus Limited]]&lt;br /&gt;
&lt;br /&gt;
[[Decentralized Entities Foundation]]&lt;br /&gt;
&lt;br /&gt;
[[DENODE|DeNoDe]]&lt;br /&gt;
&lt;br /&gt;
[[DFINITY Stiftung]]&lt;br /&gt;
&lt;br /&gt;
[[DragginCorp SARL]] &lt;br /&gt;
&lt;br /&gt;
[[Eastman_Ventures_Pty_Ltd|Eastan_Ventures_Pty_Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Exaion]]&lt;br /&gt;
&lt;br /&gt;
[[Extragone]]&lt;br /&gt;
&lt;br /&gt;
[[User:FenexLLC|FenexLLC]]&lt;br /&gt;
&lt;br /&gt;
[[Ferndale International]]&lt;br /&gt;
&lt;br /&gt;
[[Fractal Labs, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Geeta Kalwani]]&lt;br /&gt;
&lt;br /&gt;
[[GeoNodes LLC]]&lt;br /&gt;
&lt;br /&gt;
[[George Bassadone]]&lt;br /&gt;
&lt;br /&gt;
[[Geodd Pvt Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Giant Leaf, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[User:James Wang|HashQuark]]&lt;br /&gt;
&lt;br /&gt;
[[HoneyComb Capital]]&lt;br /&gt;
&lt;br /&gt;
[[Iancu-Aurel|Iancu Aurel]]&lt;br /&gt;
&lt;br /&gt;
[[Icaria_Systems_Pty_Ltd|Icaria_Systes_Pty_Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Icswitch]]&lt;br /&gt;
&lt;br /&gt;
[[Illusions in Art Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[InfoObjects Inc]]&lt;br /&gt;
&lt;br /&gt;
[[Ivanov Oleksandr]]&lt;br /&gt;
&lt;br /&gt;
[[Karel Frank]]&lt;br /&gt;
&lt;br /&gt;
[[Katerina Karapuz]]&lt;br /&gt;
&lt;br /&gt;
[[Kontrapunt (Pty) Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Krishna Enterprises]]&lt;br /&gt;
&lt;br /&gt;
[[Krzysztof Żelazko]]&lt;br /&gt;
&lt;br /&gt;
[[Louise Velayo]]&lt;br /&gt;
&lt;br /&gt;
[[Ludens LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Lukas Helebrandt]]&lt;br /&gt;
&lt;br /&gt;
[[Marvelous Web3]]&lt;br /&gt;
&lt;br /&gt;
[[Maksym Ishchenko]]&lt;br /&gt;
&lt;br /&gt;
[[MB Patrankos šūvis]] &lt;br /&gt;
&lt;br /&gt;
[[:File:NODE-PROVIDER-SELF.pdf|ML SOLUTIONS LTD]]&lt;br /&gt;
&lt;br /&gt;
[[ML_MIST]]&lt;br /&gt;
&lt;br /&gt;
[[Michael_and_Dominik_Peterer]]&lt;br /&gt;
&lt;br /&gt;
[[MI Servers]]&lt;br /&gt;
&lt;br /&gt;
[[Mariano Stoll]]&lt;br /&gt;
&lt;br /&gt;
[[Neptune Partners]]&lt;br /&gt;
&lt;br /&gt;
[[NODAL CAPITAL]]&lt;br /&gt;
&lt;br /&gt;
[[NODAO]]&lt;br /&gt;
&lt;br /&gt;
[[Nova_LCC]]&lt;br /&gt;
&lt;br /&gt;
[[NoviSystems|NoviSystems, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Nataliia Nykyforak]]&lt;br /&gt;
&lt;br /&gt;
[[Natalia Kulesha]]&lt;br /&gt;
&lt;br /&gt;
[[Nikola Nikov]]&lt;br /&gt;
&lt;br /&gt;
[[OneSixtyTwo Digital Capital]]&lt;br /&gt;
&lt;br /&gt;
[[User:Soekawat|Origin Game]]&lt;br /&gt;
&lt;br /&gt;
[[ParaFi Technologies NS LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Paul Creasey]]&lt;br /&gt;
&lt;br /&gt;
[[User:Protocol16|Protocol16 (Philip Hur)]]&lt;br /&gt;
&lt;br /&gt;
[[PindarTechnologyLimited]]&lt;br /&gt;
&lt;br /&gt;
[[User:Powermetacorp|Power Meta Corporation]]&lt;br /&gt;
&lt;br /&gt;
[[Privoxy Solutions, LLC.]]&lt;br /&gt;
&lt;br /&gt;
[[Quantum Node Ltd.]]&lt;br /&gt;
&lt;br /&gt;
[[Reist Telecom AG]]&lt;br /&gt;
&lt;br /&gt;
[[Rivonia Holdings, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Rivram Inc]]&lt;br /&gt;
&lt;br /&gt;
[[Stamper Co., Ltd.]]&lt;br /&gt;
&lt;br /&gt;
[[Serenity lotus limited]]&lt;br /&gt;
&lt;br /&gt;
[[Starbase]]&lt;br /&gt;
&lt;br /&gt;
[[Sygnum]]&lt;br /&gt;
&lt;br /&gt;
[[Technical University of Munich]]&lt;br /&gt;
&lt;br /&gt;
[[Tenderloin Ventures AG|Tenderloin Ventures AG (Tomahawk.vc)]]&lt;br /&gt;
&lt;br /&gt;
[[Timur Rakhimzhan]]&lt;br /&gt;
&lt;br /&gt;
[[Uvaca Labs LLC]]&lt;br /&gt;
&lt;br /&gt;
[[VirtualHiveLtd|Virtual Hive Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Vladyslav Popov]]&lt;br /&gt;
&lt;br /&gt;
[[Wolkboer (Pty) Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[WMA Investments Limited]]&lt;br /&gt;
&lt;br /&gt;
[[Yannick Endrion]]&lt;br /&gt;
&lt;br /&gt;
[[Zaboo d.o.o.]]&lt;br /&gt;
&lt;br /&gt;
[[Zarety LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Zondax AG]]&lt;br /&gt;
&lt;br /&gt;
[[User:Web3game|Web3game]]&lt;br /&gt;
&lt;br /&gt;
[[User:Zenithcode|Zenith Code LLC]]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.internetcomputer.org/wiki/User:ZTLC_PTE_Ltd ZTLC_PTE_Ltd]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=ML_MIST&amp;diff=8360</id>
		<title>ML MIST</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=ML_MIST&amp;diff=8360"/>
		<updated>2025-06-02T15:13:34Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: added placeholder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;placeholder for ML MIST provider page&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Self_Declarations&amp;diff=8359</id>
		<title>Node Provider Self Declarations</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Self_Declarations&amp;diff=8359"/>
		<updated>2025-06-02T15:12:56Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: added ml mist&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;&#039;&#039;NOTE: Please try to keep entries in this document alphabetically sorted, to reduce conflicts in edits.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[0X52]]&lt;br /&gt;
&lt;br /&gt;
[[100 Count Holdings, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[43rd Big Idea Films, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[87m Neuron, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[ACCUSET SOLUTIONS]]&lt;br /&gt;
&lt;br /&gt;
[[Arceau NP LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Aitubi AG]]&lt;br /&gt;
&lt;br /&gt;
[[Aksinia Stavskaya]]&lt;br /&gt;
&lt;br /&gt;
[[Altimist Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[ALLUSION BV]]&lt;br /&gt;
&lt;br /&gt;
[[User:Alpha.agentic|ANTHONY ISAAKIDIS]]&lt;br /&gt;
&lt;br /&gt;
[[ANYPOINT PTY LTD]]&lt;br /&gt;
&lt;br /&gt;
[[AVRVM AG]]&lt;br /&gt;
&lt;br /&gt;
[[Artem Horodyskyi|ARTEM HORODYSKIY]]&lt;br /&gt;
&lt;br /&gt;
[[Bianca-Martina Rohner]]&lt;br /&gt;
&lt;br /&gt;
[[Bigger Capital|Bigger Capital Pty Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Bitapp]]&lt;br /&gt;
&lt;br /&gt;
[[Bitmoon]]&lt;br /&gt;
&lt;br /&gt;
[[Blockchain Development Labs Inc]]&lt;br /&gt;
&lt;br /&gt;
[[BlockFinance LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Blocktech Ventures LLC]]&lt;br /&gt;
&lt;br /&gt;
[[BLP22, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Blueant LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Bohatyrov Volodymyr]]&lt;br /&gt;
&lt;br /&gt;
[[Buldakova Rehina]]&lt;br /&gt;
&lt;br /&gt;
[[CarbonTwelve]]&lt;br /&gt;
&lt;br /&gt;
[[CocoMango LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Conic Ventures]]&lt;br /&gt;
&lt;br /&gt;
[[Coplus Limited]]&lt;br /&gt;
&lt;br /&gt;
[[Decentralized Entities Foundation]]&lt;br /&gt;
&lt;br /&gt;
[[DENODE|DeNoDe]]&lt;br /&gt;
&lt;br /&gt;
[[DFINITY Stiftung]]&lt;br /&gt;
&lt;br /&gt;
[[DragginCorp SARL]] &lt;br /&gt;
&lt;br /&gt;
[[Eastman_Ventures_Pty_Ltd|Eastan_Ventures_Pty_Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Exaion]]&lt;br /&gt;
&lt;br /&gt;
[[Extragone]]&lt;br /&gt;
&lt;br /&gt;
[[User:FenexLLC|FenexLLC]]&lt;br /&gt;
&lt;br /&gt;
[[Ferndale International]]&lt;br /&gt;
&lt;br /&gt;
[[Fractal Labs, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Geeta Kalwani]]&lt;br /&gt;
&lt;br /&gt;
[[GeoNodes LLC]]&lt;br /&gt;
&lt;br /&gt;
[[George Bassadone]]&lt;br /&gt;
&lt;br /&gt;
[[Geodd Pvt Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Giant Leaf, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[User:James Wang|HashQuark]]&lt;br /&gt;
&lt;br /&gt;
[[HoneyComb Capital]]&lt;br /&gt;
&lt;br /&gt;
[[Iancu-Aurel|Iancu Aurel]]&lt;br /&gt;
&lt;br /&gt;
[[Icaria_Systems_Pty_Ltd|Icaria_Systes_Pty_Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Illusions in Art Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[InfoObjects Inc]]&lt;br /&gt;
&lt;br /&gt;
[[Ivanov Oleksandr]]&lt;br /&gt;
&lt;br /&gt;
[[Karel Frank]]&lt;br /&gt;
&lt;br /&gt;
[[Katerina Karapuz]]&lt;br /&gt;
&lt;br /&gt;
[[Kontrapunt (Pty) Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Krishna Enterprises]]&lt;br /&gt;
&lt;br /&gt;
[[Krzysztof Żelazko]]&lt;br /&gt;
&lt;br /&gt;
[[Louise Velayo]]&lt;br /&gt;
&lt;br /&gt;
[[Ludens LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Lukas Helebrandt]]&lt;br /&gt;
&lt;br /&gt;
[[Marvelous Web3]]&lt;br /&gt;
&lt;br /&gt;
[[Maksym Ishchenko]]&lt;br /&gt;
&lt;br /&gt;
[[MB Patrankos šūvis]] &lt;br /&gt;
&lt;br /&gt;
[[:File:NODE-PROVIDER-SELF.pdf|ML SOLUTIONS LTD]]&lt;br /&gt;
&lt;br /&gt;
[[ML_MIST]]&lt;br /&gt;
&lt;br /&gt;
[[Michael_and_Dominik_Peterer]]&lt;br /&gt;
&lt;br /&gt;
[[MI Servers]]&lt;br /&gt;
&lt;br /&gt;
[[Mariano Stoll]]&lt;br /&gt;
&lt;br /&gt;
[[Neptune Partners]]&lt;br /&gt;
&lt;br /&gt;
[[NODAL CAPITAL]]&lt;br /&gt;
&lt;br /&gt;
[[NODAO]]&lt;br /&gt;
&lt;br /&gt;
[[Nova_LCC]]&lt;br /&gt;
&lt;br /&gt;
[[NoviSystems|NoviSystems, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Nataliia Nykyforak]]&lt;br /&gt;
&lt;br /&gt;
[[Natalia Kulesha]]&lt;br /&gt;
&lt;br /&gt;
[[Nikola Nikov]]&lt;br /&gt;
&lt;br /&gt;
[[OneSixtyTwo Digital Capital]]&lt;br /&gt;
&lt;br /&gt;
[[User:Soekawat|Origin Game]]&lt;br /&gt;
&lt;br /&gt;
[[Paul Creasey]]&lt;br /&gt;
&lt;br /&gt;
[[User:Protocol16|Protocol16 (Philip Hur)]]&lt;br /&gt;
&lt;br /&gt;
[[PindarTechnologyLimited]]&lt;br /&gt;
&lt;br /&gt;
[[User:Powermetacorp|Power Meta Corporation]]&lt;br /&gt;
&lt;br /&gt;
[[Privoxy Solutions, LLC.]]&lt;br /&gt;
&lt;br /&gt;
[[Quantum Node Ltd.]]&lt;br /&gt;
&lt;br /&gt;
[[Reist Telecom AG]]&lt;br /&gt;
&lt;br /&gt;
[[Rivonia Holdings, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Rivram Inc]]&lt;br /&gt;
&lt;br /&gt;
[[Stamper Co., Ltd.]]&lt;br /&gt;
&lt;br /&gt;
[[Serenity lotus limited]]&lt;br /&gt;
&lt;br /&gt;
[[Starbase]]&lt;br /&gt;
&lt;br /&gt;
[[Sygnum]]&lt;br /&gt;
&lt;br /&gt;
[[Technical University of Munich]]&lt;br /&gt;
&lt;br /&gt;
[[Tenderloin Ventures AG|Tenderloin Ventures AG (Tomahawk.vc)]]&lt;br /&gt;
&lt;br /&gt;
[[Timur Rakhimzhan]]&lt;br /&gt;
&lt;br /&gt;
[[Uvaca Labs LLC]]&lt;br /&gt;
&lt;br /&gt;
[[VirtualHiveLtd|Virtual Hive Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Vladyslav Popov]]&lt;br /&gt;
&lt;br /&gt;
[[Wolkboer (Pty) Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[WMA Investments Limited]]&lt;br /&gt;
&lt;br /&gt;
[[Yannick Endrion]]&lt;br /&gt;
&lt;br /&gt;
[[Zaboo d.o.o.]]&lt;br /&gt;
&lt;br /&gt;
[[Zarety LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Zondax AG]]&lt;br /&gt;
&lt;br /&gt;
[[User:Web3game|Web3game]]&lt;br /&gt;
&lt;br /&gt;
[[User:Zenithcode|Zenith Code LLC]]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.internetcomputer.org/wiki/User:ZTLC_PTE_Ltd ZTLC_PTE_Ltd]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Zarety_LLC&amp;diff=8313</id>
		<title>Zarety LLC</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Zarety_LLC&amp;diff=8313"/>
		<updated>2025-04-03T09:49:46Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[:File:Proof-of-identity.pdf|File:Proof-of-identity.pdf]]:4f9983a12136922e80784bfa3781a7795d3f6dda14401c653b63e5818a87b36b&lt;br /&gt;
[[File:Proof-of-identity.pdf|thumb|alt=|none]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[:File:Self-declaration-zarety-llc.pdf|File:Self-declaration-zarety-llc.pdf]]:31b5d8004094e572dd6b97e0c08884d2bf45210eb595b54bec63772ae67f38d7&lt;br /&gt;
[[File:Self-declaration-zarety-llc.pdf|thumb]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Candidate machine validation with and without zarety.pdf|thumb|Candidate machine validation with and without Zarety LLC]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[:File:Complete with Docusign Zarety DFINITY node.pdf|Machine Handover Statement]]:4be7d546c58a1372ba845759df01208af573b6b484b45a600f756930d5a67040&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Blueant_LLC&amp;diff=8312</id>
		<title>Blueant LLC</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Blueant_LLC&amp;diff=8312"/>
		<updated>2025-04-03T09:45:16Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: added link to enzo&amp;#039;s handover copy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ wget https://mywikis-wiki-media.s3.us-central-1.wasabisys.com/internetcomputer/Proof-of-identity-blue-ant.pdf 2&amp;gt;/dev/null &amp;amp;&amp;amp; sha256sum Proof-of-identity-blue-ant.pdf&lt;br /&gt;
9bbcedcf3502b1940bb0fcd1dd3d1d91cd1408149a5791764aea2ca50c44ddee  Proof-of-identity-blue-ant.pdf&lt;br /&gt;
&lt;br /&gt;
$ wget https://mywikis-wiki-media.s3.us-central-1.wasabisys.com/internetcomputer/Self-declaration-blue-ant.pdf 2&amp;gt;/dev/null &amp;amp;&amp;amp; sha256sum Self-declaration-blue-ant.pdf&lt;br /&gt;
d17d67f24487ee09485ec94af646c9a7dc39f063e6ccffdbc8ca10324d26bbfc  Self-declaration-blue-ant.pdf&lt;br /&gt;
&lt;br /&gt;
$ wget https://mywikis-wiki-media.s3.us-central-1.wasabisys.com/internetcomputer/Candidate_machine_validation_blue_ant.pdf 2&amp;gt;/dev/null &amp;amp;&amp;amp; sha256sum Candidate_machine_validation_blue_ant.pdf&lt;br /&gt;
2191051518408b9247897bee4b108c6340239b7a9623e17260c6836b41df80d5  Candidate_machine_validation_blue_ant.pdf&lt;br /&gt;
&lt;br /&gt;
$ wget https://mywikis-wiki-media.s3.us-central-1.wasabisys.com/internetcomputer/Enzo%27s_copy_of_2024.12_-_DFINITY_node_hand_over_statement_%281%29.pdf 2&amp;gt;/dev/null &amp;amp;&amp;amp; sha256sum &amp;quot;Enzo&#039;s_copy_of_2024.12_-_DFINITY_node_hand_over_statement_(1).pdf&amp;quot;&lt;br /&gt;
e60d4ee43be50b00edf7fa83cb1283fc9d1c4e85d6387fa568256ff692c2025c  Enzo&#039;s_copy_of_2024.12_-_DFINITY_node_hand_over_statement_(1).pdf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[[File:Proof-of-identity-blue-ant.pdf|thumb|proof of identity]]&lt;br /&gt;
[[File:Self-declaration-blue-ant.pdf|thumb|self declaration]]&lt;br /&gt;
[[File:Candidate machine validation blue ant.pdf|thumb|candidate machine validation]]&lt;br /&gt;
[[File:Enzo&#039;s_copy_of_2024.12_-_DFINITY_node_hand_over_statement_(1).pdf|thumb|handover document]]&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Remuneration&amp;diff=8308</id>
		<title>Node Provider Remuneration</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Remuneration&amp;diff=8308"/>
		<updated>2025-04-01T13:49:24Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: added the remuneration for Gen-1.1 NPs that chose to relocate their nodes to a non-EU state&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Rewards ==&lt;br /&gt;
&lt;br /&gt;
Node Providers receive rewards (remuneration) for owning node machines that run in the Internet Computer network. Node Provider rewards are set by the NNS DAO, with changes only possible through NNS proposals adopted by the Internet Computer community.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;NNS mints Node Provider Rewards every ~2,629,700 seconds&#039;&#039;&#039;, which is 1/12th of a year. It uses the 30-day moving average price of ICP in Special Drawing Rights (XDR), an international reserve asset created by the International Monetary Fund (IMF). This value is tracked on the [https://dashboard.internetcomputer.org Internet Computer Dashboard] on the &amp;quot;Conversion Rate&amp;quot; chart. (See [[How the 30-Day Moving Average Is Calculated]].) Rewards for the previous month are converted to ICP and transferred to account of the principal registered by the Node Provider in the [[Node Provider Onboarding|Node Onboarding]] process.&lt;br /&gt;
&lt;br /&gt;
These are the current rewards, but reward changes can be proposed to the NNS and adopted by voters at any time.&lt;br /&gt;
&lt;br /&gt;
== Remuneration models ==&lt;br /&gt;
The NNS distributes rewards depending on:&lt;br /&gt;
&lt;br /&gt;
* The generation of the node hardware (gen-1/gen-2)&lt;br /&gt;
* Geographic location&lt;br /&gt;
* The total number of nodes a provider operates&amp;lt;br /&amp;gt;&lt;br /&gt;
Different hardware generations lead to varying capital expenditures (CAPEX) and operating expenditures (OPEX), which can also fluctuate based on geographic location. Furthermore, certain locations are deemed more valuable for enhancing network decentralization, resulting in higher rewards for Node Providers in those areas.&lt;br /&gt;
&lt;br /&gt;
Two [[Node Provider Machine Hardware Guide|node machine hardware generations]] are currently recognized: gen-1 and gen-2. Each hardware generation is associated with its own remuneration model. Some cost estimates are provided for the current 2nd generation, but keep in mind that actual hardware and operational expenses may differ.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Hardware Type&lt;br /&gt;
|Remuneration Model&lt;br /&gt;
|-&lt;br /&gt;
|Gen-1&lt;br /&gt;
|Gen-1 type-0&lt;br /&gt;
|-&lt;br /&gt;
|Gen-1 + storage upgrade&lt;br /&gt;
|Gen-1 type-1&lt;br /&gt;
|-&lt;br /&gt;
|Gen-2&lt;br /&gt;
|V2: Gen-2 remuneration&lt;br /&gt;
V2.2: Gen-2 remuneration update&lt;br /&gt;
|-&lt;br /&gt;
|Gen-3&lt;br /&gt;
|V3: Gen-3 remuneration&lt;br /&gt;
|}In the future, a remuneration model will be proposed that includes both automated incentives, rewards, and penalties.  &lt;br /&gt;
&lt;br /&gt;
== Initial Gen-1 Remuneration Model ==&lt;br /&gt;
&lt;br /&gt;
Nodes purchased prior to Genesis were considered Gen-1 nodes. All nodes started out as type-0 with the following calculations:   &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;TYPE-0&#039;&#039;&#039;&lt;br /&gt;
|Reward per month (in XDR)&lt;br /&gt;
|-&lt;br /&gt;
|USA&lt;br /&gt;
|873&lt;br /&gt;
|-&lt;br /&gt;
|US - FL/GA/CA&lt;br /&gt;
|1087&lt;br /&gt;
|-&lt;br /&gt;
|EU&lt;br /&gt;
|1087&lt;br /&gt;
|-&lt;br /&gt;
|Asia&lt;br /&gt;
|1212&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After the first nodes were up and running, the decision was made to increase the storage capacity of all nodes to support larger subnet states. Thus, a type-1 table was created to reward for the additional costs that the extra storage incurred. Rewards were also broken down further by country. These type-1 values include both the original equipment costs incurred by Gen-1 Node Providers, their operating costs, and the varied costs that Node Providers incurred to purchase the additional storage, ship it to their data centers, and get it installed in each server. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;TYPE-1&#039;&#039;&#039;                                &lt;br /&gt;
|Total rewards per node (in XDR)&lt;br /&gt;
|-&lt;br /&gt;
|US - FL/GA/CA&lt;br /&gt;
|1600&lt;br /&gt;
|-&lt;br /&gt;
|US - other&lt;br /&gt;
|1499&lt;br /&gt;
|-&lt;br /&gt;
|Canada&lt;br /&gt;
|1624&lt;br /&gt;
|-&lt;br /&gt;
|Slovenia&lt;br /&gt;
|1720&lt;br /&gt;
|-&lt;br /&gt;
|Switzerland&lt;br /&gt;
|1696&lt;br /&gt;
|-&lt;br /&gt;
|EU - other&lt;br /&gt;
|1584&lt;br /&gt;
|-&lt;br /&gt;
|Singapore&lt;br /&gt;
|1842&lt;br /&gt;
|-&lt;br /&gt;
|Japan&lt;br /&gt;
|1773&lt;br /&gt;
|}&lt;br /&gt;
An [[Proposed Gen-1 Remuneration Model|Interim Gen-1 Remuneration Model]] was initially approved for when the original 48-month agreements are completed, but it has since been replaced with the Gen-1.1 Remuneration Model.&lt;br /&gt;
&lt;br /&gt;
== Gen-1.1 Remuneration Model ==&lt;br /&gt;
This section presents the remuneration model for Gen-1 servers which are continuing to run as IC nodes beyond their initial 48 months.&lt;br /&gt;
&lt;br /&gt;
With the adoption of [https://dashboard.internetcomputer.org/proposal/132553 motion proposal #132553] as discussed in [https://forum.dfinity.org/t/proposal-update-interim-gen-1-node-provider-remuneration-after-48-months/35001 this forum post], a new post-48-month remuneration model was adopted for Gen1 node machines. This remuneration model implements fixed and lower rewards for Gen1 node machines after 48 months of operation, with a maximum of 42 nodes per node provider. The expected length of time that these rewards will remain in force is 24 months. &lt;br /&gt;
&lt;br /&gt;
With the adoption of [https://dashboard.internetcomputer.org/proposal/135253 motion proposal 135253] as discussed in [https://forum.dfinity.org/t/proposal-update-interim-gen-1-node-provider-remuneration-after-48-months/35001/208 this forum post], an extra 10% of the highest Gen-1.1 rewards was given to the node providers that chose to relocate their nodes to a non-EU member state. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!TYPE-1.1&lt;br /&gt;
!Reward per node per month (in XDR)&lt;br /&gt;
|-&lt;br /&gt;
|US - FL/GA/CA&lt;br /&gt;
|1072&lt;br /&gt;
|-&lt;br /&gt;
|US - other&lt;br /&gt;
|1004&lt;br /&gt;
|-&lt;br /&gt;
|Canada&lt;br /&gt;
|1088&lt;br /&gt;
|-&lt;br /&gt;
|Slovenia&lt;br /&gt;
|1152&lt;br /&gt;
|-&lt;br /&gt;
|Switzerland&lt;br /&gt;
|1136&lt;br /&gt;
|-&lt;br /&gt;
|EU - other&lt;br /&gt;
|1061&lt;br /&gt;
|-&lt;br /&gt;
|Singapore&lt;br /&gt;
|1234&lt;br /&gt;
|-&lt;br /&gt;
|Japan&lt;br /&gt;
|1188&lt;br /&gt;
|-&lt;br /&gt;
|Non-EU (relocation)&lt;br /&gt;
|1357&lt;br /&gt;
|}&lt;br /&gt;
As part of that approved motion proposal: &lt;br /&gt;
&lt;br /&gt;
* Excess nodes may be sold to another NP while keeping the nodes in the same data center.&lt;br /&gt;
* Excess nodes may be sold to an optimal NP with the nodes moved to a new country and data center.&lt;br /&gt;
* No node provider can have more than 42 nodes.&lt;br /&gt;
The steps that the new NP must follow are outlined here: [[Steps for Gen-1 Node onboarding after 48 months]]&lt;br /&gt;
&lt;br /&gt;
== Gen-2 Remuneration Model ==&lt;br /&gt;
&lt;br /&gt;
This section presents the remuneration model for 2nd generation Node Providers.&lt;br /&gt;
&lt;br /&gt;
Based on the feedback from Node Providers and the community, discussed in this [https://forum.dfinity.org/t/the-state-and-direction-of-decentralization-nodes-on-the-internet-computer/9170/128?u=svenf forum post], the Gen2 remuneration model is based on the following principles:&lt;br /&gt;
* Higher rewards for the first nodes of a new Node Provider in order to attract more Node Providers in an effort to improve ownership decentralization.&lt;br /&gt;
* More refined rewards for nodes in new geographies, like South America, Africa, Asia and Australia, to stimulate further geographical decentralization.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The node reward model is parametrized by:&lt;br /&gt;
*&#039;&#039;&#039;Geography multiplier (mult)&#039;&#039;&#039;: This multiplier will be lower, namely 2, for regions with many nodes (e.g. Europe and North America), and higher, namely 3, for regions where there are currently limited nodes present (such as Africa and South America)&lt;br /&gt;
*&#039;&#039;&#039;Reduction coefficient (r)&#039;&#039;&#039;: The node reward of the n-th node of a Node Provider is multiplied by r ^ (n-1). The reduction coefficient r is dependent on the geography of the Node Provider. As a result, the first nodes of a Node Provider get attractive rewards, but it is increasingly less attractive to add additional nodes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rewards are furthermore dependent on estimated capital and operational expenses that vary based on geographies. A table with the concrete numbers follows below.&lt;br /&gt;
&lt;br /&gt;
In summary, for a geography &#039;&#039;&#039;g&#039;&#039;&#039;, let&lt;br /&gt;
* mult(&#039;&#039;&#039;g&#039;&#039;&#039;) be the geography multiplier&lt;br /&gt;
* cost(&#039;&#039;&#039;g&#039;&#039;&#039;) be the total costs over 4 years for acquiring and maintaining a gen 2 node in g in XDR&lt;br /&gt;
* r(&#039;&#039;&#039;np&#039;&#039;&#039;, &#039;&#039;&#039;g&#039;&#039;&#039;) be the reduction coefficient&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The monthly reward for the n-th node of a Node Provider (&#039;&#039;&#039;np&#039;&#039;&#039;) in geography &#039;&#039;&#039;g&#039;&#039;&#039; are defined as follows:&lt;br /&gt;
 reward(&#039;&#039;&#039;g, n&#039;&#039;&#039;) = cost(&#039;&#039;&#039;g&#039;&#039;&#039;) * mult(&#039;&#039;&#039;g&#039;&#039;&#039;) * r(&#039;&#039;&#039;np, g&#039;&#039;&#039;) ^ (n-1) / (4 * 12)&lt;br /&gt;
If a Node Provider has nodes in more than one type or geography but within the same country, the NNS knows that they are in the same country and counts the combined total of nodes, each according to their own type and geography. &lt;br /&gt;
&lt;br /&gt;
The total costs over 4 years are multiplied by the geography multiplier, multiplied by the reduction coefficient, and divided by 4 years times 12 months. As a result, rewards for nodes in new geographies and for Node Providers with few nodes are higher. Thereby, a geographical and ownership decentralization is incentivized. The following table shows the geography-dependent values and the monthly reward for the first node onboarded. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Geography&lt;br /&gt;
|Total cost over 4 years&lt;br /&gt;
|Multiplier&lt;br /&gt;
|Monthly reward for 1st node (in XDR)&lt;br /&gt;
|Reduction coefficient r&lt;br /&gt;
|-&lt;br /&gt;
|USA&lt;br /&gt;
|31034&lt;br /&gt;
|2&lt;br /&gt;
|1294&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|US - FL/GA/CA&lt;br /&gt;
|37031&lt;br /&gt;
|2&lt;br /&gt;
|1542&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|EU&lt;br /&gt;
|36996&lt;br /&gt;
|2&lt;br /&gt;
|1542&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|Asia Singapore/Japan&lt;br /&gt;
|40508&lt;br /&gt;
|2&lt;br /&gt;
|1688&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|Asia non Singapore&lt;br /&gt;
|40508&lt;br /&gt;
|3&lt;br /&gt;
|2532&lt;br /&gt;
|0.98&lt;br /&gt;
|-&lt;br /&gt;
|South Africa&lt;br /&gt;
|43986&lt;br /&gt;
|3&lt;br /&gt;
|2748&lt;br /&gt;
|0.98&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the reduction coefficient r(&#039;&#039;&#039;np, g&#039;&#039;&#039;) is applied per (Node Provider + Country) pair. This means if there is more than one Node Provider in the same country, r(&#039;&#039;&#039;np, g&#039;&#039;&#039;) is calculated separately for them. For instance: Node Provider A has 10 nodes in France (EU); reduction coefficient for the 1st node of Node Provider A is 0.95, and for the 10th node is 0.95 ^ 9 = 0.63. If there is Node Provider B with 10 nodes in France (EU) as well, they will get the same rewards as Node Provider A. &lt;br /&gt;
&lt;br /&gt;
As an example, the below table shows the calculation of the rewards of the 1st to the 10th node for a Node Provider in South Africa. &lt;br /&gt;
 reward(&#039;&#039;&#039;south africa, n&#039;&#039;&#039;)&lt;br /&gt;
 = cost(&#039;&#039;&#039;south africa&#039;&#039;&#039;) * mult(&#039;&#039;&#039;south africa&#039;&#039;&#039;) * r(&#039;&#039;&#039;south africa&#039;&#039;&#039;) ^ (&#039;&#039;&#039;n&#039;&#039;&#039;-1) / (4 * 12)&lt;br /&gt;
 = ( 21’455 + 22’531) * 3 * 0.98 ^ (&#039;&#039;&#039;n&#039;&#039;&#039;-1) / (4 * 12)&lt;br /&gt;
 = 2748 * 0.98 ^ (&#039;&#039;&#039;n&#039;&#039;&#039;-1)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|N-th node&lt;br /&gt;
|Multiplier (rounded)&lt;br /&gt;
|Monthly remuneration (rounded, in XDR)&lt;br /&gt;
|-&lt;br /&gt;
|Node 1&lt;br /&gt;
|0.98 ^ (1-1) =1 &lt;br /&gt;
|2748&lt;br /&gt;
|-&lt;br /&gt;
|Node 2&lt;br /&gt;
|0.98 ^ (2-1) =0.98&lt;br /&gt;
|2693&lt;br /&gt;
|-&lt;br /&gt;
|Node 3&lt;br /&gt;
|0.98 ^ (3-1) =0.96040&lt;br /&gt;
|2639&lt;br /&gt;
|-&lt;br /&gt;
|Node 4&lt;br /&gt;
|0.98 ^ (4-1) =0.941192&lt;br /&gt;
|2586&lt;br /&gt;
|-&lt;br /&gt;
|Node 5&lt;br /&gt;
|0.98 ^ (5-1) =0.92236816 &lt;br /&gt;
|2534 &lt;br /&gt;
|-&lt;br /&gt;
|Node 6&lt;br /&gt;
|0.98 ^ (6-1) =0.9039207968&lt;br /&gt;
|2483 &lt;br /&gt;
|-&lt;br /&gt;
|Node 7&lt;br /&gt;
|0.98 ^ (7-1) =0.885842309&lt;br /&gt;
|2434 &lt;br /&gt;
|-&lt;br /&gt;
|Node 8&lt;br /&gt;
|0.98 ^ (8-1) = 0.8681255332&lt;br /&gt;
|2385&lt;br /&gt;
|-&lt;br /&gt;
|Node 9&lt;br /&gt;
|0.98 ^ (9-1) =0.8507630226&lt;br /&gt;
|2337 &lt;br /&gt;
|-&lt;br /&gt;
|Node 10&lt;br /&gt;
|0.98 ^ (10-1) =0.8337477621&lt;br /&gt;
|2291 &lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
[[File:Profit margin for each additional node graph for remuneration V2.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
The above figure shows the additional cash flow (investments minus costs) a Node Provider receives for adding an additional node for three regions (South Africa, Europe and USA) that can be calculated based on the Version 2 remuneration model. Note that the calculation does not take into account the time value of the cash flows (i.e. discounted value), but purely the cash flows or rewards and expenses. &lt;br /&gt;
&lt;br /&gt;
What is visible from this graph is that adding additional nodes only generates additional cash flow for a specific number of nodes, in a specific region. For example, in Europe adding up to approximately 15 nodes will generate additional cash flow, whereas for the US region, this is only 2 nodes. &lt;br /&gt;
&lt;br /&gt;
Potential new Node Providers can make a full calculation themselves of the Internal Rate of Return, Payback period and cash flow based on their actual CAPEX and OPEX costs. Of course, these actual CAPEX and OPEX costs may differ from the costs on which the remuneration is based, depending on the specific contracts the new Node Provider has been able to negotiate with hardware vendors and DC operators. &lt;br /&gt;
&lt;br /&gt;
=== Version 2.1 Remuneration Model ===&lt;br /&gt;
The Version 2.1 remuneration model replaces the Version 2 remuneration for 2nd generation Node Providers. It includes the following changes compared to Version 2, based on discussion in this [https://forum.dfinity.org/t/the-state-and-direction-of-decentralization-nodes-on-the-internet-computer/9170/192 forum thread]:&lt;br /&gt;
&lt;br /&gt;
* No entry for the region Asia will be used anymore. For the Asia region, specific country entries will be used. &lt;br /&gt;
* Specific entries for Hong Kong and India will be added to the remuneration table. &lt;br /&gt;
* The multiplier is set to a value of 2 for all countries. In future, this might be updated through a new NNS proposal if the community determines that the risk premium for projects should be different for different countries (for example, if the risk of running in node in one specific country is higher than the risk of running in node in another country, this might validate a different multiplier).&lt;br /&gt;
* A limit is set to the number of nodes in new countries for which the remuneration applies. Once this is reached, the reduction coefficient for additional nodes will be adjusted to allow adding only one or two nodes for this country, similar to existing countries like the U.S. and Switzerland. Currently, the limit of number of nodes per country is set to 50 nodes, which allows NP’s to add a node in that specific country to every available subnet and have a small set of additional nodes in case nodes are unhealthy or require maintenance.&lt;br /&gt;
* Version 2 was relevant for a limited time period in 2023. Version 2.1 became the current model as of May 2023.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following table shows the geography-dependent values and the monthly reward for the first node onboarded based on the Remuneration Version 2.1. &lt;br /&gt;
&lt;br /&gt;
With this latest update, there are sufficient node machines for running the current load of canisters on every subnet, and for the decentralisation of the subnets measured in Nakamoto coefficients; no new country entries will be added. Work is in progress on an IC Topology Roadmap for the next half year and the next year, with the objective to assess how many node machines and where new node machines are required for further growth and decentralisation of the IC network. Based on that it will be discussed on the IC forum what changes to make to the Node Provider remuneration table and subsequent proposals will be submitted to the NNS for the community to vote upon. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Geography&lt;br /&gt;
|Total costs over 4 years&lt;br /&gt;
|Multiplier&lt;br /&gt;
|Monthly reward for 1st node (in XDR)&lt;br /&gt;
|Reduction coefficient r&lt;br /&gt;
|-&lt;br /&gt;
|US&lt;br /&gt;
|31034&lt;br /&gt;
|2&lt;br /&gt;
|1294&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|US California &lt;br /&gt;
|37031&lt;br /&gt;
|2&lt;br /&gt;
|1543&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|Canada&lt;br /&gt;
|37031&lt;br /&gt;
|2&lt;br /&gt;
|1543&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|Germany &lt;br /&gt;
|36996&lt;br /&gt;
|2&lt;br /&gt;
|1542&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|Switzerland&lt;br /&gt;
|36996&lt;br /&gt;
|2&lt;br /&gt;
|1542&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|France&lt;br /&gt;
|36996&lt;br /&gt;
|2&lt;br /&gt;
|1542&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|Belgium&lt;br /&gt;
|36996&lt;br /&gt;
|2&lt;br /&gt;
|1542&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|Slovenia&lt;br /&gt;
|36996&lt;br /&gt;
|2&lt;br /&gt;
|1542&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|Europe (other than above)&lt;br /&gt;
|36996&lt;br /&gt;
|2&lt;br /&gt;
|1542&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|Israel&lt;br /&gt;
|49500&lt;br /&gt;
|2&lt;br /&gt;
|2063&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|Japan&lt;br /&gt;
|40508&lt;br /&gt;
|2&lt;br /&gt;
|1688&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|Singapore&lt;br /&gt;
|40508&lt;br /&gt;
|2&lt;br /&gt;
|1688&lt;br /&gt;
|0.7&lt;br /&gt;
|-&lt;br /&gt;
|Hong Kong&lt;br /&gt;
|46141&lt;br /&gt;
|2&lt;br /&gt;
|1922&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|India&lt;br /&gt;
|50377&lt;br /&gt;
|2&lt;br /&gt;
|2100&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|South Korea&lt;br /&gt;
|51774&lt;br /&gt;
|2&lt;br /&gt;
|2158&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|Sri Lanka&lt;br /&gt;
|52800&lt;br /&gt;
|2&lt;br /&gt;
|2200&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|Georgia&lt;br /&gt;
|57455&lt;br /&gt;
|2&lt;br /&gt;
|2394&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|South Africa&lt;br /&gt;
|55455&lt;br /&gt;
|2&lt;br /&gt;
|2310&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|Australia &lt;br /&gt;
|47000&lt;br /&gt;
|2&lt;br /&gt;
|1958&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|New Zealand&lt;br /&gt;
|47000&lt;br /&gt;
|2&lt;br /&gt;
|1958&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|Panama&lt;br /&gt;
|51774&lt;br /&gt;
|2&lt;br /&gt;
|2158&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|Costa Rica&lt;br /&gt;
|51774&lt;br /&gt;
|2&lt;br /&gt;
|2158&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|Colombia&lt;br /&gt;
|57455&lt;br /&gt;
|2&lt;br /&gt;
|2394&lt;br /&gt;
|0.95&lt;br /&gt;
|-&lt;br /&gt;
|Argentina (proposed)&lt;br /&gt;
|57455&lt;br /&gt;
|2&lt;br /&gt;
|2394&lt;br /&gt;
|0.95&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Reward calculator ==&lt;br /&gt;
For your convenience, we prepared the following [https://www.calconic.com/calculator-widgets/ic-node-provider-rewards/659d42a6d96fa70029e56629?layouts=true calculator for the node rewards]&lt;br /&gt;
&lt;br /&gt;
== Trustworthy Node Metrics ==&lt;br /&gt;
In February 2024, Trustworthy Node Metrics were introduced on the IC, in an attempt to provide greater visibility into node performance, stability, and reliability. These metrics could potentially be used to influence node rewards in the future.&lt;br /&gt;
&lt;br /&gt;
There is a forum post here https://forum.dfinity.org/t/trustworthy-node-metrics-for-useful-work/22989, then&lt;br /&gt;
&lt;br /&gt;
Blog post on Medium here: https://medium.com/dfinity/dont-trust-verify-new-node-metrics-on-the-internet-computer-367cc154a572&lt;br /&gt;
&lt;br /&gt;
And technical documentation and instructions here: https://dfinity.github.io/dre/trustworthy-metrics/trustworthy-metrics.html&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Self_Declarations&amp;diff=8288</id>
		<title>Node Provider Self Declarations</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Self_Declarations&amp;diff=8288"/>
		<updated>2025-03-13T15:33:42Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: correcting link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;&#039;&#039;NOTE: Please try to keep entries in this document alphabetically sorted, to reduce conflicts in edits.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[0X52]]&lt;br /&gt;
&lt;br /&gt;
[[100 Count Holdings, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[43rd Big Idea Films, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[87m Neuron, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[ACCUSET SOLUTIONS]]&lt;br /&gt;
&lt;br /&gt;
[[Arceau NP LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Aitubi AG]]&lt;br /&gt;
&lt;br /&gt;
[[Aksinia Stavskaya]]&lt;br /&gt;
&lt;br /&gt;
[[Altimist Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[ALLUSION BV]]&lt;br /&gt;
&lt;br /&gt;
[[ANYPOINT PTY LTD]]&lt;br /&gt;
&lt;br /&gt;
[[AVRVM AG]]&lt;br /&gt;
&lt;br /&gt;
[[Artem Horodyskyi|ARTEM HORODYSKIY]]&lt;br /&gt;
&lt;br /&gt;
[[Bianca-Martina Rohner]]&lt;br /&gt;
&lt;br /&gt;
[[Bigger Capital|Bigger Capital Pty Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Bitapp]]&lt;br /&gt;
&lt;br /&gt;
[[Bitmoon]]&lt;br /&gt;
&lt;br /&gt;
[[Blockchain Development Labs Inc]]&lt;br /&gt;
&lt;br /&gt;
[[Blockchain Literacy Foundation]]&lt;br /&gt;
&lt;br /&gt;
[[BlockFinance LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Blocktech Ventures LLC]]&lt;br /&gt;
&lt;br /&gt;
[[BLP22, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Blueant LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Bohatyrov Volodymyr]]&lt;br /&gt;
&lt;br /&gt;
[[Buldakova Rehina]]&lt;br /&gt;
&lt;br /&gt;
[[CarbonTwelve]]&lt;br /&gt;
&lt;br /&gt;
[[CocoMango LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Conic Ventures]]&lt;br /&gt;
&lt;br /&gt;
[[Coplus Limited]]&lt;br /&gt;
&lt;br /&gt;
[[Decentralized Entities Foundation]]&lt;br /&gt;
&lt;br /&gt;
[[DENODE|DeNoDe]]&lt;br /&gt;
&lt;br /&gt;
[[DFINITY Stiftung]]&lt;br /&gt;
&lt;br /&gt;
[[Eastman_Ventures_Pty_Ltd|Eastan_Ventures_Pty_Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Exaion]]&lt;br /&gt;
&lt;br /&gt;
[[Extragone]]&lt;br /&gt;
&lt;br /&gt;
[[User:FenexLLC|FenexLLC]]&lt;br /&gt;
&lt;br /&gt;
[[Ferndale International]]&lt;br /&gt;
&lt;br /&gt;
[[Fractal Labs, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Geeta Kalwani]]&lt;br /&gt;
&lt;br /&gt;
[[GeoNodes LLC]]&lt;br /&gt;
&lt;br /&gt;
[[George Bassadone]]&lt;br /&gt;
&lt;br /&gt;
[[Geodd Pvt Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Giant Leaf, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[User:James Wang|HashQuark]]&lt;br /&gt;
&lt;br /&gt;
[[HoneyComb Capital|HoneyCob Capital]]&lt;br /&gt;
&lt;br /&gt;
[[Iancu-Aurel|Iancu Aurel]]&lt;br /&gt;
&lt;br /&gt;
[[Icaria_Systems_Pty_Ltd|Icaria_Systes_Pty_Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Illusions in Art Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[InfoObjects Inc]]&lt;br /&gt;
&lt;br /&gt;
[[Ivanov Oleksandr]]&lt;br /&gt;
&lt;br /&gt;
[[Karel Frank]]&lt;br /&gt;
&lt;br /&gt;
[[Katerina Karapuz]]&lt;br /&gt;
&lt;br /&gt;
[[Kontrapunt (Pty) Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Krishna Enterprises]]&lt;br /&gt;
&lt;br /&gt;
[[Krzysztof Żelazko]]&lt;br /&gt;
&lt;br /&gt;
[[Louise Velayo]]&lt;br /&gt;
&lt;br /&gt;
[[Ludens LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Lukas Helebrandt]]&lt;br /&gt;
&lt;br /&gt;
[[Marvelous Web3]]&lt;br /&gt;
&lt;br /&gt;
[[Maksym Ishchenko]]&lt;br /&gt;
&lt;br /&gt;
[[:File:NODE-PROVIDER-SELF.pdf|ML SOLUTIONS LTD]]&lt;br /&gt;
&lt;br /&gt;
[[Michael_and_Dominik_Peterer]]&lt;br /&gt;
&lt;br /&gt;
[[MI Servers]]&lt;br /&gt;
&lt;br /&gt;
[[Mariano Stoll]]&lt;br /&gt;
&lt;br /&gt;
[[Neptune Partners]]&lt;br /&gt;
&lt;br /&gt;
[[NODAL CAPITAL]]&lt;br /&gt;
&lt;br /&gt;
[[NODAO]]&lt;br /&gt;
&lt;br /&gt;
[[Nova_LCC]]&lt;br /&gt;
&lt;br /&gt;
[[NoviSystems|NoviSystems, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Nataliia Nykyforak]]&lt;br /&gt;
&lt;br /&gt;
[[Natalia Kulesha]]&lt;br /&gt;
&lt;br /&gt;
[[Nikola Nikov]]&lt;br /&gt;
&lt;br /&gt;
[[OneSixtyTwo Digital Capital]]&lt;br /&gt;
&lt;br /&gt;
[[User:Soekawat|Origin Game]]&lt;br /&gt;
&lt;br /&gt;
[[Paul Creasey]]&lt;br /&gt;
&lt;br /&gt;
[[User:Protocol16|Protocol16 (Philip Hur)]]&lt;br /&gt;
&lt;br /&gt;
[[PindarTechnologyLimited]]&lt;br /&gt;
&lt;br /&gt;
[[User:Powermetacorp|Power Meta Corporation]]&lt;br /&gt;
&lt;br /&gt;
[[Privoxy Solutions, LLC.]]&lt;br /&gt;
&lt;br /&gt;
[[Quantum Node Ltd.]]&lt;br /&gt;
&lt;br /&gt;
[[Reist Telecom AG]]&lt;br /&gt;
&lt;br /&gt;
[[Rivonia Holdings, LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Rivram Inc]]&lt;br /&gt;
&lt;br /&gt;
[[Stamper Co., Ltd.]]&lt;br /&gt;
&lt;br /&gt;
[[Serenity lotus limited]]&lt;br /&gt;
&lt;br /&gt;
[[Starbase]]&lt;br /&gt;
&lt;br /&gt;
[[Sygnum]]&lt;br /&gt;
&lt;br /&gt;
[[Technical University of Munich]]&lt;br /&gt;
&lt;br /&gt;
[[Tenderloin Ventures AG|Tenderloin Ventures AG (Tomahawk.vc)]]&lt;br /&gt;
&lt;br /&gt;
[[Timur Rakhimzhan]]&lt;br /&gt;
&lt;br /&gt;
[[Uvaca Labs LLC]]&lt;br /&gt;
&lt;br /&gt;
[[VirtualHiveLtd|Virtual Hive Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Vladyslav Popov]]&lt;br /&gt;
&lt;br /&gt;
[[Wolkboer (Pty) Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[WMA Investments Limited]]&lt;br /&gt;
&lt;br /&gt;
[[Yannick Endrion]]&lt;br /&gt;
&lt;br /&gt;
[[Zaboo d.o.o.]]&lt;br /&gt;
&lt;br /&gt;
[[Zarety LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Zondax AG]]&lt;br /&gt;
&lt;br /&gt;
[[User:Web3game|Web3game]]&lt;br /&gt;
&lt;br /&gt;
[[User:Zenithcode|Zenith Code LLC]]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.internetcomputer.org/wiki/User:ZTLC_PTE_Ltd ZTLC_PTE_Ltd]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Aspire_Properties&amp;diff=8287</id>
		<title>Aspire Properties</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Aspire_Properties&amp;diff=8287"/>
		<updated>2025-03-10T16:31:26Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: correcting links due to filename clash&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Aspire Self-declaration.pdf|alt=|thumb|1219x1219px]]&lt;br /&gt;
&lt;br /&gt;
==Identity Proof==&lt;br /&gt;
&lt;br /&gt;
Company can be verified at:&lt;br /&gt;
&lt;br /&gt;
[https://arc-sos.state.al.us/cgi/corpdetail.mbr/detail?corp=000027040&amp;amp;page=name&amp;amp;file=&amp;amp;type=ALL&amp;amp;status=ALL&amp;amp;place=ALL&amp;amp;city= Alabama Secretary of State Link for Aspire Properties]&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=File:Aspire_Self-declaration.pdf&amp;diff=8286</id>
		<title>File:Aspire Self-declaration.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=File:Aspire_Self-declaration.pdf&amp;diff=8286"/>
		<updated>2025-03-10T16:30:39Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;aspire&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=DFINITY_Stiftung&amp;diff=8269</id>
		<title>DFINITY Stiftung</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=DFINITY_Stiftung&amp;diff=8269"/>
		<updated>2025-02-26T11:50:32Z</updated>

		<summary type="html">&lt;p&gt;Alexander.ufimtsev: spelling correction&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====Self-declaration:====&lt;br /&gt;
Also see [[DFINITY Foundation]].&lt;br /&gt;
[[File:CHE189770146-19.12.2024-Merkmale DFINITY Stiftung.pdf|thumb|alt=|none]]&lt;br /&gt;
[[File:DFINITY Self-declaration (1) (1).pdf|thumb|alt=|none]]&lt;br /&gt;
&lt;br /&gt;
====Swiss registration.====&lt;br /&gt;
[[File:DFINITY Stiftung Central Business Index listing.pdf|thumb|alt=|none]]&lt;br /&gt;
&lt;br /&gt;
==== Handover document to Zarety LLC for 42 of the nodes in BO1 and AT1 that we sold to Zarety.   ====&lt;br /&gt;
[[File:Complete with Docusign Zarety DFINITY node.pdf|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
==== Handover document to Blue Ant LLC for the 42 nodes in AT1 and MR1 that we sold to Blue Ant ====&lt;br /&gt;
[[File:Enzo&#039;s copy of 2024.12 - DFINITY node hand over statement (1).pdf|none|thumb]]&lt;/div&gt;</summary>
		<author><name>Alexander.ufimtsev</name></author>
	</entry>
</feed>