Overview

Everything you need to know about Numerai Crypto.

Introduction

Similar to Numerai Signals, Numerai Crypto asks you to bring your own data - your own unique signal. A signal in the crypto market (or "CryptoSignal") is a feed of information. It is numerical data about tokens that can be used by crypto traders. These feeds of information are used to model the crypto market and construct the Numerai Crypto Meta Model, which we give back to you free of charge.

Examples of crypto market signals include:

If you're a data provider you can submit unique features directly as signals. If you're a data scientist, you can model unique data to submit predictions as signals. Signals are then scored against our targets and other submitted signals. Signals can be staked with the NMR cryptocurrency to earn (or burn) NMR based on performance.

Data

You can get started with the the Numerai Data API:

from numerapi import NumerAPI
import pandas as pd

napi = NumerAPI()
napi.download_dataset("crypto/v1.0/train_targets.parquet")
training_data = pd.read_parquet("crypto/v1.0/train_targets.parquet")

You will need to acquire distinct and unique crypto market data to generate a high quality signal. There are a number of other data providers you can also use to get started such as Messari and CoinMarketCap.

If you don't have crypto market data, but are still interested in Numerai, try the Numerai Tournament instead to predict the stock market using our data.

Modeling

If you're not sure where to start with modeling your data, we highly recommend learning how to do basic modeling over on the Numerai Tournament. Once you're confident in your modeling skills, they should transfer to Numerai Crypto. Here is a basic example of a tree-based model:

import lightgbm as lgb
import pandas as pd
import random
from numerapi import NumerAPI
from typing import List

napi = NumerAPI()


def generate_training_features(df: pd.DataFrame) -> List[str]:
    # TODO: Get your data and create features
    df['fake_feature_1'] = df.groupby(["symbol", "date"])['symbol'].transform(lambda x: random.uniform(0, 1))
    return ['fake_feature_1']


# Historical targets file contains ["symbol", "date", "target"] columns
napi.download_dataset("crypto/v1.0/train_targets.parquet")
train_df = pd.read_parquet("crypto/v1.0/train_targets.parquet")

# Add training features for each (symbol, date)
feature_cols = generate_training_features(train_df)

model = lgb.LGBMRegressor(
    n_estimators=2000,
    learning_rate=0.01,
    max_depth=5,
    num_leaves=2 ** 5,
    colsample_bytree=0.1
)

model.fit(
    train_df[feature_cols],
    train_df["target"]
)

Submissions

Numerai Crypto submissions are very similar to Numerai Signals (see here), except you use token symbols instead of stock tickers. Your submission should be a list of symbols each with a numerical value predicting returns:

The list of symbols in your submission are defined by the Numerai Crypto token universe. And the numerical values should be between 0 and 1.

Here is an example of how you generate and upload live predictions in Python:

def generate_features(df: pd.DataFrame):
    # TODO: Get your data and create features for live universe
    df['fake_feature_1'] = df['symbol'].transform(lambda x: random.uniform(0, 1))

# Use API keys to authenticate
napi = NumerAPI("[your api public id]", "[your api secret key]")

# Download latest live universe
napi.download_dataset("crypto/v1.0/live_universe.parquet")
live = pd.read_parquet("crypto/v1.0/live_universe.parquet")

# Generate features for the live universe
generate_features(live)

# Get live predictions
live["signal"] = model.predict(live[feature_cols])

# Predictions must be between 0 and 1
live["signal"] = live["signal"].rank(pct=True)

# Format and save submission
live[['symbol', 'signal']].to_parquet("submission.parquet")

# Get model ids and submit models
models = napi.get_models(tournament=12)
for model_name, model_id in models.items():
    print(f'submitting {model_name}...')
    napi.upload_predictions("submission.parquet", model_id=model_id, tournament=12)

print('done!')

Read more about submissions here.

Scoring

Scoring is also very similar to the Numerai Tournament (see here).

Numerai Crypto is not only about predicting token returns, it is about finding original signals that other models don't already have.

See the Scoring section for more details.

Staking

Just as with the Numerai Tournament, you can optionally stake NMR on your model to earn or burn based on performance. For more information please read the Staking docs.

It is important to note that the opportunity to stake your signal is not an offer by Numerai to participate in an investment contract, a security, a swap based on the return of any financial assets, an interest in Numerai’s hedge fund, or in Numerai itself or any fees we earn. Numerai's hedge fund has no relation whatsoever to Numerai Crypto, it does not trade cryptocurrencies, and does it does not use the Numerai Crypto Meta Model. Payouts will be made at our discretion, based on a blackbox target that may not be disclosed to users. Fundamentally, Numerai Crypto is a service offered by Numerai that allows users to assess the value of their CryptoSignals, using NMR staking as a way to validate “real” signals. Users with different expectations should not stake.

Please read our Terms of Service for further information.

FAQ

What is a token universe?

A set of well-known cryptocurrency token symbols that can be traded. Numerai wants predictions for only these symbols. See here for details.

What is the difference between Numerai Tournament, Numerai Signals, and Numerai Crypto?

Numerai Tournament and Numerai Signals are tournaments for users to predict the stock market. Numerai Crypto is for predicting the cryptocurrency market. Numerai Crypto is most similar to Signals, where users must use their own features. Numerai provides a historical targets file to train the models and evaluate on validation data, but users must collect and process their own features to train models.

Is my code / data protected from Numerai?

Yes. Numerai does not view the code that builds your data or predictions. Numerai only receives the predictions themselves. Reverse-engineering your code is nearly impossible and Numerai is uninterested in doing this.

Do I have to stake NMR in order to participate?

No. You can submit your prediction file and receive performance without staking.

Why shouldn't I just trade on my own?

You can and we can't stop you. However, Numerai is equipped to tell you if your signal is already known and being used by everyone else - it's not very valuable to trade a signal that everyone else is already trading. Learn more in this Medium post.

Do I need know coding / finance in order to participate?

While example models and exploratory notebooks are available to get started, people new to coding and finance are encouraged to try Numerai Tournament rather than Numerai Crypto. Numerai Crypto requires a high-level of coding and market knowledge to be successful.

Does Numerai trade cryptocurrencies?

No. Numerai does not trade cryptocurrencies nor does Numerai's hedge fund(s).

Does Numerai use the Numerai Crypto Meta Model?

No. None of Numerai's other products, assets, or services consume, use, blend, or are effected by the Numerai Crypto Meta Model.

Are predictions or data from Numerai Crypto used in Numerai's hedge fund?

No. Numerai's hedge fund is completely divorced from Numerai Crypto and nothing from Numerai Crypto effects the hedge fund in any way.

Support

Find us on Discord for questions, support, and feedback!

Last updated