Nym Operators Rewards
Nym Network Rewarded set selection had been upgraded recently. Make sure to read the chapter Rewarded Set Selection below carefully to fully understand all requirements to be rewarded!
The data on this page were last time updated on Thursday, January 16th 2025, 09:57:52 UTC
- Nym tokenomics are based on the research paper Reward Sharing for Mixnets (opens in a new tab)
- For a more comprehensive overview, live data and supply graphs, visit nymtech.net/about/token (opens in a new tab)
We are working on the final architecture of Fair Mixnet tokenomics implementation and its detailed documentation. The current design is called Naive rewarding. It is an intermediate step, allowing operators to migrate to nym-node
in Mixnet smart contract and for the first time recieve delegations and earn rewards for any nym-node
functionality, in opposite to the past system, where only Mixnodes were able to recieve delegations and rewards.
Please read the roadmap section below to see the planned development.
Nodes bonded with vesting tokens are not allowed to join rewarded set (opens in a new tab) - read more on Nym operators forum (opens in a new tab).
Overview
This is a quick summary, to understand the full picture, please see detailed Rewards Logic & Calculation chapter below.
- The operators of
nym-node
get rewarded from Mixmining pool, which emits around 6000 NYM per hour. - A rewarded set of
nym-nodes
selected for Nym network routing and mixing can be is currently 240 nodes in total and it's selected for each new epoch (60 min). The number can be adjusted - look here for the current value: validator.nymtech.net/api/v1/epoch/reward_params (opens in a new tab) nym-nodes
can run in modeentry-gateway
,exit-gateway
andmixnode
, which are positioned into layers- NymVPN users can chose to route through Nym Network in two ways:
- Mixnet: 5 layers routing and mixing - full privacy
- Wireguard: 2 layers routing, skipping 3 mixing layers - fast mode
- The current reward system is Native rewarding - an intermediate step - where each layer get's rewarded the same
- In the final model, nodes will get rewarded based on their layer position and the work they do (collected user tickets), where and the reward distribution per layer will be according to a decision made by the operators (opens in a new tab) as follows:
- 5-hop: 16%-16%-16%-16%-36%
- 2-hop: 33%-67%
- Currently Gateways earn rewards only from taking a part in the rewarded set. The operators can sign up to a grant program as a substitution for 2-hop routing.
- To read more about the final design and future implementation, see Roadmap chapter for more details.
Rewards Logic & Calculation
Note that in the current intermediate model we use one active set to reward all nodes and they are asign same (naive) work factor of 1 / 240, whether they work as Mixnode or Gateway of any kind, in both 2-hop and 5-hop mode. In reality it means that all nodes are rewarded within 5-hop reward scheme only.
However NymVPN client can chose any nym-node --mode entry-gateway
and --mode exit-gateway
in the network to route through the mixnet and as well as any of those which passed wireguard probing test (opens in a new tab) to route as dVPN nodes.
Nym Network rewarded set distribution
Rewarded Set Selection
For a node to be rewarded, the node must be part of a Rewarded set (opens in a new tab) (which currently = active set) in the first place. The Rewarded set is freshly selected at the start of each epoch (every 60 min), and it consists of 240 Nym nodes that are probabilistically chosen from all the available nodes. These 240 nodes include 120 gateways and 120 mixnodes (40 for each of 3 mixnet layers).
Rewarded set nodes are randomly selected, and their selection chances increase with a node score that includes three parameters:
- Config score: highest (
1
) when the node is running the latest version of the software with T&C's accepted - Performance: highest (
1
) when the node is consistently online and correctly processes all the received traffic - Stake saturation: including bond and delegated stake
Besides these values, the API is also looking whether the node is bonded in Mixnet smart contract as a Nym Node or legacy node (Mixnode or Gateway). Only nodes bonded as Nym Node in Mixnet smart contract can be selected to the Rewrded set, if you haven't migrated your node yet, please follow these steps!
The node score is calculated with this formula:
active_set_selection_probability = total_stake * ( config_score * node_performance ) ^ 20 )
Note that the score helps prioritize some nodes over others. If all available nodes have the same score, then the selection is done uniformly at random. By raising the config and performance components to 20, values of these parameters that are below one incur a heavy penalization for the node’s selection chances.
Besides these values, the API is also checks whether the node is bonded in Mixnet smart contract as a Nym Node or legacy node (Mixnode or Gateway). Only nodes bonded as Nym Node in Mixnet smart contract can be selected to the Rewrded set. Thus, if you haven't migrated your node yet, please follow these steps!
Config Score Calculation
The nodes selection to the active set has a new parameter - config_score
. Config score currently looks into three paramteres:
- If the node binary is
nym-node
(not legacynym-mixnode
ornym-gateway
):1
ifTrue
,0
ifFalse
- If Terms & Conditions are accepted:
1
ifTrue
,0
ifFalse
- Version of
nym-node
binary: decreasing weight for outdated versions, as explained below
The config_score
parameter calculation formula:
config_score = is_tc_accepted * is_nym-node_binary * ( 0.995 ^ ( ( X * versions_behind) ^ 1.65 ) )
First two points have binary values of either 0 or 1, with a following logic:
Run nym-node binary | T&C's accepted | Value |
---|---|---|
True | True | 1 |
True | False | 0 |
False | True | 0 |
False | False | 0 |
Only if both conditions above are True
the node can have any chance to be selected, as otherwise the probability will always be 0.
The versions_behind
parameter in config_score
calculation
From release 2024.14-crunch
(nym-node v1.2.0
), the config_score
parameter takes into account also nodes version. The "current version" is the one marked as Latest
in our repository. The parameter versions_behind
indicates the number of versions between the Latest
version and the version run by the node, and it is factored into the config score with the formula:
0.995 ^ ( ( X * versions_behind ) ^ 1.65 )
where:
X = 1; for patches
X = 10; for minor versions
X = 100; for major versions
The exact parameters are live accessible on
/v1/status/config-score-details
(opens in a new tab).
Our versioning convention is: major_version . minor_version . patch
For example nym-node
on version 1.2.0
is on 1st major version, 2nd minor and 0 patches.
Note that the X
multiplier heavily lowers the config_score
when nodes are outdated with respect to more significant updates. See the the table and graph below:
Version behind | Patches (X = 1) | Minor versions (X = 10) | Major versions (X = 100) |
---|---|---|---|
0 (current version) | 1.0 | 1.0 | 1.0 |
1 | 0.995 | 0.7994 | 0.0000 |
2 | 0.9844 | 0.4953 | 0.0000 |
3 | 0.9698 | 0.2536 | 0.0000 |
4 | 0.9518 | 0.1102 | 0.0000 |
5 | 0.9311 | 0.0413 | 0.0000 |
As you can see above, the algorithm is designed to give maximum selection score (1
) to the latest version, while non-upgraded nodes receive a lower score. The score decreases faster when the node has failed to make a major version upgrade, and slower when the node is behind only with minor updates. This scoring de-prioritizes the selection of outdated nodes, even if their saturation and performance are high. Nodes are selected probabilistically in each epoch (60 min), according to their scores, to be part of the Rewarded set. This scoring mechanism gives priority to the operators running up-to-date nodes, ensuring that the network is as updated as possible.
Performance Calculation
Performance is measured by Nym Network Monitor which sends thousands of packages through different routes every 15 minutes and measures how many were dropped on the way. Test result represents percentage of packets succesfully returned (can be anything between 0 and 1). Performance value is nodes average of these tests in last 24h.
Good performance is much more essential than total stake, because it's lifted to 20th power in the selection formula.
For a comparison we made an example with 5 nodes, where first number is node performance and second stake saturation (assuming all of them config_score
= 1 for simplification):
node_1 = 1.00 ^ 20 * 1.0 = 1
node_2 = 1.00 ^ 20 * 0.5 = 0.5
node_3 = 0.99 ^ 20 * 1.0 = 0.818
node_4 = 0.95 ^ 20 * 1.0 = 0.358
node_5 = 0.90 ^ 20 * 1.0 = 0.122
As you can see the performance (also known as Routing score) is much more important during the Rewarded set selection. A node with 100% performance but only 50% stake saturation has much bigger chance to be chosen than a node with 95% performance but full stake saturation and incomparably bigger chance than 90% performing node with 100% stake saturation.
The nodes are chosen probababilistically in each epoch (60 min), so even nodes with lower performance will eventually be chosen, just much less often, as their chances decrease.
Layer Distribution
Once the rewarded set (currently 120 Mixnodes and 120 Gateways) is selected, the nodes can start to route and mix packets in the Nym Network. Each hour a total of 6000 NYM is distributed between the layers from Mixmining pool. Currently in our Naive rewarding intermediate design, all layers get a same portion, therefore each node is naively assigned same working factor and therefore earns 1/240 of the rewards per epoch.
We are working on the final design with the ratio implementing a decision made by the operators (opens in a new tab) as follows:
5-hop mixnet mode:
16%; 16%; 16%; 16%; 36%
2-hop dVPN mode:
33%; 67%
Roadmap
We are working on the final architecture of Fair Mixnet tokenomics implementation. The current design is called Naive rewarding. This is an intermediate step, expecting operators to migrate to nym-node
in Mixnet smart contract and be able to recieve delegations and earn rewards for any nym-node
functionality, in opposite to the past system, where only Mixnodes were able to recieve delegations and rewards.
On November 5th, we presented a release roadmap in live Operators Townhall (opens in a new tab) where we explained in detail the steps of Nym node and tokenomics development and the effect it will have on node operators and put it into a rough timeline.
Naive Rewarding
Naive rewarding is the current tokenomics design. The table below lists features and logic of this design.
Fair Mixnet
Fair Mixnet is the final architecture model that we work towards. The table below lists features and logic of the design once implemented.