Get the FREE Ultimate OpenClaw Setup Guide →

cryptofeed

npx machina-cli add skill aiskillstore/marketplace/cryptofeed --openclaw
Files (1)
SKILL.md
6.3 KB

Cryptofeed Skill

Comprehensive assistance with Cryptofeed development - a Python library for handling cryptocurrency exchange data feeds with normalized and standardized results.

When to Use This Skill

This skill should be triggered when:

  • Working with real-time cryptocurrency market data
  • Implementing WebSocket streaming from crypto exchanges
  • Building algorithmic trading systems
  • Processing order book updates, trades, or ticker data
  • Connecting to 40+ cryptocurrency exchanges
  • Using normalized exchange APIs
  • Implementing market data backends (Redis, MongoDB, Kafka, etc.)

Quick Reference

Installation

# Basic installation
pip install cryptofeed

# With all optional backends
pip install cryptofeed[all]

Basic Usage Pattern

from cryptofeed import FeedHandler
from cryptofeed.exchanges import Coinbase, Bitfinex
from cryptofeed.defines import TICKER, TRADES, L2_BOOK

# Define callbacks
def ticker_callback(data):
    print(f"Ticker: {data}")

def trade_callback(data):
    print(f"Trade: {data}")

# Create feed handler
fh = FeedHandler()

# Add exchange feeds
fh.add_feed(Coinbase(
    symbols=['BTC-USD'],
    channels=[TICKER],
    callbacks={TICKER: ticker_callback}
))

fh.add_feed(Bitfinex(
    symbols=['BTC-USD'],
    channels=[TRADES],
    callbacks={TRADES: trade_callback}
))

# Start receiving data
fh.run()

National Best Bid/Offer (NBBO)

from cryptofeed import FeedHandler
from cryptofeed.exchanges import Coinbase, Gemini, Kraken

def nbbo_update(symbol, bid, bid_size, ask, ask_size, bid_feed, ask_feed):
    print(f'Pair: {symbol} Bid: {bid:.2f} ({bid_size:.6f}) from {bid_feed}')
    print(f'Ask: {ask:.2f} ({ask_size:.6f}) from {ask_feed}')

f = FeedHandler()
f.add_nbbo([Coinbase, Kraken, Gemini], ['BTC-USD'], nbbo_update)
f.run()

Supported Exchanges (40+)

Major Exchanges

  • Binance (Spot, Futures, Delivery, US)
  • Coinbase, Kraken (Spot, Futures), Bitfinex
  • Gemini, OKX, Bybit
  • Huobi (Spot, DM, Swap), Gate.io (Spot, Futures)
  • KuCoin, Deribit, BitMEX, dYdX

Additional Exchanges

AscendEX, Bequant, bitFlyer, Bithumb, Bitstamp, Blockchain.com, Bit.com, Bitget, Crypto.com, Delta, EXX, FMFW.io, HitBTC, Independent Reserve, OKCoin, Phemex, Poloniex, ProBit, Upbit

Supported Data Channels

Market Data (Public)

  • L1_BOOK - Top of order book
  • L2_BOOK - Price aggregated sizes
  • L3_BOOK - Price aggregated orders
  • TRADES - Executed trades (taker side)
  • TICKER - Price ticker updates
  • FUNDING - Funding rate data
  • OPEN_INTEREST - Open interest statistics
  • LIQUIDATIONS - Liquidation events
  • INDEX - Index price data
  • CANDLES - Candlestick/K-line data

Authenticated Channels (Private)

  • ORDER_INFO - Order status updates
  • TRANSACTIONS - Deposits and withdrawals
  • BALANCES - Wallet balance updates
  • FILLS - User's executed trades

Supported Backends

Write data directly to storage:

  • Redis (Streams and Sorted Sets)
  • Arctic - Time-series database
  • ZeroMQ, InfluxDB v2, MongoDB
  • Kafka, RabbitMQ, PostgreSQL
  • QuasarDB, GCP Pub/Sub, QuestDB
  • UDP/TCP/Unix Sockets

Key Features

Real-time Data Normalization

Cryptofeed normalizes data across all exchanges, providing consistent:

  • Symbol formatting
  • Timestamp handling
  • Data structures
  • Channel names

WebSocket + REST Fallback

  • Primarily uses WebSockets for real-time data
  • Falls back to REST polling when WebSocket unavailable
  • Automatic reconnection handling

NBBO Aggregation

Create synthetic National Best Bid/Offer feeds by aggregating data across multiple exchanges to find arbitrage opportunities.

Backend Integration

