Cryptocurrency Exchange Websocket Data Feed Handler

Overview

Cryptocurrency Exchange Feed Handler

License Python Build Status PyPi Codacy Badge

Handles multiple cryptocurrency exchange data feeds and returns normalized and standardized results to client registered callbacks for events like trades, book updates, ticker updates, etc. Utilizes websockets when possible, but can also poll data via REST endpoints if a websocket is not provided.

Supported exchanges

Basic Usage

Create a FeedHandler object and add subscriptions. For the various data channels that an exchange supports, you can supply callbacks for data events, or use provided backends (described below) to handle the data for you. Start the feed handler and you're done!

from cryptofeed import FeedHandler
# not all imports shown for clarity

fh = FeedHandler()

# ticker, trade, and book are user defined functions that
# will be called when ticker, trade and book updates are received
ticker_cb = {TICKER: ticker}
trade_cb = {TRADES: trade}
gemini_cb = {TRADES: trade, L2_BOOK: book}


fh.add_feed(Coinbase(symbols=['BTC-USD'], channels=[TICKER], callbacks=ticker_cb))
fh.add_feed(Bitfinex(symbols=['BTC-USD'], channels=[TICKER], callbacks=ticker_cb))
fh.add_feed(Poloniex(symbols=['BTC-USDT'], channels=[TRADES], callbacks=trade_cb))
fh.add_feed(Gemini(symbols=['BTC-USD', 'ETH-USD'], channels=[TRADES, L2_BOOK], callbacks=gemini_cb))

fh.run()

Please see the examples for more code samples and the documentation for more information about the library usage.

To see an example of an application using cryptofeed to aggregate and store cryptocurrency data to a database, please look at Cryptostore.

National Best Bid/Offer (NBBO)

Cryptofeed also provides a synthetic NBBO (National Best Bid/Offer) feed that aggregates the best bids and asks from the user specified feeds.

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 Price: {bid:.2f} Bid Size: {bid_size:.6f} Bid Feed: {bid_feed} Ask Price: {ask:.2f} Ask Size: {ask_size:.6f} Ask Feed: {ask_feed}')


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

Supported Channels

Cryptofeed supports the following channels from exchanges:

Market Data Channels (Public)

  • L1_BOOK - Top of book
  • L2_BOOK - Price aggregated sizes. Some exchanges provide the entire depth, some provide a subset.
  • L3_BOOK - Price aggregated orders. Like the L2 book, some exchanges may only provide partial depth.
  • TRADES - Note this reports the taker's side, even for exchanges that report the maker side.
  • TICKER
  • FUNDING
  • OPEN_INTEREST - Open interest data.
  • LIQUIDATIONS
  • INDEX
  • CANDLES - Candlestick / K-Line data.

Authenticated Data Channels

  • ORDER_INFO - Order status updates
  • TRANSACTIONS - Real-time updates on account deposits and withdrawals
  • BALANCES - Updates on wallet funds
  • FILLS - User's executed trades

Backends

Cryptofeed supports backend callbacks that will write directly to storage or other interfaces.

Supported Backends:

  • Redis (Streams and Sorted Sets)
  • Arctic
  • ZeroMQ
  • UDP Sockets
  • TCP Sockets
  • Unix Domain Sockets
  • InfluxDB v2
  • MongoDB
  • Kafka
  • Elastic Search
  • RabbitMQ
  • PostgreSQL
  • GCP Pub/Sub
  • VictoriaMetrics

Installation

Note: cryptofeed requires Python 3.7+

