Erasure and Numerai code is stored in two Github organizations with public and private repositories.
- erasure-protocol: erasure monorepo with smart contracts and tooling
This section highlights key usage statistics of the erasure protocol and applications and how to produce them.
The erasure protocol is built on ethereum and ipfs, thus all its data is publically accessible. Some applications like the Numerai Tournement may operate a backend in order to provide a better product. In those cases, the data will only be public if the application provides an API for queries.
Here are some services for querying the data of the erasure protocol:
Here are some 3rd party dashboards that track key protocol metrics. Note we cannot guarantee the accuracy of the data provided by these providers, some have been found to be consistantly inaccurate.
The ESP_1001 standard provides a template for the metadata submitted to erasure protocol contracts. The
Tracking the number of clones registered in each registry (
Erasure Bay is currently operating on
Erasure Quant is currently operating on
Numerai is currently operating on
Value at stake
Tracking the total value locked up in the protocol is a sybil resitant way to measure adoption. Since the protocol supports staking with multiple tokens, USD is often used as the base value. See DefiPulse for example.
Erasure Bay currently supports staking with DAI exclusively. DAI is staked when sent to the
Erasure Quant currently supports staking with NMR exclusively. NMR is staked when sent to the
Numerai currently. supports staking in NMR exclusively. NMR. is staked when sent to the
Burning NMR is the primary mechanism to punish bad actors on the protocol. Healthy applications will see value burned increase proportionally to the value at stake.
Erasure Bay swaps DAI for NMR on uniswap when performing a burn. Every burn triggers the
Erasure Quant burns NMR directly. Every burn triggers the
Numerai burns NMR directly. Every burn triggers the
This is equivalent to the GDP of the protocol. It is the value which changes hands in exchange for goods and services traded on the protocol.
Erasure Bay uses DAI as the payment currency. Every payment triggers the
Erasure Quant uses NMR as the payment currency. Every payment calls the
Numerai uses NMR as the payment currency. Every payment calls the
Uniswap Liquidity and Volume
It is expected that NMR liquidity on uniswap will increase with adoption of the protocol. This is because erasure uses uniswap to burn NMR. This creates an arbitrage opportunity across uniswap and other exchanges which is covered by higher volume and liquidity.
Uniswap volume produced by Erasure Bay is equivalent to the value burned.
Erasure Quant does not directly use uniswap.
Numerai does not directly use uniswap. However, the app has an NMR purchasing program on uniswap in order to pay rewards.
The Erasure protocol is currently on version
v1.3.0and composed of 4 registry contracts and more than 20 factory contracts. The protocol is deployed on ethereum
The 4 active registries are
The 4 registry contracts remain the same for all major releases of the protocol (
v1.x.x). The factory contracts are changed for every minor releases of the protocol (
v1.3.x). The contract addresses are unchanged for patch releases (
v1.3.1). See wiki for notes on semantic versioning.
List of Erasure registry and factory addresses and ABIs are maintained in this package: @erasure/abis
Note: the factories spawn individual contracts for each user. This means the number of erasure contracts is constantly increasing. You can obtain a list of all contracts of a given type by calling the appropriate registry as such:
let agreements = await Erasure_Agreements.methods.getInstances().call();
Many users connect to the protocol through smart contract wallets. This means usage of the protocol is not correctly displayed by etherscan. A complete usage analysis requires transaction tracing or event scanning.
All Numerai tournament calls are relayed through the following proxy contracts before reaching NMR / Erasure in order to perform user custody: 0x9DCe896DdC20BA883600176678cbEe2B8BA188A9 0x1B38819bAB08EF176183D937E21ae1262FE7c337