Symbol Launch - SuperNodes Programme for Testnet

Hi all,

The Symbol SuperNode Programme has just been released on Testnet, we have been monitoring NGL nodes for a little while now and it has completed our Alpha testing, however we need community members (particularly those who will run supernodes post launch) to help test it more widely.

For context - an initial summary was given previously for anyone not familiar with it.


A reminder that a SuperNode is the same as a normal node, except it must meet minimum criteria and have sufficient XYM staked on it. It is not like for example Master Nodes in other networks; from a network perspective it performs the function as regular nodes (unless it is voting), but it does provide extra assurance in terms of security and stability and is rewarded for that.

SuperNode Requirements

In order to be eligible for the programme it will be necessary to:

  1. Run a full node (Dual) to be considered a SuperNode

  2. Nodes must be on the current version of Symbol, and updated within 10 days of each release

  3. Meet testing criteria outlined in this document, it is likely the node will need to meet the minimum recommended specifications to achieve this.

  4. Enrol in the SuperNode programme

  5. Stake sufficient tokens (1m, 2m or 3m+ XYM)

Voting Node Requirements

In order to enable voting on a node and participate in chain finalisation, it is necessary to meet all of the above requirements and in addition:

  • Stake 3m+ XYM

  • Register a Voting key + link and enable voting in the node configuration.

Enrolment & Validation

The Symbol Programme can be enrolled in by two primary methods:

  1. Using Symbol Bootstrap with the enrolRewardProgram option to enrol and deploy the agent, user guide for Symbol Bootstrap is available here

  2. Manually sending a similar transaction to the above, which is a simple transfer transaction to a predefined address and manually deploying the agent (see user guide)

Once enrolled and the programme is running it will be possible to monitor via the standard block explorer and see the details of tests or problems your Node might have.

A new version of Symbol Bootstrap has just been released (0.4.4) you will need to update to this version to enrol correctly, using older versions may make the node unstable due to some fixes in the new version.


Enrolment on Testnet is now open, it has been tested on several of our standard nodes but we need community nodes to deploy it and help us work out what is different in the wild on a more widely distributed network.

If you experience any issues, please log them in the repos below:

At present the source code for the agent is not in this public repo, it will be migrated into it in the future but the issues will be kept up to date in the public one in the interest of time.

Payment of Supernode Rewards

Daily payments will be issued, there will be a total daily amount, divided by the number of eligible nodes in that 24 hour period.

As per the Tokenomics that the community approved; the programme will be phased out over 6 years with decreasing payment amounts over time, the reduction is outlined below, with each step being at the 12 months anniversary of the Symbol Launch

Year Annual XYM Daily XYM
1 5,475,000 15,000
2 5,475,000 15,000
3 5,475,000 15,000
4 5,110,000 14,000
5 3,650,000 10,000
6 1,825,000 5,000

Different to the NEM NIS1 programme, the Symbol one will allow node owners with fewer tokens to earn a reduced reward, making it possible to run a SuperNode with 1m or 2m tokens. The minimum stake will alter from 3m XEM in NEM NIS1 to three tiers - 1m, 2m and 3m XYM. Each tier gains a different total reward in recognition of the staking, aside from the staked tokens, other requirements remain the same as NEM NIS1. The tiers are outlined below, full details are in the Tokenomics

