NMR 2.0 is now live!

thegostep
thegostep
Jul 9, 2019 · 4 min read

Contract upgrades to Numeraire have just been deployed, reducing the maximum supply to 11 million. NMR can no longer be minted — only burned.

Image for post
Image for post

What we’ve done:

  • NMR smart contract is no longer controlled or upgradeable by Numerai
  • Thus, Numerai can no longer mint NMR — all NMR that will ever exist, exists today
  • Maximum supply is reduced from 21 million to 11 million to reduce dilution
  • Total supply is now 11 million, and will gradually decrease as tokens are burned on Erasure and in the Numerai tournament
  • Circulating supply is the total supply minus the amount held by Numerai for development of the protocol
Image for post
Image for post

Where we’ll be when Erasure launches:

  • NMR will no longer just be the token that powers Numerai’s hedge fund — NMR becomes the Erasure protocol
  • Thousands of new use cases beyond Numerai’s Erasure Quant application. In fact, we’re giving away $1mil in NMR in grants to developers with exciting application ideas to build on top of Erasure.

We’ve taken a contrarian path and prioritized the usefulness of our token above its initial decentralization. As a result, we’ve created something rare: a token that makes sense and is being used. And now, Numeraire will be even better, more versatile, and will be controlled by the people it was made for.
Richard Craib

Image for post
Image for post
49168 total NMR stakes as at Jul 8th, 2019

The Numeraire token was created two years ago during the early days of development on Ethereum. There was a lot of risk. We opted for a token that would give the highest level of security to our users by implementing features like upgradeability, emergency stop, multisignature, and custody.

The cost was that, until now, users of the token had to trust Numerai.

Now that Numeraire has been stress-tested for two years, almost to the day, we’re ready to become decentralized af.

TL;DR We have transitioned the tournament to an independent set of smart contracts and disabled the centralized components of the token, effectively converting it into a pure ERC-20 with additional burning and custody functionality. These changes were deployed to mainnet and independently audited by Trail of Bits.

Image for post
Image for post
here’s what Bryant had to say

The technical details

The token retains the existing ERC-20 interface.

function approve(address _spender, uint256 _value);
function transfer(address _to, uint256 _value);
function transferFrom(address _from, address _to, uint256 _value);
function totalSupply();
function balanceOf(address _owner);
function allowance(address _owner, address _spender);
event Transfer(address indexed _from, address indexed _to, uint256 _value);
event Approval(address indexed _owner, address indexed _spender, uint256 _value);

Since the lauch of the token, there has been additional standardization in how tokens are burned. In order to retrofit these standards to our existing token, we converted the mint() and numeraiTransfer() functions to behave like openzeppelin’s ERC20Burnable burn() and burnFrom().
Note: the caller must check the return values of these functions as they return false on failure.

function mint(uint256 _value) public {
_burn(msg.sender, amount);
}
function numeraiTransfer(address _to, uint256 _value) public {
_burnFrom(account, amount);
}

The Numerai tournament contracts were moved to a separate set of smart contracts using the zos-lib proxy smart contracts. These new contracts currently have the same functionality as the predecessor with added security and architecture, supporting a broader range of feature improvements. Tournament participants who are currently doing self-custody need to follow this guide on custom-staking to interact with the new contract.

Tournament participants can choose to self-custody or to opt in for the Numerai custodial wallet, which allows us to pay gas and manage private keys on their behalf.
To maintain this behavior we are using the withdraw() function, which is designed to be disabled in the future. The goal is self-custody using a contract-based wallet such as universal logins, wallet connect and EIP-1613.

function withdraw(address _from, address _to, uint256 _value);

In April 2018, it came to our attention that there were some minor security vulnerabilities with the multisignature wallet used to manage the token. In response, we implemented a temporary patch which allowed us to circumvent the issues identified. This multisignature wallet is now completely disabled as we now use a Gnosis multisig.

The token was originally stoppable in the event of an emergency.
This is a centralized feature and thus has been disabled in this upgrade.

All 11 million of the tokens have now been minted. There will never again be minting of the token and the total supply will decrease as tokens are burned.

Image for post
Image for post

Correct numbers are already reflected at CoinGecko, including circulating supply and market cap. CoinMarketCap, Messari inter alia show the correct maximum supply and and we expect the rest of their numbers to reflect soon.

Thanks to Natasha-Jade for writing this release.

Numerai

A new kind of hedge fund built by a network of data…

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store