Cryptofeed can be installed from PyPi. (It's recommended that you install in a virtual environment of your choosing).

pip install cryptofeed

Cryptofeed has optional dependencies, depending on the backends used. You can install them individually, or all at once. To install Cryptofeed along with all its optional dependencies in one bundle:

pip install cryptofeed[all]

If you wish to clone the repository and install from source, run this command from the root of the cloned repository.

python setup.py install

Alternatively, you can install in 'edit' mode (also called development mode):

python setup.py develop

See more discussion of package installation in INSTALL.md.

Rest API

Cryptofeed supports some REST interfaces for retrieving real-time and historical data. These are integrated into the exchange classes directly. You can view the supported methods by calling the info() method on any exchange.

Future Work

There are a lot of planned features, new exchanges, etc planned! If you'd like to discuss ongoing development, please join the slack or open a thread in the discussions in GitHub.

Contributing

Issues and PRs are welcomed!

Cryptofeed wouldn't be possible without the help of many contributors! I owe them and all other contributors my thanks!

Comments
  • binance bug experiment

    binance bug experiment

    EXPERIMENT - proof of internal orderbook inconsistency

    Relates to Issue https://github.com/bmoscon/cryptofeed/issues/604#issuecomment-899036978

    Tested on Binance DASH-BUSD. Ask limit orders added into book: $195.66 (0.06 DASH) $195.67 (0.06 DASH) - added AFTER starting cryptofeed $195.68 (0.06 DASH) $195.69 (0.06 DASH)

    Snap at 1629025913.852 (truncated book from 26 to 20):
    194.18|13.024, 194.19|1.000, 194.21|2.014, 194.24|2.766, 194.26|3.307, 194.27|5.196, 194.36|3.756, 194.37|5.377, 194.42|3.600, 194.43|37.133, 194.46|10.753, 194.62|0.497, 194.77|9.027, 194.81|2.436, 194.87|3.756, 195.16|53.100, 195.67|0.060, 195.69|164.660, 195.70|0.060, 196.00|67.144
    ERROR. 195.66 not in book but should be!!
    ERROR. 195.68 not in book but should be!!
    

    ^ internal OB top 20 ask levels clearly go up to $196.00 so we would expect all our orders to be in the book.

    The limit orders I added at 195.66, 195.68 BEFORE starting cryptofeed cannot be found (was outside of the first 20 levels in cryptofeed's initial book snapshot collection).

    The limit order at 195.67 added after starting cryptofeed can be found (because binance sent a delta over the WS for this which cryptofeed processed)

    The limit order at 195.69 had more size added to the px level by another participant since starting cryptofeed, so it can be found.

    binance BUG

    What this means: Any orders outside of the initial book snap will NOT be in cryptofeed internal book if: a) the market moves in that direction, and b) those price levels never receive a size change.

    opened by tristan-murfitt-elw 34
  • InfluxDB speed issue

    InfluxDB speed issue

    I know that this problem is NOT a cryptofeed/cryptostore problem, and I can remove post if it's considered too offtopic! I tried asking for this in all the related githubs and forums and have received no answers, so I'm trying here since I expect a lot of people who use cryptofeed to use Influx too, and for the same exact application as me.

    I’m querying BitMEX tick data to process it and aggregate it. Those were my query times (number of rows on the left, query time in hours, minutes and seconds on the right), were every query is 1 month of data:

    9480222, 2:07:46

    12839124, 3:06:02

    17256737, 4:19:54

    13716707, 3:28:37

    12671435, 2:35:27

    11112483, 2:15:53

    17055181, 3:34:21

    21232810, 6:29:42

    16935780, 4:47:56

    Those numbers seem a bit off. The average is around 60-70k rows per minute, 1k rows per second. Since this is my first experience with TS Databases and with Influx, would you consider this performance normal? Do you guys have roughly the same query times? I’m running InfluxDB 1.7.9, Influx Python client 5.2.3, Python 3.7, this was ran from Pycharm, on a MacBook Pro with 16GB Ram. I don’t use any addon like Telegraph or Kapacitor.

    question 
    opened by rbdm-qnt 26
  • How to get Kibana to recognize timestamp? - demo_elastic.py

    How to get Kibana to recognize timestamp? - demo_elastic.py

    Using the demo in the examples, Kibana does not recognize the time field as a timestamp. Do I need to change how it is indexed? Or do I need to create mappings before starting the demo_elastic.py?

    Any help or direction would be much appreciated!

    (This is an amazing project btw!)

    Thank you!

    opened by brizzbane 24
  • Fix Binance snapshot race condition

    Fix Binance snapshot race condition

    Fixes https://github.com/bmoscon/cryptofeed/issues/671

    • [X] - Tested
    • [X] - Changelog updated
    • [X] - Tests run and pass
    • [X] - Flake8 run and all errors/warnings resolved
    • [X] - Contributors file updated (optional)
    opened by jinusean 20
  • Binance futures now has stream limit 200

    Binance futures now has stream limit 200

    Describe the bug Binance futures now has 200 stream limit (2020-10-27) https://binance-docs.github.io/apidocs/futures/en/#change-log

    To Reproduce Use pairs=binance_futures_pairs() the app will freeze without getting any update. I have to make an array of SYMBOLS and remove some from the full list. Full list has 216 symbols.

    bug 
    opened by OnlyC 19
  • Kraken: KeyError: 400?

    Kraken: KeyError: 400?

    Describe the bug From time to time, I get this error message.

    2020-12-05 20:48:42,032 : ERROR : KRAKEN: encountered an exception, reconnecting
    Traceback (most recent call last):
      File "/usr/local/lib/python3.8/dist-packages/cryptofeed-1.6.2-py3.8.egg/cryptofeed/feedhandler.py", line 271, in _connect
        await self._handler(websocket, feed.message_handler, feed.uuid)
      File "/usr/local/lib/python3.8/dist-packages/cryptofeed-1.6.2-py3.8.egg/cryptofeed/feedhandler.py", line 300, in _handler
        await handler(message, self.last_msg[feed_id])
      File "/usr/local/lib/python3.8/dist-packages/cryptofeed-1.6.2-py3.8.egg/cryptofeed/exchange/kraken.py", line 150, in message_handler
        if self.channel_map[msg[0]][0] == 'trade':
    KeyError: 400
    

    To Reproduce Extract of the config file.

        KRAKEN:
            channel_timeouts:
                trades: 90
                l2_book: 90
            retries: -1
            trades: [BCH-BTC,BTC-USD,LTC-BTC]
            l2_book:
                symbols: [BCH-BTC,BTC-USD,LTC-BTC]
                book_delta: true
                book_interval: 100000
    
    storage_interval: 2M
    

    Expected behavior I have no idea what a KeyError: 400 refers to, but it seems that if a key is not existing, it is masking another trouble that might be worth to catch.

    Operating System: Ubuntu 18.04

    Cryptofeed Version 1.6.2

    bug 
    opened by yohplala 17
  • Pipenv installation broken

    Pipenv installation broken

    Describe the bug When installing via git clone and pipenv, the user must also run python3 -m pip install ., running python3 -m pipenv install is not enough (with Python 3.7.5), but the INSTALL.md documention does not mention this.

    The error appears to be that the pipenv install does not result in uvloop (or cryptofeed itself ) being installed.

    To Reproduce

    user@Ubuntu18:~/cryptofeed$ git log | head -n 1
    commit 6eafd56b98a6a895d7485d46841e908992082e92
    
    user@Ubuntu18:~/cryptofeed$ python3.7 -m pipenv install
    Creating a virtualenv for this project...
    Pipfile: /home/user/cryptofeed/Pipfile
    Using /usr/bin/python3.7 (3.7.5) to create virtualenv...
    ⠇ Creating virtual environment...created virtual environment CPython3.7.5.final.0-64 in 433ms
      creator CPython3Posix(dest=/home/user/.local/share/virtualenvs/cryptofeed-XkEPfgbK, clear=False, no_vcs_ignore=False, global=False)
      seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/user/.local/share/virtualenv)
        added seed packages: pip==20.3.1, setuptools==51.0.0, wheel==0.36.1
      activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
    
    ✔ Successfully created virtual environment! 
    Virtualenv location: /home/user/.local/share/virtualenvs/cryptofeed-XkEPfgbK
    Installing dependencies from Pipfile.lock (ba6a78)...
    Ignoring idna-ssl: markers 'python_version < "3.7"' don't match your environment
    Ignoring typing: markers 'python_version < "3.7"' don't match your environment
      🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 64/64 — 00:00:54
    To activate this project's virtualenv, run pipenv shell.
    Alternatively, run a command inside the virtualenv with pipenv run.
    
    user@Ubuntu18:~/cryptofeed$ pipenv shell
    Launching subshell in virtual environment...
    user@Ubuntu18:~/cryptofeed$  . /home/user/.local/share/virtualenvs/cryptofeed-XkEPfgbK/bin/activate
    
    (cryptofeed) user@Ubuntu18:~/cryptofeed$ python examples/demo.py 
    Traceback (most recent call last):
      File "examples/demo.py", line 9, in <module>
        from cryptofeed.pairs import binance_pairs
    ModuleNotFoundError: No module named 'cryptofeed'
    
    (cryptofeed) user@Ubuntu18:~/cryptofeed$ python -m pip install .
    [... log entries omitted ...]
    Installing collected packages: uvloop, cryptofeed
    Successfully installed cryptofeed-1.7.0 uvloop-0.14.0
    
    (cryptofeed) user@Ubuntu18:~/cryptofeed$ python examples/demo.py                                                                              
    Timestamp: 1.609108 Feed: BLOCKCHAIN Pair: BTC-USD Book Bid Size is 189 Ask Size is 113
    Timestamp: 1.609108 Feed: BLOCKCHAIN Pair: ETH-USD Book Bid Size is 58 Ask Size is 28   
    

    Operating System:

    • Ubuntu 18

    Cryptofeed Version

    bug 
    opened by UnitNote 15
  • Connection refactor

    Connection refactor

    • New connection design. Handles rest and websocket connections seamlessly for websocket and REST endpoint exchanges. Will allow exchanges to use more than 1 websocket connection seamlessly.
    • Update BitMax to use their new pro API
    • [X] - Tested
    • [X] - Tests run and pass
    • [X] - Flake8 run and all errors/warnings resolved
    opened by bmoscon 15
  • Problem with InfluxDB and filedKey type for trade ID

    Problem with InfluxDB and filedKey type for trade ID

    When inserting Trades into influxDB the ID field is of type float for Binance and Coinbase while for Poloniex is type string.

    When the program is runing it seems to be doing OK insetring data for all three exchanges but periodically it will produce this error.

    2021-02-24 14:17:08,143 : ERROR : POST to http://localhost:8086/write?db=CryptoDataV2 failed: 400 - {"error":"partial write: field type conflict: input field "id" on measurement "trades-POLONIEX" is type float, already exists as type string dropped=1"}

    To Reproduce f.add_feed(Poloniex(subscription={'TUSD-USDT'], }, callbacks={TRADES: TradeInflux(db_addr, db = db_name , numeric_type=float )}))

    Expected behavior Trade ID type should be consistent for all exchanges. Dropping values because of wrong ID type should be avoided.

    Operating System:

    • rpi4 linux
    bug 
    opened by igorjan 14
  • Explain when Cryptofeed crashes during pairs retrieval

    Explain when Cryptofeed crashes during pairs retrieval

    During the pairs retrieval at startup time, some exchanges may reply an erroneous response. Currently Cryptofeed does not always handle the exception, and crashes.

    Some users think this is a bug in Cryptofeed: https://github.com/bmoscon/cryptofeed/issues/371#issuecomment-751899389

    This PR improves the user experience by providing a clear explanation of the failure.

    opened by olibre 14
  • Binance top of the book (best ask/bid) access.

    Binance top of the book (best ask/bid) access.

    Hello,

    Could you advice me how I access Binance top of the book quotes instead of L2? Top of the book updates real time and L2 each 100ms only.

    Regards, Eugene.

    question 
    opened by elabunsky 13
  • OKX L2-Book's price volume seems  incorrect

    OKX L2-Book's price volume seems incorrect

    Describe the bug

    by using the follow : f.add_feed(OKX(checksum_validation=True, symbols=['BTC-USDT-PERP'], channels=[TRADES, TICKER, FUNDING, OPEN_INTEREST, LIQUIDATIONS, L2_BOOK], callbacks={L2_BOOK: book, TICKER: ticker, LIQUIDATIONS: liquidations, FUNDING: funding, OPEN_INTEREST: oi, TRADES: trade}))

    I try to compare the L2_book to the orderbook on OKX . the price is match, however, the volume attach with the price is incorrect. different coin has different scale up or down.

    To Reproduce just using the demo.py, and just catch one symbol. such as BTC-USDT-PERP. will notice the volume is big differntthan the OKX's website

    Operating System:

    • linux,

    Cryptofeed Version -Dec 21,2022's latest version (v2.3.1)

    bug 
    opened by 9cat 0
  • Funding rate DyDx

    Funding rate DyDx

    Issue/Feature request: Missing funding rate for dydx. I am able to use dydx and call other functions: for example

    pairs = ['ETH-USD-PERP'] f.add_feed(dYdX(symbols=pairs, channels = [TRADES], callbacks= {TRADES: trade}))

    generates ETH/USD data --> exchange: DYDX symbol: ETH-USD-PERP side: sell amount: 2.996 price: 1273.8 id: None type: None timestamp: 1670913339.171

    However funding generates: cryptofeed.exceptions.UnsupportedDataFeed: funding is not supported on DYDX

    Looking at dydx client there is an option to query funding rate using client.get_perpetual_market so I was wondering if this will be included. Thanks!

    Feature Request 
    opened by vijayengineer 0
  • Inconsistent TICKER implementations

    Inconsistent TICKER implementations

    TICKER sometimes means 'bookTicker' (real-time best bid and ask updates), but sometimes 'ticker' (slow, usualy ever second updates with a bunch of extra info like volume in last 24h).

    E.g. on binance it correponds to 'bookTicker':

        websocket_channels = {
        L2_BOOK: 'depth',
        TRADES: 'aggTrade',
        TICKER: 'bookTicker',
        CANDLES: 'kline_',
        BALANCES: BALANCES,
        ORDER_INFO: ORDER_INFO
    }
    

    But on gateio to 'ticker', despite that the 'bookTicker' endpoint is also available on gateio:

    
    websocket_channels = {
         L2_BOOK: 'spot.order_book_update',
         TRADES: 'spot.trades',
         TICKER: 'spot.tickers',
         CANDLES: 'spot.candlesticks'
    }
    
    

    Are there plans to make TICKER, or to maybe have L1_BOOK correspond to 'bookTicker', while TICKER to 'ticker' endpoints?

    bug 
    opened by L1nkus 2
  • Support for Bybit spot websocket endpoints

    Support for Bybit spot websocket endpoints

    Description of code - what bug does this fix / what feature does this add?

    Added support for spot websocket endpoints on Bybit. Current implementation includes trade and orderbook channels.

    Testing

    To connect to a spot endpoint, specify a standardised spot symbol. See example code below, connecting to both spot and perpetual endpoints for trades and orderbook.

    from decimal import Decimal
    from cryptofeed import FeedHandler
    from cryptofeed.exchanges import Bybit
    from cryptofeed.defines import TRADES, L2_BOOK, BID, ASK
    
    
    async def book(book, receipt_timestamp):
        print(f'Book received at {receipt_timestamp} for {book.exchange} - {book.symbol}, with {len(book.book)} entries. Top of book prices: {book.book.asks.index(0)[0]} - {book.book.bids.index(0)[0]}')
        if book.delta:
            print(f"Delta from last book contains {len(book.delta[BID]) + len(book.delta[ASK])} entries.")
        if book.sequence_number:
            assert isinstance(book.sequence_number, int)
    
    
    async def trade(t, receipt_timestamp):
        assert isinstance(t.timestamp, float)
        assert isinstance(t.side, str)
        assert isinstance(t.amount, Decimal)
        assert isinstance(t.price, Decimal)
        assert isinstance(t.exchange, str)
        print(f"Trade received at {receipt_timestamp}: {t}")
    
    
    def main():
        f = FeedHandler()
        f.add_feed(Bybit(symbols=["ETH-USDT", "ETH-USDT-PERP"], channels=[TRADES, L2_BOOK], callbacks={TRADES: trade, L2_BOOK: book}))
        f.run()
    
    
    if __name__ == '__main__':
        main()
    
    • [x] - Tested
    • [x] - Changelog updated
    • [x] - Tests run and pass
    • [x] - Flake8 run and all errors/warnings resolved
    • [x] - Contributors file updated (optional)
    opened by kieran-mackle 2
  • Add Inlock Tokenmarket support

    Add Inlock Tokenmarket support

    • Support REST API only
    • Support on OrderBook, Ticker

    Web: https://inlock.io Public API Doc: https://app.swaggerhub.com/apis/IncomeLocker/Inlock_Public_Tokenmarket_API/ Private API Doc: https://app.swaggerhub.com/apis-docs/IncomeLocker/inlock_retail_api/

    Description of code - what bug does this fix / what feature does this add?

    • [x] - Tested
    • [ ] - Changelog updated
    • [ ] - Tests run and pass
    • [ ] - Flake8 run and all errors/warnings resolved
    • [x] - Contributors file updated (optional)
    opened by prt1999 2
Releases(v2.3.1)
Owner
Bryant Moscon
Bryant Moscon
An automated Risk Management Monitor Bot for ByBit cryptocurrencies exchange.

An automated Risk Management Monitor Bot for ByBit cryptocurrencies exchange that forces all open positions to adhere to a specific risk ratio, defined per asset. It supports USDT Perpetual, Inverse Perpetual and Inverse Futures all on Mainnet and Testnet.

Hadi Aladdin 25 Nov 27, 2022
Calculate your taxes from cryptocurrency gains

CoinTaxman helps you to bring your income from crypto trading, lending, ... into your tax declaration.

Jeppy 118 Dec 26, 2022
A bot for FaucetCrypto a cryptocurrency faucet. The bot can currently claim PTC ads, main reward and all the shortlinks except exe.io and fc.lc.

A bot for the high paying popular cryptocurrency faucet Faucet Crypto. The bot is built using Python and Selenium, currently it is under active develo

Sourav R S 81 Dec 19, 2022
This python module can analyse cryptocurrency news for any number of coins given and return a sentiment. Can be easily integrated with a Trading bot to keep an eye on the news.

Python script that analyses news headline or body sentiment and returns the overall media sentiment of any given coin. It can take multiple coins an

null 185 Dec 22, 2022
GreenDoge is a modern community-centric green cryptocurrency based on a proof-of-space-and-time consensus algorithm.

GreenDoge Blockchain Download GreenDoge blockchain GreenDoge is a modern community-centric green cryptocurrency based on a proof-of-space-and-time con

null 40 Sep 11, 2022
Stor is a community-driven green cryptocurrency based on a proof of space and time consensus algorithm.

Stor Blockchain Stor is a community-driven green cryptocurrency based on a proof of space and time consensus algorithm. For more information, see our

Stor Network 15 May 18, 2022
Run with one command grafana, prometheus, and a python script to collect and display cryptocurrency prices and track your wallet balance.

CryptoWatch Track your favorite crypto coin price and your wallet balance. Install Create .env: ADMIN_USER=admin ADMIN_PASSWORD=admin Configure you

Rafael Zimmermann 13 Dec 13, 2022
Signarly is a cryptocurrency trading bot.

Signarly is a cryptocurrency trading bot.

Zakaria EL Mesaoudi 5 Oct 6, 2022
SHIBgreen is a cryptocurrency forked from Chia and uses the Proof of Space and Time consensus algorithm

SHIBgreen is a cryptocurrency forked from Chia and uses the Proof of Space and Time consensus algorithm

null 13 Jul 13, 2022
Cryptocurrency with implementet Blockchain

Cryptocurrency with implementet Blockchain

Mario 1 Mar 24, 2022
A Docker image for plotting and farming the Chia™ cryptocurrency on one computer or across many.