Tokens Comment
3m Max supernode reward
2m Reduced supernode reward (~46% of 3m reward
1m Reduced supernode reward (~17% of 3m reward)
<1m No supernode reward

Payment of Voting Payment Rewards

Testing will occur over 4 epochs (1 epoch = 6 hours) and payments will be made once per day on a similar schedule to SuperNode payments.

Viewing SuperNode and Voting Node Information/Results

A new feature has been added to the Block Explorer which allows visibility of the nodes, how they are performing, pay out rounds etc. Explorer will be upgraded shortly after this announcement

In the mean time it is possible to follow the enrolment guides to join the programme on Testnet and to monitor pay outs via the Wallet of the Accounts tab in Explorer.

Additional Items

Mainnet Deployment

We are currently working through the co-ordination of bringing SuperNodes online for Mainnet, along with a guide for how to do so securely with the tooling available. This information will be published as soon as possible before launch.

A useful link for anyone interested in key types and what they are used for has been updated here in response to a couple of questions about what keys are for Cryptography — Symbol Documentation

Early and Ecosystem Node Bonus Programmes

Many will remember these were part of the tokenomics approach approved by the community. The intention is still for these to be present and subsequent information will be made available on these soon, they use the same infrastructure as the SuperNode monitoring tools, with a different enrolment method, so all the testing for SuperNodes is also testing those bonus programmes indirectly.

As always, if there are any issues please log them in Github and any questions please ask on here or in Slack and we will do our best to answer them.


Explorer upgrade is now complete:

Go to:

  • Nodes → Reward Programs->SuperNode


  • Nodes → Use the drop down menu to select RP - SuperNode

Probably not the right place to voice this but 1M-3M XYM node requirement is not accessible to most people. Why is there such a big hurdle to participate as a node?

You only need 10k to participate as a node and most rewards are paid via block rewards which you would earn.

The supernode programme is to encourage additional stability and security via a set of nodes that:

  1. Meet minimum tech specs so are known to be responsive and stable etc

  2. Stake sufficient assets to help secure the network via PoS.

  3. Can be a pool that can reliably participate in voting on finality which needs to be done by nodes that are in sync, not prone to outtges etc

Its like a cherry on top of the block rewards for being a more robust node and helping the ecosystem over and above just being any other node.

Tokenomics for Symbol are deliberately accessible and democratically available by design to the widest group practical in terms of nodes.


Here you can see projections of xym earned by node according tokenomics proposal:

every node gets TX-fees and block rewards. Nodes that attract other harvesters to harvest on their node get node harvesting rewards. Nodes that pass sn requirements get sn rewards which are around 13% of all rewards at start and phase out completely after 6 years.

Much better than xem now.

PS. I like their monthly earnings prediction in USD ($50k a month for 1M XYM node in 10 years. In 10 years I am gona buy lambo every 6th month :D)

When I try to enroll SuperNode program by

symbol-bootstrap enrolRewardProgram --useKnownRestGateways

, it’s pending at ‘enrol XXXXX’.
SuperNode program requires https domain or any workaround exists? Thank you.

If you get no response, try this.

symbol-bootstrap link --useKnownRestGateways --maxFee 1000000
symbol-bootstrap enrolRewardProgram --useKnownRestGateways --maxFee 1000000

Now it’s confirmed. Thanks!
(Actually there was one more issues. Previously I couldn’t access from web browser but after I re-build all instances by ‘clean’, it can be accessed!)

1 Like

I had the same phenomenon.
If I recreate the target, it works fine.
It is not easy to resync, so it is quicker to operate as follows.

#Node stop and Data copy
symbol-bootstrap stop
mv target target.bak

#target remake and re-stop
symbol-bootstrap start -p testnet -a dual -c mypresets.yml -d
symbol-bootstrap stop

#database, data recovery
rm -rf target/databases target/nodes/api-node/data/
mv target.bak/databases/ target
mv target.bak/nodes/api-node/data/ target/nodes/api-node/

#Node Restart
symbol-bootstrap run -d

#Delete backupFile
rm -r target.bak

1 Like

It is not easy to resync, so it is quicker to operate as follows.

Yeah that was a crucial point…
Those commands looks really helpful. Thanks a lot :pray: :pray:

1 Like


I have installed the node docker and docker compose on my new server.
What are the next steps to join that super node program ?
Is it enough to do the following procedure?

mkdir mynetwork
cd mynetwork

symbol-bootstrap start -p testnet -a dual --detached

wait to for node to be be sync then

symbol-bootstrap link --useKnownRestGateways --maxFee 1000000
symbol-bootstrap enrolRewardProgram --useKnownRestGateways --maxFee 1000000

What this --maxFee 1000000 stands for?

I have read this
but I’ m not 100% sure in which order should the command to be issued to become supernode harvester. I’ m afraid that i will fuck up something even if is only testnet
not mentioning when there will be mainnet

Also I suppose that I would require to fund the account to be able to issue transactions.
I have already one test account that was funded with 7500 xym on the old server
Can I somehow port the account to a new server?
Is it enough to copy the addresses.yml file?

I see that the current address file that that i have on the old server
differs from the current file described in the documentation.
The file there was created with older symbol-bootstrap version so
I wonder if would even work on the newer version.

A workflow list with steps would be nice to have like:

  1. install the require software with this command
  2. star the node with bla bla
  3. fund account with…
  4. do this do that with this command
  5. etc…


is there not a video tutorial for setting up a supernode?

Hi, Xavi here, the Symbol docs guy. Let me try to help:

Have you tried the –upgrade parameter for symbol-bootstrap? It should achieve the same thing without moving folders around. Having a backup folder is a good idea, though.

It specifies the fee that you are willing to pay, because both link and enrolRewardProgram commands require sending a transaction. symbol-bootstrap calculates these fees automatically be requesting info from the nodes, so this is normally not needed. However, the testnet is currently operating under abnormally high fees, so you need to manually provide a high fee for the transactions to be processed quicker. This is not expected to happen on the mainnet.

I’ll make the distinction clearer in the docs.

Do not worry about breaking things in testnet, that’s what testnet is there for! Please break as many things as you can and report them to us… before mainnet is launched :smiley:

There’s a paragraph in the supernode enrollment guide saying:

If you already have some of the required node accounts (main, transport, remote, VRF or voting) you can provide them in the preset file too.

You need to follow those instructions to use your previous accounts in the new node.
I don’t think you need to copy the whole addresses.yml, you better provide the previous account keys in a custom preset file as the above instructions explain. Moreover, if your previous addresses.yml comes from an old symbol-bootstrap it won’t be recognized.
Alternatively, you can transfer funds from your previous account to the new one that symbol-bootstrap has created (find its address in addresses.yml), or just request funds from the faucet.

This is exactly what I tried to achieve in the Enrolling to the Supernode program — Symbol Documentation guide. What is it exactly that you would like to change?

There is none at the moment, since good video tutorials take time to produce, but the idea has not been completely discarded yet.

1 Like

Thank you for this.
I have tried to start the node with my custom yml file but i got some errors related to the yml file.
i started it without voting and joining the super node. i 'm now waiting for it to synch . is going very slowly i must say. I will try to restart it with custom config file once it is synched.

I’ll be BACK soon! :smirk:

without the voting and supernode

And I’ll be waiting :grinning_face_with_smiling_eyes:


I’ am back.
I have now a running syncronised node.

So to join the supernode and voting should i stop the node first or i can issue this commands
while the node is running?

Also there was a release of newer version of symbol-bootstrap and symbol
so if i want to upgrade the node to latest version
do i need to stop the node first and then run the this command

sudo npm install -g symbol-bootstrap

for upgrade or is there another command for upgrading with npm?

In my opinion the documentation is well written and includes lot of data
but for some scenario could be confusing especially with less tech savy users
because there are lot of options that can be used for example with symbol bootstrap
that could lead to the same outcome.

For example what is missing is the workflow procedure to achieve something
like if is it required to stop or not the node. That why i have to ask here. :wink:

1 Like

Docker and npm should run without sudo.
The command " npm install -g symbol-bootstrap " is necessary.
Create a " customer.yml " file under ~/symbol/target/.


  • voting: true
    rewardProgram: SuperNode
    host: “IP Address”

Execute the commands for Supernode / Voting when the node is running.

  1. symbol-bootstrap stop
  2. npm install -g symbol-bootstrap
  3. symbol-bootstrap start -p testnet -a dual --upgrade -c “customer.yml”

To check that the node is running: " docker ps -a "


@garm beat me to the solution, everything he said is correct :slight_smile: (Although I think all the information is already in the docs).

You can also check if your node is running correctly with symbol-bootstrap healthCheck

I’ll add some note to the documentation regarding stopping nodes if they were already running. Thanks for the feedback!

Hi Xavi,
The link in "Create a custom preset file named, for example, supernode.yml" is broken.

I guess it should be symbol-bootstrap/ at main · nemtech/symbol-bootstrap · GitHub

Thanks! Fixed!