This is the Nym core platform. It includes a Go implementation of the Coconut selective disclosure credentials scheme. Coconut supports threshold issuance on multiple public and private attributes, re-randomization and multiple unlinkable selective attribute revelations.
The implementation is based on the existing Python version.
Nym uses a Tendermint blockchain to keep track of credential issuance and prevent double-spending of credentials, and contains server-side to support querying of credentials. There is client-side code to re-randomize credentials.
Currently, there exist two ways of running the demo code. One relies on local setup, which is more stable and more likely to work correctly. The other, uses external machines hosting the appropriate services. However, due to its experimental nature and being under heavy development, the latter option is more unstable and the machines might be at an unexpected state at any given moment of time, including being turned off, hence running the code locally is recommended.
The local setup requires
docker-compose to be installed on the machine. In order to startup the system, one needs to run the
runLocalNym_v$VERSION.sh script, where
$VERSION is the current release version of the code. This will pull the appropriate release binary for the gui and build and start all docker containers according to the
docker-compose.yml file. When the application is started, it will ask for a configuration file in order to know which network it's supposed to connect to. In that case choose file located at
For the less stable remote version, you need to get the latest binary from the release page of the repository and when asked for configuration file use
aws_config.toml located in the zip file. Note that the machines you would be trying to connect to may be switched off at any time without notice.
For more information, see the documentation.