---
title: "Kraken Crypto Price Data"
description: "Kraken Crypto Price Data dataset from QuantConnect."
canonical: https://www.quantconnect.com/docs/v2/writing-algorithms/datasets/quantconnect/kraken-crypto-price-data
markdown: https://www.quantconnect.com/docs/v2/writing-algorithms/datasets/quantconnect/kraken-crypto-price-data.md
language: python
source: https://github.com/QuantConnect/Documentation/tree/master/03%20Writing%20Algorithms/14%20Datasets/02%20QuantConnect/17%20Kraken%20Crypto%20Price%20Data
modified: 2026-10-30
index: https://www.quantconnect.com/llms.txt
---

# Kraken Crypto Price Data

[Documentation](https://www.quantconnect.com/docs/v2.md) > [Writing Algorithms](https://www.quantconnect.com/docs/v2/writing-algorithms.md) > Datasets > [QuantConnect](https://www.quantconnect.com/docs/v2/writing-algorithms/datasets/quantconnect.md) > Kraken Crypto Price Data

> Code examples are shown in Python. Append `?lang=csharp` to this URL for the C# version of this page.

## Introduction

The Kraken Crypto Price Data provides Cryptocurrency price and volume data points. The data covers 1,262 Cryptocurrency pairs, starts in October 2013, and is delivered on any frequency from tick to daily. This dataset is created by monitoring the trading activity on the Cryptocurrency markets/exchanges supported by QuantConnect.

For more information about the Kraken Crypto Price Data dataset, including CLI commands and pricing, see the [dataset listing](https://www.quantconnect.com/datasets/kraken-crypto-price-data).

## About the Provider

[Kraken](https://kraken.pxf.io/m53RPO) was founded by Jesse Powell in 2011 with the goal to "accelerate the adoption of cryptocurrency so that you and the rest of the world can achieve financial freedom and inclusion". Kraken provides access to trading Crypto through spot and Futures markets for clients with a minimum deposit of around $0-$150 USD for [currency](https://support.kraken.com/hc/en-us/articles/360000381846) and [Crypto deposits](https://support.kraken.com/hc/en-us/articles/360000292886-Cryptocurrency-deposit-fees-and-minimums). Kraken also provides staking services, educational content, and a developer grant program.

## Getting Started

The following snippet demonstrates how to request data from the Kraken Crypto Price dataset:

```python
# Kraken accepts both Cash and Margin type account.
self.set_brokerage_model(BrokerageName.KRAKEN, AccountType.CASH)
#self.set_brokerage_model(BrokerageName.KRAKEN, AccountType.MARGIN)

self.btcusd = self.add_crypto("BTCUSD", Resolution.MINUTE, Market.KRAKEN).symbol

self._universe = self.add_universe(CryptoUniverse.kraken(self.universe_selection_filter));
```

## Data Summary

The following table describes the dataset properties:

| Property | Value |
| --- | --- |
| Start Date | October 2013 |
| Asset Coverage | 1,262 Currency Pairs |
| Data Density | Dense |
| Resolution | Tick, Second, Minute, Hourly, & Daily |
| Timezone | UTC |
| Market Hours | [Always Open](https://www.quantconnect.com/docs/v2/writing-algorithms/securities/market-hours.md) |

## Requesting Data

To add Kraken Crypto Price data to your algorithm, call the `add_crypto` method. Save a reference to the Crypto `Symbol` so you can access the data later in your algorithm.

```python
class CoinAPIDataAlgorithm(QCAlgorithm):

    def initialize(self) -> None:
        self.set_start_date(2020, 6, 1)
        self.set_end_date(2021, 6, 1)
        self.set_cash(100000)

        # Kraken accepts both Cash and Margin type account.
        self.set_brokerage_model(BrokerageName.KRAKEN, AccountType.MARGIN)

        self.btcusd = self.add_crypto("BTCUSD", Resolution.MINUTE, Market.KRAKEN).symbol
```

For more information about creating Crypto subscriptions, see [Requesting Data](https://www.quantconnect.com/docs/v2/writing-algorithms/securities/asset-classes/crypto/requesting-data.md).

## Accessing Data

To get the current Kraken Crypto Price data, index the `bars`, `quote_bars`, or `ticks` properties of the current [`Slice`](https://www.quantconnect.com/docs/v2/writing-algorithms/key-concepts/time-modeling/timeslices.md) with the Crypto `Symbol`. `Slice` objects deliver unique events to your algorithm as they happen, but the `Slice` may not contain data for your security at every time step. To avoid issues, check if the `Slice` contains the data you want before you index it.

```python
def on_data(self, slice: Slice) -> None:
    if self.btcusd in slice.bars:
        trade_bar = slice.bars[self.btcusd]
        self.log(f"{self.btcusd} close at {slice.time}: {trade_bar.close}")

    if self.btcusd in slice.quote_bars:
        quote_bar = slice.quote_bars[self.btcusd]
        self.log(f"{self.btcusd} bid at {slice.time}: {quote_bar.bid.close}")

    if self.btcusd in slice.ticks:
        ticks = slice.ticks[self.btcusd]
        for tick in ticks:
            self.log(f"{self.btcusd} price at {slice.time}: {tick.price}")
```

You can also iterate through all of the data objects in the current `Slice`.

```python
def on_data(self, slice: Slice) -> None:
    for symbol, trade_bar in slice.bars.items():
        self.log(f"{symbol} close at {slice.time}: {trade_bar.close}")

    for symbol, quote_bar in slice.quote_bars.items():
        self.log(f"{symbol} bid at {slice.time}: {quote_bar.bid.close}")

    for symbol, ticks in slice.ticks.items():
        for tick in ticks:
            self.log(f"{symbol} price at {slice.time}: {tick.price}")
```

For more information about accessing Crypto data, see [Handling Data](https://www.quantconnect.com/docs/v2/writing-algorithms/securities/asset-classes/crypto/handling-data.md).

## Historical Data

To get historical Kraken Crypto Price data, call the `history` method with the Crypto `Symbol`. If there is no data in the period you request, the history result is empty.

```python
# DataFrame
history_df = self.history(self.btcusd, 100, Resolution.DAILY)

# TradeBar objects
history_trade_bars = self.history[TradeBar](self.btcusd, 100, Resolution.MINUTE)

# QuoteBar objects
history_quote_bars = self.history[QuoteBar](self.btcusd, 100, Resolution.MINUTE)

# Tick objects
history_ticks = self.history[Tick](self.btcusd, timedelta(seconds=10), Resolution.TICK)
```

For more information about historical data, see [History Requests](https://www.quantconnect.com/docs/v2/writing-algorithms/historical-data/history-requests.md).

## Universe Selection

To select a dynamic universe of Kraken Crypto pairs, call the `add_universe` method with a `CryptoUniverse` object. A [Crypto universe](https://www.quantconnect.com/docs/v2/writing-algorithms/universes/crypto.md) uses a selection function to select Crypto pairs based on their OHLCV and dollar volume of the previous day as of midnight Coordinated Universal Time (UTC).

```python
def initialize(self) -> None:
    self.set_brokerage_model(BrokerageName.KRAKEN, AccountType.MARGIN)
    self.universe_settings.asynchronous = True
    self._universe = self.add_universe(CryptoUniverse.kraken(self.universe_selection_filter))

def universe_selection_filter(self, universe_day):
    return [c.symbol for c in universe_day if c.volume >= 100 and c.volume_in_usd > 10000]
```

For more information about universe settings, see [Settings](https://www.quantconnect.com/docs/v2/writing-algorithms/universes/settings.md).

## Universe History

You can get historical universe data in an algorithm and in the Research Environment.

### Historical Universe Data in Algorithms

To get historical universe data in an algorithm, call the `history` method with the `Universe` object, and the lookback period. If there is no data in the period you request, the history result is empty.

```python
# DataFrame example where the columns are the CryptoUniverse attributes:
history_df = self.history(self._universe, 30, Resolution.DAILY, flatten=True)

# Series example where the values are lists of CryptoUniverse objects:
history = self.history(self._universe, 30, Resolution.DAILY)
for (univere_symbol, time), universe_day in history.items():
    for universe_item in universe_day:
        self.log(f"{universe_item.symbol} price at {universe_item.end_time}: {universe_item.close}")
```

### Historical Universe Data in Research

To get historical universe data in research, call the `universe_history` method with the `Universe` object, and the lookback period. The `universe_history` returns the filtered universe. If there is no data in the period you request, the history result is empty.

```python
# DataFrame example where the columns are the CryptoUniverse attributes:
history_df = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)

# Series example where the values are lists of CryptoUniverse objects:
universe_history = qb.universe_history(universe, qb.time-timedelta(30), qb.time)
for (univere_symbol, time), universe_day in universe_history.items():
    for universe_item in universe_day:
        print(f"{universe_item.symbol} price at {universe_item.end_time}: {universe_item.close}")
```

You can call the `history` method in Research.

## Remove Subscriptions

To unsubscribe from a Crypto pair that you added with the `add_crypto` method, call the `remove_security` method.

```python
self.remove_security(self.btcusd)
```

The `remove_security` method cancels your open orders for the security and liquidates your holdings in the [virtual pair](https://www.quantconnect.com/docs/v2/writing-algorithms/securities/asset-classes/crypto/holdings.md#03-Virtual-Pairs).

## Supported Assets

The following table shows the available Cryptocurrency pairs:

| Pairs Available (1262) |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| 1INCHEUR | 1INCHUSD | AAVEAUD | AAVEBTC | AAVEETH | AAVEEUR |
| AAVEGBP | AAVEUSD | ACAEUR | ACAUSD | ACHEUR | ACHUSD |
| ACTEUR | ACTUSD | ACXEUR | ACXUSD | ADAAUD | ADABTC |
| ADAETH | ADAEUR | ADAGBP | ADAUSD | ADAUSDC | ADAUSDT |
| ADXEUR | ADXUSD | AEROEUR | AEROUSD | AEUR | AEVOEUR |
| AEVOUSD | AGLDEUR | AGLDUSD | AI16ZEUR | AI16ZUSD | AI16ZUSDC |
| AI16ZUSDT | AIOZEUR | AIOZUSD | AIREUR | AIRUSD | AIXBTEUR |
| AIXBTUSD | AKTEUR | AKTUSD | ALCHEUR | ALCHUSD | ALCXEUR |
| ALCXUSD | ALGOBTC | ALGOETH | ALGOEUR | ALGOGBP | ALGOUSD |
| ALGOUSDC | ALGOUSDT | ALICEEUR | ALICEUSD | ALPHAEUR | ALPHAUSD |
| ALTEUR | ALTUSD | ANKRBTC | ANKREUR | ANKRGBP | ANKRUSD |
| ANLOGEUR | ANLOGUSD | ANONEUR | ANONUSD | ANTBTC | ANTETH |
| ANTEUR | ANTUSD | APEEUR | APENFTEUR | APENFTUSD | APEUSD |
| APEUSDC | APEUSDT | API3EUR | API3USD | APTEUR | APTUSD |
| APUEUR | APUUSD | ARBEUR | ARBUSD | ARCEUR | ARCUSD |
| AREUR | ARKMEUR | ARKMUSD | ARPAEUR | ARPAUSD | ARUSD |
| ASRREUR | ASRRUSD | ASTREUR | ASTRUSD | ATHEUR | ATHUSD |
| ATLASEUR | ATLASUSD | ATOMAUD | ATOMBTC | ATOMETH | ATOMEUR |
| ATOMGBP | ATOMUSD | ATOMUSDC | ATOMUSDT | AUCTIONEUR | AUCTIONUSD |
| AUDIOEUR | AUDIOUSD | AUDJPY | AUDUSD | AURAEUR | AURAUSD |
| AUSD | AVAAIEUR | AVAAIUSD | AVAXEUR | AVAXUSD | AVAXUSDC |
| AVAXUSDT | AXSEUR | AXSUSD | B3EUR | B3USD | BABYEUR |
| BABYUSD | BADGEREUR | BADGERUSD | BALBTC | BALETH | BALEUR |
| BALUSD | BANANAS31EUR | BANANAS31USD | BANDEUR | BANDUSD | BATBTC |
| BATETH | BATEUR | BATJPY | BATUSD | BCHAUD | BCHBTC |
| BCHETH | BCHEUR | BCHGBP | BCHJPY | BCHUSD | BCHUSDC |
| BCHUSDT | BDXNEUR | BDXNUSD | BEAMEUR | BEAMUSD | BERAEUR |
| BERAUSD | BERAUSDC | BERAUSDT | BICOEUR | BICOUSD | BIGTIMEEUR |
| BIGTIMEUSD | BIOEUR | BIOUSD | BITEUR | BITUSD | BLUREUR |
| BLURUSD | BLZEUR | BLZUSD | BMTEUR | BMTUSD | BNBEUR |
| BNBUSD | BNBUSDC | BNBUSDT | BNCEUR | BNCUSD | BNTBTC |
| BNTEUR | BNTGBP | BNTUSD | BOBAEUR | BOBAUSD | BODENEUR |
| BODENUSD | BONDEUR | BONDUSD | BONKEUR | BONKUSD | BRICKEUR |
| BRICKUSD | BSXEUR | BSXUSD | BTCAED | BTCAUD | BTCCAD |
| BTCCHF | BTCDAI | BTCEUR | BTCGBP | BTCJPY | BTCPYUSD |
| BTCUSD | BTCUSDC | BTCUSDQ | BTCUSDR | BTCUSDT | BTTEUR |
| BTTUSD | C98EUR | C98USD | CAKEEUR | CAKEUSD | CATEUR |
| CATUSD | CCDEUR | CCDUSD | CELOEUR | CELOUSD | CELREUR |
| CELRUSD | CFGEUR | CFGUSD | CHEEMSEUR | CHEEMSUSD | CHEXEUR |
| CHEXUSD | CHILLHOUSEEUR | CHILLHOUSEUSD | CHREUR | CHRUSD | CHZEUR |
| CHZUSD | CLANKEREUR | CLANKERUSD | CLOUDEUR | CLOUDUSD | CLVEUR |
| CLVUSD | CMETHETH | CMETHUSD | COMPBTC | COMPETH | COMPEUR |
| COMPUSD | COOKIEEUR | COOKIEUSD | COQEUR | COQUSD | CORNEUR |
| CORNUSD | COTIEUR | COTIUSD | COWEUR | COWUSD | CPOOLEUR |
| CPOOLUSD | CQTEUR | CQTUSD | CROEUR | CROUSD | CROUSDC |
| CROUSDT | CRVBTC | CRVETH | CRVEUR | CRVUSD | CSMEUR |
| CSMUSD | CTSIEUR | CTSIUSD | CVCEUR | CVCUSD | CVXEUR |
| CVXUSD | CXTEUR | CXTUSD | CYBEREUR | CYBERUSD | DAIEUR |
| DAIUSD | DAIUSDT | DASHBTC | DASHEUR | DASHUSD | DBREUR |
| DBRUSD | DEEPEUR | DEEPUSD | DEGENEUR | DEGENUSD | DENTEUR |
| DENTUSD | DMCEUR | DMCUSD | DOGEUR | DOGSEUR | DOGSUSD |
| DOGUSD | DOLOEUR | DOLOUSD | DOTAUD | DOTBTC | DOTETH |
| DOTEUR | DOTGBP | DOTJPY | DOTUSD | DOTUSDC | DOTUSDT |
| DRIFTEUR | DRIFTUSD | DRVEUR | DRVUSD | DUCKEUR | DUCKUSD |
| DYDXEUR | DYDXUSD | DYMEUR | DYMUSD | EDGEEUR | EDGEUSD |
| EGLDEUR | EGLDUSD | EIGENEUR | EIGENUSD | ELXEUR | ELXUSD |
| ENAEUR | ENAUSD | ENJBTC | ENJEUR | ENJGBP | ENJJPY |
| ENJUSD | ENSEUR | ENSUSD | EOSBTC | EOSETH | EOSEUR |
| EOSUSD | EOSUSDC | EOSUSDT | EPTEUR | EPTUSD | ESEUR |
| ESUSD | ESXEUR | ESXUSD | ETCBTC | ETCETH | ETCEUR |
| ETCUSD | ETH2.SETH | ETHAED | ETHAUD | ETHBTC | ETHCAD |
| ETHCHF | ETHDAI | ETHEUR | ETHFIEUR | ETHFIUSD | ETHGBP |
| ETHJPY | ETHPYUSD | ETHUSD | ETHUSDC | ETHUSDT | ETHWETH |
| ETHWEUR | ETHWUSD | EULEUR | EULUSD | EURAUD | EURCAD |
| EURCHF | EURGBP | EURJPY | EUROPEUR | EUROPUSD | EUROPUSDC |
| EURQEUR | EURQUSD | EURREUR | EURRUSD | EURRUSDC | EURRUSDT |
| EURTEUR | EURTUSD | EURTUSDT | EURUSD | EWTBTC | EWTEUR |
| EWTGBP | EWTUSD | FARMEUR | FARMUSD | FARTCOINEUR | FARTCOINUSD |
| FARTCOINUSDC | FARTCOINUSDT | FETEUR | FETUSD | FHEEUR | FHEUSD |
| FIDAEUR | FIDAUSD | FILAUD | FILBTC | FILETH | FILEUR |
| FILGBP | FILUSD | FISEUR | FISUSD | FLOKIEUR | FLOKIUSD |
| FLOWBTC | FLOWETH | FLOWEUR | FLOWGBP | FLOWUSD | FLREUR |
| FLRUSD | FLUXEUR | FLUXUSD | FLYEUR | FLYUSD | FORTHEUR |
| FORTHUSD | FTMEUR | FTMUSD | FWOGEUR | FWOGUSD | FXSEUR |
| FXSUSD | GAIAEUR | GAIAUSD | GALAEUR | GALAUSD | GALEUR |
| GALUSD | GARIEUR | GARIUSD | GBPUSD | GEUR | GFIEUR |
| GFIUSD | GHIBLIEUR | GHIBLIUSD | GHSTBTC | GHSTEUR | GHSTGBP |
| GHSTUSD | GIGAEUR | GIGAUSD | GLMREUR | GLMRUSD | GMTEUR |
| GMTUSD | GMXEUR | GMXUSD | GNOBTC | GNOETH | GNOEUR |
| GNOUSD | GOATEUR | GOATUSD | GOMININGEUR | GOMININGUSD | GRASSEUR |
| GRASSUSD | GRIFFAINEUR | GRIFFAINUSD | GRTAUD | GRTBTC | GRTETH |
| GRTEUR | GRTGBP | GRTUSD | GSTEUR | GSTUSD | GTCEUR |
| GTCUSD | GUNEUR | GUNUSD | GUSD | HBAREUR | HBARUSD |
| HDXEUR | HDXUSD | HFTEUR | HFTUSD | HIPPOEUR | HIPPOUSD |
| HMSTREUR | HMSTRUSD | HNTEUR | HNTUSD | HONEYEUR | HONEYUSD |
| HOUSEEUR | HOUSEUSD | HPOS10IEUR | HPOS10IUSD | ICNTEUR | ICNTUSD |
| ICPEUR | ICPUSD | ICXBTC | ICXETH | ICXEUR | ICXUSD |
| IDEXEUR | IDEXUSD | IMXEUR | IMXUSD | INITEUR | INITUSD |
| INJEUR | INJUSD | INTREUR | INTRUSD | IPEUR | IPUSD |
| JAILSTOOLEUR | JAILSTOOLUSD | JASMYEUR | JASMYUSD | JITOSOLEUR | JITOSOLSOL |
| JITOSOLUSD | JOEEUR | JOEUSD | JSTEUR | JSTUSD | JTOEUR |
| JTOUSD | JUNOEUR | JUNOUSD | JUPEUR | JUPUSD | KAITOEUR |
| KAITOUSD | KAREUR | KARUSD | KASEUR | KASUSD | KAVABTC |
| KAVAETH | KAVAEUR | KAVAUSD | KEEPBTC | KEEPETH | KEEPEUR |
| KEEPUSD | KERNELEUR | KERNELUSD | KETEUR | KETUSD | KEUR |
| KEYEUR | KEYUSD | KILTEUR | KILTUSD | KINEUR | KINTEUR |
| KINTUSD | KINUSD | KMNOEUR | KMNOUSD | KNCBTC | KNCETH |
| KNCEUR | KNCUSD | KOBANEUR | KOBANUSD | KP3REUR | KP3RUSD |
| KSMAUD | KSMBTC | KSMDOT | KSMETH | KSMEUR | KSMGBP |
| KSMUSD | KTAEUR | KTAUSD | KUJIEUR | KUJIUSD | KUSD |
| L3EUR | L3USD | LAYEREUR | LAYERUSD | LCXEUR | LCXUSD |
| LDOEUR | LDOUSD | LINKAUD | LINKBTC | LINKETH | LINKEUR |
| LINKGBP | LINKJPY | LINKUSD | LINKUSDC | LINKUSDT | LITEUR |
| LITUSD | LMWREUR | LMWRUSD | LOCKINEUR | LOCKINUSD | LOFIEUR |
| LOFIUSD | LPTBTC | LPTEUR | LPTGBP | LPTUSD | LQTYEUR |
| LQTYUSD | LRCEUR | LRCUSD | LSETHETH | LSETHEUR | LSETHUSD |
| LSKBTC | LSKETH | LSKEUR | LSKUSD | LSSOLEUR | LSSOLSOL |
| LSSOLUSD | LTCAUD | LTCBTC | LTCETH | LTCEUR | LTCGBP |
| LTCJPY | LTCUSD | LTCUSDC | LTCUSDT | LUNA2EUR | LUNA2USD |
| LUNAEUR | LUNAUSD | MANABTC | MANAETH | MANAEUR | MANAUSD |
| MANAUSDC | MANAUSDT | MASKEUR | MASKUSD | MATEUR | MATICBTC |
| MATICEUR | MATICGBP | MATICPOL | MATICUSD | MATICUSDC | MATICUSDT |
| MATUSD | MCEUR | MCUSD | MEEUR | MELANIAEUR | MELANIAUSD |
| MELANIAUSDC | MELANIAUSDT | MEMEEUR | MEMEUSD | MERLEUR | MERLUSD |
| METHETH | METHUSD | METISEUR | METISUSD | MEUR | MEUSD |
| MEWEUR | MEWUSD | MICHIEUR | MICHIUSD | MINABTC | MINAEUR |
| MINAGBP | MINAUSD | MIRAEUR | MIRAUSD | MIREUR | MIRUSD |
| MKRBTC | MKREUR | MKRGBP | MKRUSD | MLNBTC | MLNETH |
| MLNEUR | MLNUSD | MNGOEUR | MNGOUSD | MNTEUR | MNTUSD |
| MOGEUR | MOGUSD | MOODENGEUR | MOODENGUSD | MOONEUR | MOONUSD |
| MORPHOEUR | MORPHOUSD | MOVEEUR | MOVEUSD | MOVREUR | MOVRUSD |
| MSOLEUR | MSOLUSD | MUBARAKEUR | MUBARAKUSD | MULTIEUR | MULTIUSD |
| MUSD | MVEUR | MVUSD | MXCEUR | MXCUSD | NANOBTC |
| NANOETH | NANOEUR | NANOUSD | NEAREUR | NEARUSD | NEIROEUR |
| NEIROUSD | NILEUR | NILUSD | NMREUR | NMRUSD | NODLEUR |
| NODLUSD | NOSEUR | NOSUSD | NOTEUR | NOTUSD | NPCEUR |
| NPCUSD | NTRNEUR | NTRNUSD | NYMBTC | NYMEUR | NYMUSD |
| OCEANBTC | OCEANEUR | OCEANGBP | OCEANUSD | ODOSEUR | ODOSUSD |
| OGNEUR | OGNUSD | OMEUR | OMGBTC | OMGETH | OMGEUR |
| OMGJPY | OMGUSD | OMNIEUR | OMNIUSD | OMUSD | ONDOEUR |
| ONDOUSD | OPEUR | OPUSD | ORCAEUR | ORCAUSD | ORDEREUR |
| ORDERUSD | OSMOEUR | OSMOUSD | OXTBTC | OXTETH | OXTEUR |
| OXTUSD | OXYEUR | OXYUSD | PARTIEUR | PARTIUSD | PAXGBTC |
| PAXGETH | PAXGEUR | PAXGUSD | PDAEUR | PDAUSD | PEAQEUR |
| PEAQUSD | PENDLEEUR | PENDLEUSD | PENGUEUR | PENGUUSD | PENGUUSDC |
| PENGUUSDT | PEPEAUD | PEPECAD | PEPEEUR | PEPEGBP | PEPEUSD |
| PERPEUR | PERPUSD | PHAEUR | PHAUSD | PLUMEEUR | PLUMEUSD |
| PNUTEUR | PNUTUSD | POLEUR | POLISEUR | POLISUSD | POLSEUR |
| POLSUSD | POLUSD | PONDEUR | PONDUSD | PONKEEUR | PONKEUSD |
| POPCATEUR | POPCATGBP | POPCATUSD | PORTALEUR | PORTALUSD | POWREUR |
| POWRUSD | PRCLEUR | PRCLUSD | PRIMEEUR | PRIMEUSD | PROEUR |
| PROMPTEUR | PROMPTUSD | PROUSD | PSTAKEEUR | PSTAKEUSD | PUFFEREUR |
| PUFFERUSD | PUMPEUR | PUMPSOL | PUMPUSD | PYTHEUR | PYTHUSD |
| PYUSDEUR | PYUSDUSD | QIEUR | QIUSD | QNTEUR | QNTUSD |
| QTUMBTC | QTUMETH | QTUMEUR | QTUMUSD | RADEUR | RADUSD |
| RAIINEUR | RAIINUSD | RAREEUR | RAREUSD | RARIBTC | RARIEUR |
| RARIGBP | RARIUSD | RAYEUR | RAYUSD | RBCEUR | RBCUSD |
| REDEUR | REDUSD | RENBTC | RENDEREUR | RENDERUSD | RENEUR |
| RENGBP | RENUSD | REPBTC | REPETH | REPEUR | REPUSD |
| REPV2BTC | REPV2ETH | REPV2EUR | REPV2USD | REQEUR | REQUSD |
| RETARDIOEUR | RETARDIOUSD | REZEUR | REZUSD | RIZEEUR | RIZEUSD |
| RLCEUR | RLCUSD | RLUSDEUR | RLUSDUSD | RLUSDUSDC | RLUSDUSDT |
| RNDREUR | RNDRUSD | ROOKEUR | ROOKUSD | RPLEUR | RPLUSD |
| RSREUR | RSRUSD | RUJIEUR | RUJIUSD | RUNEEUR | RUNEUSD |
| SAFEEUR | SAFEUSD | SAGAEUR | SAGAUSD | SAHARAEUR | SAHARAUSD |
| SAMOEUR | SAMOUSD | SANDBTC | SANDEUR | SANDGBP | SANDUSD |
| SBREUR | SBRUSD | SCBTC | SCETH | SCEUR | SCRTEUR |
| SCRTUSD | SCUSD | SDNEUR | SDNUSD | SEIEUR | SEIUSD |
| SEUR | SGBEUR | SGBUSD | SHIBEUR | SHIBUSD | SHIBUSDC |
| SHIBUSDT | SIGMAEUR | SIGMAUSD | SKYEUR | SKYUSD | SNEKEUR |
| SNEKUSD | SNXAUD | SNXBTC | SNXETH | SNXEUR | SNXGBP |
| SNXUSD | SOGNIEUR | SOGNIUSD | SOLAUD | SOLBTC | SOLCAD |
| SOLETH | SOLEUR | SOLGBP | SOLUSD | SOLUSDC | SOLUSDT |
| SONICEUR | SONICUSD | SOSOEUR | SOSOUSD | SPELLEUR | SPELLUSD |
| SPICEEUR | SPICEUSD | SPKEUR | SPKUSD | SPXEUR | SPXUSD |
| SRMBTC | SRMEUR | SRMGBP | SRMUSD | SSVEUR | SSVUSD |
| STEPEUR | STEPUSD | STGEUR | STGUSD | STORJBTC | STORJETH |
| STORJEUR | STORJUSD | STRDEUR | STRDUSD | STRKEUR | STRKUSD |
| STXEUR | STXUSD | SUIEUR | SUIGBP | SUIUSD | SUNDOGEUR |
| SUNDOGUSD | SUNEUR | SUNUSD | SUPEREUR | SUPERUSD | SUSD |
| SUSDC | SUSDT | SUSHIBTC | SUSHIEUR | SUSHIGBP | SUSHIUSD |
| SWARMSEUR | SWARMSUSD | SWEATEUR | SWEATUSD | SWELLEUR | SWELLUSD |
| SXTEUR | SXTUSD | SYNEUR | SYNUSD | SYRUPEUR | SYRUPUSD |
| TACEUR | TACUSD | TANSSIEUR | TANSSIUSD | TAOEUR | TAOUSD |
| TBTCBTC | TBTCETH | TBTCEUR | TBTCUSD | TEEREUR | TEERUSD |
| TERMEUR | TERMUSD | TEUR | TIAEUR | TIAUSD | TITCOINEUR |
| TITCOINUSD | TLMEUR | TLMUSD | TNSREUR | TNSRUSD | TOKEEUR |
| TOKENEUR | TOKENUSD | TOKEUSD | TONEUR | TONUSD | TONUSDC |
| TONUSDT | TOSHIEUR | TOSHIUSD | TRACEUR | TRACUSD | TREEEUR |
| TREEUSD | TREMPEUR | TREMPUSD | TRUEUR | TRUMPEUR | TRUMPUSD |
| TRUMPUSDC | TRUMPUSDT | TRUUSD | TRXBTC | TRXETH | TRXEUR |
| TRXUSD | TRXUSDD | TURBOEUR | TURBOUSD | TUSD | TUSDEUR |
| TUSDUSD | TVKEUR | TVKUSD | UFDEUR | UFDUSD | UMAEUR |
| UMAUSD | UNFIEUR | UNFIUSD | UNIBTC | UNIETH | UNIEUR |
| UNITEEUR | UNITEUSD | UNIUSD | USDAED | USDCAD | USDCAUD |
| USDCCAD | USDCCHF | USDCEUR | USDCGBP | USDCHF | USDCUSD |
| USDCUSDT | USDDEUR | USDDUSD | USDGEUR | USDGUSD | USDGUSDC |
| USDJPY | USDQEUR | USDQUSD | USDQUSDC | USDQUSDT | USDREUR |
| USDRUSD | USDRUSDC | USDRUSDT | USDSEUR | USDSUSD | USDTAUD |
| USDTCAD | USDTCHF | USDTEUR | USDTGBP | USDTJPY | USDTUSD |
| USDUCEUR | USDUCUSD | USTEUR | USTUSD | USTUSDC | USTUSDT |
| USUALEUR | USUALUSD | VANRYEUR | VANRYUSD | VELODROMEEUR | VELODROMEUSD |
| VINEEUR | VINEUSD | VIRTUALEUR | VIRTUALUSD | VIRTUALUSDC | VIRTUALUSDT |
| VSNEUR | VSNUSD | VVVEUR | VVVUSD | WALEUR | WALUSD |
| WAVESBTC | WAVESETH | WAVESEUR | WAVESUSD | WAXLEUR | WAXLUSD |
| WBTCBTC | WBTCEUR | WBTCUSD | WCTEUR | WCTUSD | WELLEUR |
| WELLUSD | WENEUR | WENUSD | WEUR | WIFEUR | WIFGBP |
| WIFUSD | WINEUR | WINUSD | WLDEUR | WLDUSD | WOOEUR |
| WOOUSD | WUSD | XCNEUR | XCNUSD | XDGAUD | XDGBTC |
| XDGCAD | XDGEUR | XDGGBP | XDGUSD | XDGUSDC | XDGUSDT |
| XLMAUD | XLMBTC | XLMEUR | XLMGBP | XLMUSD | XMRBTC |
| XMREUR | XMRUSD | XMRUSDC | XMRUSDT | XNYEUR | XNYUSD |
| XRPAUD | XRPBTC | XRPCAD | XRPETH | XRPEUR | XRPGBP |
| XRPJPY | XRPRLUSD | XRPUSD | XRPUSDC | XRPUSDT | XRTEUR |
| XRTUSD | XTZAUD | XTZBTC | XTZETH | XTZEUR | XTZGBP |
| XTZUSD | XTZUSDC | XTZUSDT | YFIAUD | YFIBTC | YFIETH |
| YFIEUR | YFIGBP | YFIUSD | YGGEUR | YGGUSD | ZECBTC |
| ZECEUR | ZECUSD | ZEREBROEUR | ZEREBROUSD | ZETAEUR | ZETAUSD |
| ZEUSEUR | ZEUSUSD | ZEXEUR | ZEXUSD | ZKEUR | ZKUSD |
| ZORAEUR | ZORAUSD | ZROEUR | ZROUSD | ZRXBTC | ZRXEUR |
| ZRXGBP | ZRXUSD |  |  |  |  |

## Example Applications

The Kraken Crypto Price dataset enables you to accurately design strategies for Cryptocurrencies. Examples include the following strategies:

- Buy and hold
- Trading Cryptocurrency volatility and price action
- Allocating a small portion of your portfolio to Cryptocurrencies to hedge against inflation

### Classic Algorithm Example

The following example algorithm buys and holds Bitcoin through the Kraken exchange:

```python
from AlgorithmImports import *

class CoinAPIDataAlgorithm(QCAlgorithm):

    def initialize(self) -> None:
        self.set_start_date(2024, 9, 1)
        self.set_end_date(2024, 12, 31)
        self.universe_settings.asynchronous = True
        self.set_cash(100_000)
        # Kraken accepts both Cash and Margin account types. Select the
        # one you need for the best reality modeling.
        self.set_brokerage_model(BrokerageName.KRAKEN, AccountType.MARGIN)
        # Add BTCUSD data.
        self._btc = self.add_crypto("BTCUSD", Resolution.MINUTE, Market.KRAKEN)
        # Historical data
        history = self.history(self._btc.symbol, 30, Resolution.DAILY)
        # Add a Crypto universe that selects Crypto pairs on Kraken.
        universe = self.add_universe(CryptoUniverse.kraken(self._select_assets))
        # Historical Universe data
        universe_history = self.history(universe, 30, Resolution.DAILY)
        for (universe_symbol, time), universe_day in universe_history.items():
            for universe_item in universe_day:
                symbol = universe_item.symbol
                price = universe_item.close

    def _select_assets(self, universe_day):
        # Filter for materially traded Crypto pairs with significant
        # size and dollar volume, assuming higher capital flow in for
        # higher return.
        return [universe_item.symbol for universe_item in universe_day
                if universe_item.volume >= 100
                and universe_item.volume_in_usd > 10_000_000]

    def on_data(self, slice: Slice) -> None:
        # Speculate-invest all available free cash on BTCUSD, repecting
        # the order quantity restrictions to avoid invalid orders.
        if self.portfolio.cash_book['BTC'].amount != 0:
            return
        # Define a buffer so that we can scale down the order size,
        # avoiding trading errors.
        buffer = max(
            KrakenFeeModel.TAKER_TIER_1_CRYPTO_FEE,
            self.settings.free_portfolio_value_percentage
        )
        quantity = (
            self.portfolio.cash_book['USD'].amount
            / self._btc.ask_price
            * (1-buffer)
        )
        # Check if the quantity exceeds the minimum order size. On
        # Kraken, the minimum order size is measured in the base
        # currency (BTC in this case).
        if abs(quantity) < self._btc.symbol_properties.minimum_order_size:
            return
        self.market_order(self._btc, quantity)
```

### Framework Algorithm Example

The following example algorithm creates a dynamic universe of Crypto pairs on the Kraken exchange and then forms a equal-weighted portfolio of all the pairs in the universe:

```python
from AlgorithmImports import *

class CoinAPIDataAlgorithm(QCAlgorithm):

    def initialize(self) -> None:
        self.set_start_date(2024, 9, 1)
        self.set_end_date(2024, 12, 31)
        self.set_cash(100000)
        self.settings.free_portfolio_value_percentage = 0.05

        # Kraken accepts both Cash and Margin type account, select the one you need for the best reality modeling.
        self.set_brokerage_model(BrokerageName.KRAKEN, AccountType.MARGIN)

        # Warm up the security with the last known price to avoid conversion error
        self.settings.seed_initial_prices = True

        # Get the pairs on Kraken that have USD as the quote currency.
        self._market_pairs = [
            x.key.symbol
            for x in self.symbol_properties_database.get_symbol_properties_list(Market.KRAKEN)
            if x.value.quote_currency == self.account_currency
        ]
        # Add Crypto Universe Selection that select crypto pairs in Kraken exchange
        self.add_universe(CryptoUniverse.kraken(self.universe_selection_filter))

        self.add_alpha(ConstantAlphaModel(InsightType.PRICE, InsightDirection.UP, timedelta(hours=4), 0.025, None))
        # Equally invest to evenly dissipate the capital concentration risk of inidividual crypto pair
        self.set_portfolio_construction(EqualWeightingPortfolioConstructionModel())

    def universe_selection_filter(self, universe_day: List[CryptoUniverse]) -> List[Symbol]:
        # Select pairs where the quote currency is USD.
        pairs = [c for c in universe_day if c.symbol.value in self._market_pairs]
        # Filter for materially traded crypto pairs with significant dollar volume, assuming higher capital flow in for higher return.
        pairs = sorted(pairs, key=lambda c: c.volume_in_usd)[-3:]
        return [c.symbol for c in pairs]

    def on_securities_changed(self, changes: SecurityChanges) -> None:
        for security in changes.added_securities:
            # Historical data
            history = self.history(security.symbol, 30, Resolution.DAILY)
            self.debug(f"We got {len(history)} items from our history request")
```

### Research Example

The following example lists crypto-currency pairs with the greatest dollar volume in the Kraken exchange:

```python
qb = QuantBook()

# Add Cryptocurrency pair
symbol = qb.add_crypto("BTCUSDT", market=Market.KRAKEN).symbol

# Historical data
history = qb.history(symbol, 30, Resolution.DAILY)
for (symbol, time), row in history.iterrows():
    print(f'{time} {symbol} {row.close}')

# Add Crypto Universe Selection
def universe_selection_filter(universe_day):
    selected = sorted([x for x in universe_day
        if x.volume_in_usd and x.volume_in_usd > 10000],
        key=lambda x: x.volume_in_usd, reverse=True)[:5]
    return [x.symbol for x in selected]

universe = qb.add_universe(CryptoUniverse.kraken(universe_selection_filter))

# Historical Universe data
history = qb.universe_history(universe, qb.time-timedelta(30), qb.time)
for (univere_symbol, time), universe_day in history.items():
    print(f'=== {time} ===')
    for universe_item in sorted(universe_day, key=lambda x: x.volume_in_usd, reverse=True):
        print(f"{universe_item.symbol}: {universe_item.volume_in_usd}")
```

## Data Point Attributes

The Kraken Crypto Price dataset provides `TradeBar`, `QuoteBar`, `Tick`, and `CryptoUniverse` objects.

### TradeBar Attributes

`TradeBar` objects have the following attributes:

*Members of `QuantConnect.Data.Market.TradeBar` (JSON): https://www.quantconnect.com/services/inspector?type=T:QuantConnect.Data.Market.TradeBar&language=python*

### QuoteBar Attributes

`QuoteBar` objects have the following attributes:

*Members of `QuantConnect.Data.Market.QuoteBar` (JSON): https://www.quantconnect.com/services/inspector?type=T:QuantConnect.Data.Market.QuoteBar&language=python*

### Tick Attributes

`Tick` objects have the following attributes:

*Members of `QuantConnect.Data.Market.Tick` (JSON): https://www.quantconnect.com/services/inspector?type=T:QuantConnect.Data.Market.Tick&language=python*

### CryptoUniverse Attributes

`CryptoUniverse` objects have the following attributes:

*Members of `QuantConnect.DataSource.CryptoUniverse` (JSON): https://www.quantconnect.com/services/inspector?type=T:QuantConnect.DataSource.CryptoUniverse&language=python*
