## The Nym Privacy Platform The platform is composed of multiple Rust crates. Top-level executable binary crates include: * nym-mixnode - shuffles [Sphinx](https://github.com/nymtech/sphinx) packets together to provide privacy against network-level attackers. * nym-client - an executable which you can build into your own applications. Use it for interacting with Nym nodes. * nym-socks5-client - a Socks5 proxy you can run on your machine and use with existing applications. * nym-gateway - acts sort of like a mailbox for mixnet messages, which removes the need for direct delivery to potentially offline or firewalled devices. * nym-network-monitor - sends packets through the full system to check that they are working as expected, and stores node uptime histories as the basis of a rewards system ("mixmining" or "proof-of-mixing"). * nym-explorer - a (projected) block explorer and (existing) mixnet viewer. * nym-wallet - a desktop wallet implemented using the [Tauri](https://tauri.studio/en/docs/about/intro) framework. [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=for-the-badge)](https://opensource.org/licenses/Apache-2.0) [![Build Status](https://img.shields.io/github/actions/workflow/status/nymtech/nym/build.yml?branch=develop&style=for-the-badge&logo=github-actions)](https://github.com/nymtech/nym/actions?query=branch%3Adevelop) ### Building Platform build instructions are available on [our docs site](https://nymtech.net/docs/binaries/pre-built-binaries.html). Wallet build instructions are also available on [our docs site](https://nymtech.net/docs/wallet/desktop-wallet.html). ### Developing There's a `.env.sample-dev` file provided which you can rename to `.env` if you want convenient logging, backtrace, or other environment variables pre-set. The `.env` file is ignored so you don't need to worry about checking it in. For Typescript components, please see [ts-packages](./ts-packages). ### Developer chat > We used to use Keybase for developer chats, but we have since migrated to Matrix and Discord. We no longer check the old **nymtech.friends** Keybase team. You can chat to us in two places: * The #dev channel on [Matrix](https://matrix.to/#/#dev:nymtech.chat) * The various developer channels on [Discord](https://discord.gg/nym) ### Rewards Node, node operator and delegator rewards are determined according to the principles laid out in the section 6 of [Nym Whitepaper](https://nymtech.net/nym-whitepaper.pdf). Below is a TLDR of the variables and formulas involved in calculating the epoch rewards. Initial reward pool is set to 250 million Nym, making the circulating supply 750 million Nym. |Symbol|Definition| |---|---| ||global share of rewards available, starts at 2% of the reward pool. ||node reward for mixnode `i`. ||ratio of total node stake (node bond + all delegations) to the token circulating supply. ||ratio of stake operator has pledged to their node to the token circulating supply. ||fraction of total effort undertaken by node `i`, set to `1/k`. ||number of nodes stakeholders are incentivised to create, set by the validators, a matter of governance. Currently determined by the `reward set` size, and set to 720 in testnet Sandbox. ||Sybil attack resistance parameter - the higher this parameter is set the stronger the reduction in competitiveness gets for a Sybil attacker. ||declared profit margin of operator `i`, defaults to 10% in. ||uptime of node `i`, scaled to 0 - 1, for the rewarding epoch ||cost of operating node `i` for the duration of the rewarding epoch, set to 40 NYMT. Node reward for node `i` is determined as: where: and Operator of node `i` is credited with the following amount: Delegate with stake `s` receives: where `s'` is stake `s` scaled over total token circulating supply. ### Licensing and copyright information This program is available as open source under the terms of the Apache 2.0 license. However, some elements are being licensed under CC0-1.0 and MIT. For accurate information, please check individual files.