Direct data writing to various storage systems without custom integration code.

Requirements

  • Python: 3.8 or higher
  • Installation: Via pip or from source
  • Optional Dependencies: Install backends as needed

Common Use Cases

Multi-Exchange Price Monitoring

fh = FeedHandler()
fh.add_feed(Binance(symbols=['BTC-USDT'], channels=[TICKER], callbacks=ticker_cb))
fh.add_feed(Coinbase(symbols=['BTC-USD'], channels=[TICKER], callbacks=ticker_cb))
fh.add_feed(Kraken(symbols=['BTC-USD'], channels=[TICKER], callbacks=ticker_cb))
fh.run()

Order Book Depth Analysis

def book_callback(book, receipt_timestamp):
    print(f"Bids: {len(book.book.bids)} | Asks: {len(book.book.asks)}")

fh.add_feed(Coinbase(
    symbols=['BTC-USD'],
    channels=[L2_BOOK],
    callbacks={L2_BOOK: book_callback}
))

Trade Flow Analysis

def trade_callback(trade, receipt_timestamp):
    print(f"{trade.exchange} - {trade.symbol}: {trade.side} {trade.amount} @ {trade.price}")

fh.add_feed(Binance(
    symbols=['BTC-USDT', 'ETH-USDT'],
    channels=[TRADES],
    callbacks={TRADES: trade_callback}
))

Reference Files

This skill includes documentation in references/:

  • getting_started.md - Installation and basic usage
  • README.md - Complete overview and examples

Use view to read specific reference files when detailed information is needed.

Working with This Skill

For Beginners

Start with basic FeedHandler setup and single exchange connections before adding multiple feeds.

For Advanced Users

Explore NBBO feeds, authenticated channels, and backend integrations for production systems.

For Code Examples

See the quick reference section above and the reference files for complete working examples.

Resources

Notes

  • Requires Python 3.8+
  • WebSocket-first approach with REST fallback
  • Normalized data across all exchanges
  • Active development and community support
  • 40+ supported exchanges and growing

Source

git clone https://github.com/aiskillstore/marketplace/blob/main/skills/2025emma/cryptofeed/SKILL.mdView on GitHub

Overview

Cryptofeed is a Python library for handling cryptocurrency exchange data feeds with normalized results. It provides WebSocket streaming of real-time data—order books, trades, and tickers—across 40+ exchanges, with support for backends like Redis, MongoDB, and Kafka for storage and analysis.

How This Skill Works

From a FeedHandler, you subscribe to channels on multiple exchanges with callbacks. Data is normalized for symbols, timestamps, and structures, ensuring consistent analytics across venues. It primarily uses WebSocket streams with a REST fallback, includes automatic reconnection, and can aggregate NBBO data while routing feeds to various backends.

When to Use It

  • Real-time market data from 40+ exchanges for trading strategies
  • WebSocket streaming with automatic reconnection across multiple venues
  • Building algorithmic trading systems that consume trades, tickers, and order books
  • Working with normalized exchange APIs for consistent data across venues
  • Persisting market data to Redis, MongoDB, Kafka, or similar backends

Quick Start

  1. Step 1: pip install cryptofeed
  2. Step 2: from cryptofeed import FeedHandler; from cryptofeed.exchanges import Coinbase, Bitfinex; from cryptofeed.defines import TICKER, TRADES; def ticker_cb(data): print(data); def trade_cb(data): print(data); fh = FeedHandler(); fh.add_feed(Coinbase(symbols=['BTC-USD'], channels=[TICKER], callbacks={TICKER: ticker_cb})); fh.add_feed(Bitfinex(symbols=['BTC-USD'], channels=[TRADES], callbacks={TRADES: trade_cb})); fh.run()
  3. Step 3: Optionally connect to Redis/Mongo/Kafka to persist data

Best Practices

  • Use FeedHandler to manage connections, callbacks, and automatic reconnection
  • Enable NBBO aggregation to synthesize cross-exchange quotes
  • Subscribe to L1/L2/L3_BOOK, TRADES, and TICKER for full market context
  • Persist data early to supported backends (Redis, MongoDB, Kafka, etc.)
  • Handle backpressure and rate limits by buffering or batching callbacks

Example Use Cases

  • Build a cross-exchange NBBO feed and print best bid/ask across venues
  • Stream live TICKER data and TRADES to Redis Streams for quick UI dashboards
  • Ingest L2_BOOK updates into MongoDB for historical depth analysis
  • Route market data into Kafka for real-time analytics and alerting
  • Fallback to REST polling when WebSockets are temporarily unavailable

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers