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

    [email protected]:~/cryptofeed$ git log | head -n 1
    commit 6eafd56b98a6a895d7485d46841e908992082e92
    
    [email protected]:~/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.
    
    [email protected]:~/cryptofeed$ pipenv shell
    Launching subshell in virtual environment...
    [email protected]:~/cryptofeed$  . /home/user/.local/share/virtualenvs/cryptofeed-XkEPfgbK/bin/activate
    
    (cryptofeed) [email protected]:~/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) [email protected]:~/cryptofeed$ python -m pip install .
    [... log entries omitted ...]
    Installing collected packages: uvloop, cryptofeed
    Successfully installed cryptofeed-1.7.0 uvloop-0.14.0
    
    (cryptofeed) [email protected]:~/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
Pool funds to bootstrap a Uniswap pair

Seed liquidity A contract to pool funds which are then used to boostrap a new Uniswap liquidity pair. Specification A new SeedLiquidity contract is de

66 Dec 09, 2022
Simple encryption-at-rest with key rotation support for Python.

keyring Simple encryption-at-rest with key rotation support for Python. N.B.: keyring is not for encrypting passwords--for that, you should use someth

Dann Luciano 1 Dec 23, 2021
Cryptocurrency with implementet Blockchain

Cryptocurrency with implementet Blockchain

Mario 1 Mar 24, 2022
Arithmos Cipher is a simple Cryptography that I created myself in Python

Arithmos Cipher is a simple Cryptography that I created myself in Python

LyQuid :3 3 Oct 19, 2022
Bitcoin & Lightning Container Manager for facilitating development tools

Torch-cli Bitcoin & Lightning Container Manager for facilitating development too

Gray Finance 3 Aug 22, 2022
An Etebase (EteSync 2.0) server so you can run your own.

Etebase - Encrypt Everything An Etebase (EteSync 2.0) server so you can run your own. Installation Requirements Etebase requires Python 3.7 or newer a

EteSync & Etebase 1.2k Dec 31, 2022
Vhost password decrypt for python

vhost_password_decrypt Where is symkey.dat Windows:C:\ProgramData\VMware\vCenterServer\cfg\vmware-vpx\ssl\symkey.dat Linux:/etc/vmware-vpx/ssl/symkey.

Jing Ling 152 Dec 22, 2022
How to setup a multi-client ethereum Eth1-Eth2 merge testnet

Mergenet tutorial Let's set up a local eth1-eth2 merge testnet! Preparing the setup environment In this tutorial, we use a series of scripts to genera

Diederik Loerakker 24 Jun 17, 2022
This project aims to assist in the search for leaked passwords while maintaining a high level of privacy using the k-anonymity method.

To achieve this, the APIs of different services are used, sending only a part of the Hash of the password we want to check, for example, the first 5 characters.

Telefónica 36 Jul 06, 2022
This is a Sharding Simulator to study blockchain scalability

Sharding Simulator This is a Sharding Simulator to study blockchain scalability. How to run on Ubuntu First make sure you have the header file for Pyt

1 Jan 23, 2022
Lottery by Ethereum Blockchain

Lottery by Ethereum Blockchain Set your web3 provider url in .env PROVIDER=https://mainnet.infura.io/v3/YOUR-INFURA-TOKEN Create your source file .

John Torres 3 Dec 23, 2021
Python-RSA is a pure-Python RSA implementation.

Pure Python RSA implementation Python-RSA is a pure-Python RSA implementation. It supports encryption and decryption, signing and verifying signatures

Sybren A. Stüvel 418 Jan 04, 2023
A Python module to encrypt and decrypt data with AES-128 CFB mode.

cryptocfb A Python module to encrypt and decrypt data with AES-128 CFB mode. This module supports 8/64/128-bit CFB mode. It can encrypt and decrypt la

Quan Lin 2 Sep 23, 2022
Modeval (or Modular Eval) is a modular and secure string evaluation library that can be used to create custom parsers or interpreters.

modeval Modeval (or Modular Eval) is a modular and secure string evaluation library that can be used to create custom parsers or interpreters. Basic U

2 Jan 01, 2022
Audits Python environments and dependency trees for known vulnerabilities

pip-audit pip-audit is a prototype tool for scanning Python environments for packages with known vulnerabilities. It uses the Python Packaging Advisor

Trail of Bits 701 Dec 28, 2022
This folder contains all the assignment of the course COL759 : Cryptography & Computer Security

Cryptography This folder contains all the assignment of the course COL759 : "Cryptography & Computer Security" Assignment 1 : Encyption, Decryption &

0 Jan 21, 2022
a BTC mining program based on python3

BTC-Miner a BTC mining program based on python3 Our project refers to the nightminer project by ricmoo, which is written in Python2 (https://github.co

6 Jul 31, 2022
This project is a proof of concept to create a dashboard using Dash to display information about various cryptocurrencies.

This project is a WIP as a way to display useful information about cryptocurrencies. It's currently being actively developed as a proof of concept, and a way to visualize more useful data about vario

7 Apr 21, 2022
PyCrypter , A Tool To Encrypt/Decrypt Text/Code With Ease And Safe Using Password !

PyCrypter PyCrypter , A Tool To Encrypt/Decrypt Text/Code With Ease And Safe Using Password ! Requirements pyfiglet And colorama Usage First Clone The

1 Nov 12, 2021
Simple encryption/decryption utility using Pycryptodome module. Working with AES and RSA algorithms.

EncypherUtil Simple encryption/decryption utility using PyCryptodome module. Working with AES and RSA algorithms. THIS UTILITY IS NOT LICENSED AS CRYP

Egor Yakubovich 0 Jun 14, 2022