* create nymlogo component * start scaffolding * set up mnemonic check pages * start on guess words components * mnemonic verification work * more mnemonic verification * hard code number of words to generate * mnemonic verification section 2 * add password strength indicator * add password confirmation * update text * disable word tiles on selection * add exisiting account page * finish exisiting account login * add back buttons to return to the initial screen * update button size * create network selection component * implement network selector component * update page types * make currency and network dynamic variables * remove unused env values * [ci skip] Generate TS types * lighten subtext * display network name in app * create network selector component * remove old network display component * update state in response to network selection * state updates * implement logout * refresh delegations on network change * Initial implementation of data encryption/decryption with provided password * Removing milhon network. * Removing more milhon references. * Adding in mainnet constants for network defaults. Contracts are not yet defined. * Allow encryption of EncryptedData<T>, where T: Serialize + Deserialize It uses serde_json for representation of T * Making contract addresses optional * [ci skip] Generate TS types * Add mainnet as implicit network * Fix unreachable code warning * Using zeroize for encrypted data + password * Get denom dynamically * initialize network to undefined before login * Fix str parse to dynamic denom * Pass network in config all the way to hd wallet generation * Fixed encrypted data deserialization * Storing and loading accounts from the disk * Additional error variants * Fix clippy in wallet * Simplified contract address parsing * display error * fix typo * uncomment code * Use sandbox as backend default again * Reorganised wallet storage for easier testing + unit test * Fix denom showing * to_major call only on printable balance * fix up state changes Co-authored-by: Dave Hrycyszyn <futurechimp@users.noreply.github.com> Co-authored-by: fmtabbara <fmtabbara@users.noreply.github.com> Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com> Co-authored-by: Bogdan-Ștefan Neacșu <bogdan@nymtech.net>
The Nym Privacy Platform
The platform is composed of multiple Rust crates. Top-level executable binary crates include:
- nym-mixnode - shuffles 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, removing the need for directly 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 framework.
Building
Platform build instructions are available on our docs site. Wallet build instructions are also available on our docs site.
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.
Developer chat
You can chat to us in Keybase. Download their chat app, then click Teams -> Join a team. Type nymtech.friends into the team name and hit continue. For general chat, hang out in the #general channel. Our development takes places in the #dev channel. Node operators should be in the #node-operators channel.
Rewards
Node, node operator and delegator rewards are determined according to the principles laid out in the section 6 of Nym Whitepaper. 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.
Node reward for node i is determined as:
where:
and
Operator of node i is credited with the following amount:
Delegate with stake s recieves:
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.