<?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=NoviSystems</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=NoviSystems"/>
	<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/wiki/Special:Contributions/NoviSystems"/>
	<updated>2026-05-02T05:15:49Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Onboarding&amp;diff=5936</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=5936"/>
		<updated>2023-07-14T17:03:03Z</updated>

		<summary type="html">&lt;p&gt;NoviSystems: Include instructions to add file hash to proposal. This is now required or the proposal will be voted NO by the DFINITY Foundation trusted neurons.&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;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* [[Node Provider Machine Hardware Guide]]&lt;br /&gt;
* [[Node Provider Networking Guide]]&lt;br /&gt;
* [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;
* 11 ICP (10 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. For instance, understanding what it means to stake a neuron for 8 years.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Please allocate at least 0.5 day for going through the Node Provider NNS registration (steps 1-11). It may even take a couple of days, depending on how quickly the community votes on your NNS proposals. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the Node Provider NNS registration is complete, you can move on to &#039;&#039;&#039;step 12: Onboard nodes&#039;&#039;&#039;. This step involves you going to the DC and onboarding your nodes. It is much quicker than the Node Provider NNS registration (estimate to spend ~15 minutes per machine). Also, multiple machines can be brought up in parallel.&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;
== 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.&lt;br /&gt;
&lt;br /&gt;
==== MacOS ====&lt;br /&gt;
# Retrieve the file &amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ curl &amp;quot;https://download.dfinity.systems/ic/7445081734e6d896d090295967d50710975c4f25/openssl-static-binaries/x86_64-darwin/ic-admin.gz&amp;quot; -o - | gunzip &amp;gt; ./ic-admin&lt;br /&gt;
$ chmod +x ./ic-admin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Verify the binary &amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ diff &amp;lt;(shasum -a 256 ./ic-admin | cut -d&#039; &#039; -f1) &amp;lt;(echo 3f75026d2f28f171068e332a42c82a2795c93fbf5ab351baef30b30eb901cdba) &amp;amp;&amp;amp; echo &amp;quot;ic-admin checksum matches&amp;quot; || echo &amp;quot;***ERROR***: ic-admin checksum does not match&amp;quot;&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.&lt;br /&gt;
# Retrieve the file &amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ curl &amp;quot;https://download.dfinity.systems/ic/7445081734e6d896d090295967d50710975c4f25/openssl-static-binaries/x86_64-linux/ic-admin.gz&amp;quot; -o - | gunzip &amp;gt; ./ic-admin&lt;br /&gt;
$ chmod +x ./ic-admin &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Verify the binary &amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ diff &amp;lt;(shasum -a 256 ./ic-admin | cut -d&#039; &#039; -f1) &amp;lt;(echo e29bb9cc462e800b8b960ad49c412e5f5fdbb5ae2ae9fde0c13058422ba32802) &amp;amp;&amp;amp; echo &amp;quot;ic-admin checksum matches&amp;quot; || echo &amp;quot;***ERROR***: ic-admin checksum does not match&amp;quot; &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 used to generate neuron hotkeys, among other things &amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
$ sh -ci &amp;quot;$(curl -fsSL https://smartcontracts.org/install.sh)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#Verify that dfx 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; Note: 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;
&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;
== 3. Setup your hardware wallet==&lt;br /&gt;
&lt;br /&gt;
# Setup your hardware wallet: https://medium.com/dfinity/integrating-ledger-nano-with-the-nns-front-end-dapp-user-manual-9c5600925e16&lt;br /&gt;
&lt;br /&gt;
==4. Create and Manage Neuron via NNS Frontend Dapp and Internet Identity==&lt;br /&gt;
&lt;br /&gt;
#Send at least 11 ICPs to your hardware wallet address.&lt;br /&gt;
#Navigate to Neurons tab and create a Neuron by staking at least 10 ICP from your hardware wallet. Staking more ICP works as well, but 10 is the minimum.&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;
==5. 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;
==6. Choose onboarding path (HSM vs no HSM)==&lt;br /&gt;
Onboarding &#039;&#039;&#039;without&#039;&#039;&#039; a NitroKey HSM is the recommended onboarding path. If you will not be using a NitroKey HSM, continue to the next step.  &lt;br /&gt;
&lt;br /&gt;
If the legacy procedure is necessary, follow the [[NitroKey HSM onboarding instructions]] and &#039;&#039;&#039;return to step 9.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
==7. 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;
$ dfx upgrade&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;&lt;br /&gt;
&lt;br /&gt;
==8. 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;
==9. 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 5.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 4.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 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;.&amp;quot; \&lt;br /&gt;
        --node-provider-pid &amp;quot;$NODE_PROVIDER_PRINCIPAL&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&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;
&lt;br /&gt;
==10. 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 4.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 and a number that’s not yet registered. 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: &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;
&lt;br /&gt;
==11. Create a node operator record==&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 4.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 5.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 8.1).&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&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;
==12. Onboard nodes==&lt;br /&gt;
&lt;br /&gt;
# Follow the instructions to onboard new nodes:&lt;br /&gt;
#*Gen2 - For NP&#039;s onboarding in 2023 and later&lt;br /&gt;
#**[[IC-OS Installation Runbook]]&lt;br /&gt;
#*Gen1 - For NP&#039;s participating in the IC before 2023 &lt;br /&gt;
#**[[IC OS Installation Runbook - PowerEdge R6525]]&lt;br /&gt;
#**[[IC OS Installation Runbook - Supermicro]]&lt;/div&gt;</summary>
		<author><name>NoviSystems</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Self-declaration&amp;diff=5935</id>
		<title>Node Provider Self-declaration</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Self-declaration&amp;diff=5935"/>
		<updated>2023-07-06T11:22:30Z</updated>

		<summary type="html">&lt;p&gt;NoviSystems: Change proposal instruction link to the correct page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is work in progress&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This page describes the Node Provider self-declaration process and provides the necessary templates. This process and templates are currently in a draft state and discussed by the community (see forum post). Once the NNS has decided on the expected format, the post and this page will be updated to reflect the NNS decision.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
In a fully decentralized network, onboarding of a Node Provider is managed entirely by the Network Nervous Systems (NNS). This means that anybody who wants to become a Node Provider needs to submit a proposal that will be voted upon by the community. The main question for the community is: how to decide whether to accept or reject a new Node Provider into the network?&lt;br /&gt;
&lt;br /&gt;
Ultimately, it’s the Node Providers responsibility to convince the community to adopt their proposal to be added as a new Node Provider. With the self-declaration, the Node Provider shall:&lt;br /&gt;
&lt;br /&gt;
* Establish their identity&lt;br /&gt;
* Make a statement of good intent&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This way, the community will have sufficient information to vote on the Node Provider&#039;s onboarding proposal.&lt;br /&gt;
&lt;br /&gt;
== Documents and Templates ==&lt;br /&gt;
&lt;br /&gt;
Before submitting a proposal to become a new Node Provider, the Node Provider shall prepare two kinds of documents. The documents should be delivered as a pdf document, digitally signed.&lt;br /&gt;
&lt;br /&gt;
=== (1) Self-declaration ===&lt;br /&gt;
&lt;br /&gt;
(A) Statement of identity&lt;br /&gt;
&lt;br /&gt;
Entity name: __________________________________________________&lt;br /&gt;
&lt;br /&gt;
Official address and location: _____________________________________&lt;br /&gt;
&lt;br /&gt;
Country: ______________________________________________________&lt;br /&gt;
&lt;br /&gt;
Chamber of Commerce Nr: _______________________________________&lt;br /&gt;
&lt;br /&gt;
(B) Statement of provision of node machines&lt;br /&gt;
&lt;br /&gt;
I hereby guarantee that I shall provide node machines in accordance with the required Hardware Configuration for running the IC Network, as described on the IC wiki (see [[Node Provider Machine Hardware Guide]]).&lt;br /&gt;
&lt;br /&gt;
(C) Statement of good intent&lt;br /&gt;
&lt;br /&gt;
I guarantee to the world that I shall honestly operate the node machines I provide, and that should I behave dishonestly, for example by deliberately interfering with my node machine(s) to prevent them correctly processing ICP protocol messages, in collusion with others or alone, that I will be liable to users of the network, and to other node providers, for any damages caused.&lt;br /&gt;
&lt;br /&gt;
I further declare I am aware that any deliberate interference with a node machine, which causes it to incorrectly process ICP protocol messages, represents a misuse of that hardware, and of any hardware it interacts with, and that in some jurisdictions, that may constitute a crime.&lt;br /&gt;
&lt;br /&gt;
Signature of representatives&lt;br /&gt;
&lt;br /&gt;
___________________&lt;br /&gt;
&lt;br /&gt;
___________________&lt;br /&gt;
&lt;br /&gt;
___________________&lt;br /&gt;
&lt;br /&gt;
=== (2) Identity Proof ===&lt;br /&gt;
&lt;br /&gt;
The Node Provider shall provide proof that the identity(ies) listed in the self-declaration exist in the real world. The proof can be any document that sufficiently proves the identity of the signers of the self-declaration to the community.&lt;br /&gt;
&lt;br /&gt;
== Process ==&lt;br /&gt;
&lt;br /&gt;
Initially, the process is quite manual. Over time, it shall be automated and for convenience be incorporated into dApps running on the IC. For now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;&#039;&#039;&#039;Preparation:&#039;&#039;&#039; The Node Provider prepares&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;The two kinds of documents listed above in a format that is widely available, e.g. PDF&amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;Creates a compressed file, e.g. zip file, including these documents and computes the hash.&amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;&#039;&#039;&#039;Publication:&#039;&#039;&#039; The Node Provider uploads the documents to the wikipage [[Node Provider Self Declarations]].&amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;&#039;&#039;&#039;Proposal submission:&#039;&#039;&#039; The Node Provider submits a proposal to the NNS asking to be accepted to the network.&amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;The technical instructions are provided on the [[Node Provider Onboarding]] page.&amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;The summary of the proposal shall point to the published file (step 2) and list the hash (step 1).&amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;&#039;&#039;&#039;NNS vote:&#039;&#039;&#039; It’s now up to the NNS community to check whether the provided information matches the community’s expectations and to vote on the proposal.&amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;/div&gt;</summary>
		<author><name>NoviSystems</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Self_Declarations&amp;diff=5825</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=5825"/>
		<updated>2023-06-27T20:56:06Z</updated>

		<summary type="html">&lt;p&gt;NoviSystems: Add node provider self-declaration for NoviSystems, LLC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Node Provider Self Declarations ====&lt;br /&gt;
[[Marc Johnson]]&lt;br /&gt;
&lt;br /&gt;
[[George Bassadone]]&lt;br /&gt;
&lt;br /&gt;
[[Geodd Pvt Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Rivram Inc]]&lt;br /&gt;
&lt;br /&gt;
[[InfoObjects Inc]]&lt;br /&gt;
&lt;br /&gt;
[[Zaboo d.o.o.]]&lt;br /&gt;
&lt;br /&gt;
[[Zondax AG]]&lt;br /&gt;
&lt;br /&gt;
[[PindarTechnologyLimited]]&lt;br /&gt;
&lt;br /&gt;
[[Karel Frank]]&lt;br /&gt;
&lt;br /&gt;
[[Icaria_Systems_Pty_Ltd]]&lt;br /&gt;
&lt;br /&gt;
[[Lukas Helebrandt]]&lt;br /&gt;
&lt;br /&gt;
[[Exaion]]&lt;br /&gt;
&lt;br /&gt;
[[User:James Wang|HashQuark]]&lt;br /&gt;
&lt;br /&gt;
[[Marvelous Web3]]&lt;br /&gt;
&lt;br /&gt;
[[HoneyComb Capital]]&lt;br /&gt;
&lt;br /&gt;
[[Ludens LLC]]&lt;br /&gt;
&lt;br /&gt;
[[NoviSystems|NoviSystems, LLC]]&lt;/div&gt;</summary>
		<author><name>NoviSystems</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=NoviSystems&amp;diff=5824</id>
		<title>NoviSystems</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=NoviSystems&amp;diff=5824"/>
		<updated>2023-06-27T20:54:47Z</updated>

		<summary type="html">&lt;p&gt;NoviSystems: Add self-declaration document link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== NoviSystems, LLC Self-Declaration ==&lt;br /&gt;
The self-declaration document can be found here: [[:File:Novisystems self-declaration.pdf|File:Novisystems self-declaration.pdf]]&lt;br /&gt;
&lt;br /&gt;
The SHA256 hash of the linked PDF is c3d8ef713908aa1cc170fb07ff402c424ea7b44658a1c9845062c83d2a142506.&lt;br /&gt;
&lt;br /&gt;
==Identity Proof==&lt;br /&gt;
&lt;br /&gt;
Company information can be verified by searching the NYS business entity database for &amp;quot;NoviSystems, LLC.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[https://apps.dos.ny.gov/publicInquiry/ Corporation and Business Entity Search Database]&lt;/div&gt;</summary>
		<author><name>NoviSystems</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=File:Novisystems_self-declaration.pdf&amp;diff=5823</id>
		<title>File:Novisystems self-declaration.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=File:Novisystems_self-declaration.pdf&amp;diff=5823"/>
		<updated>2023-06-24T16:33:20Z</updated>

		<summary type="html">&lt;p&gt;NoviSystems: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Novisystems self-declaration, sha256: c3d8ef713908aa1cc170fb07ff402c424ea7b44658a1c9845062c83d2a142506&lt;/div&gt;</summary>
		<author><name>NoviSystems</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=File:Novisystems-self-declaration.pdf&amp;diff=5822</id>
		<title>File:Novisystems-self-declaration.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=File:Novisystems-self-declaration.pdf&amp;diff=5822"/>
		<updated>2023-06-23T18:34:16Z</updated>

		<summary type="html">&lt;p&gt;NoviSystems: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NoviSystems self-declaration documentation&lt;/div&gt;</summary>
		<author><name>NoviSystems</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=NoviSystems&amp;diff=5821</id>
		<title>NoviSystems</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=NoviSystems&amp;diff=5821"/>
		<updated>2023-06-23T18:32:36Z</updated>

		<summary type="html">&lt;p&gt;NoviSystems: Created page with &amp;quot;  ==Identity Proof==  Company information can be verified by searching the NYS business entity database:  [https://apps.dos.ny.gov/publicInquiry/ Corporation and Business Enti...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
==Identity Proof==&lt;br /&gt;
&lt;br /&gt;
Company information can be verified by searching the NYS business entity database:&lt;br /&gt;
&lt;br /&gt;
[https://apps.dos.ny.gov/publicInquiry/ Corporation and Business Entity Search Database]&lt;/div&gt;</summary>
		<author><name>NoviSystems</name></author>
	</entry>
</feed>