An easy-to-use WebUI for crypto plotting and farming. Offers Plotman, MadMax, Chiadog, Bladebit, Farmr, and Forktools in a Docker container. Supports Chia, Cactus, Chives, Flax, Flora, HDDCoin, Maize, N-Chain, Staicoin, and Stor among others.

Guy Davis 328 Jan 1, 2023
Python Dash app that tracks whale activity in cryptocurrency markets.

Introduction Welcome! This is a Python-based Dash app meant to track whale activity in buy / sell walls on crypto-currency exchanges (presently just o

Paul Jeffries 549 Dec 25, 2022
This is a simple application to generate HD wallet addresses for cryptocurrency coins.

HD-Wallet-Address This is a mini service to generate addresses in the master HD-Wallet. It will use py_crypto_hd_wallet package as a base. Prerequisit

Amin Abbasi 1 Dec 16, 2021
Cryptocurrency trading bot with a graphical user interface with support for simulations, backtests, optimizations, and running live bots.

Cryptocurrency trading bot with a graphical user interface with support for simulations, backtests, optimizations, and running live bots.

Mihir Shrestha 834 Dec 30, 2022
Python Cryptocurrency with stealth addresses

Python Cryptocurrency with stealth addresses. Goal is to have create a cryptocurency that hides transactions totally. I.E. Cant see ammount sent, to who, or from who.

null 3 Aug 4, 2022
PytoPrice is an automation program to fetch the latest price of a cryptocurrency of your choice at a user-customizable update interval.

PyToPrice (Python Crypto Price) PytoPrice is an automation program to fetch the latest price of a cryptocurrency of your choice at a user-customizable

Peter 1 Jun 16, 2022
💰 An Alfred Workflow that provides current price of cryptocurrency

Coin Ticker for Alfred Workflow An Alfred Workflow that provides current price and status about cryptocurrency from cryptocompare.com. Supports Alfred

Bumsoo Kim (Ian) 14 Nov 17, 2022
Gold(Gold) is a modern cryptocurrency built from scratch, designed to be efficient, decentralized, and secure

gold-blockchain (Gold) Gold(Gold) is a modern cryptocurrency built from scratch, designed to be efficient, decentralized, and secure. Here are some of

zcomputerwiz 3 Mar 9, 2022
Ethereum ETL lets you convert blockchain data into convenient formats like CSVs and relational databases.

Python scripts for ETL (extract, transform and load) jobs for Ethereum blocks, transactions, ERC20 / ERC721 tokens, transfers, receipts, logs, contracts, internal transactions.

Blockchain ETL 2.3k Jan 1, 2023