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
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
That Hash will name that hash type! Identify MD5, SHA256 and 300+ other hashes Comes with

Call for translators! We're looking for translators to help translate this spec for everyone! Read this documentation in the following languages 한국어 中

All Contributors 6.8k Jan 05, 2023
Random Pasword Generator Sezar Crypto

Random_Pasword_Generator_Sezar_Crypto Simple Work Main design available in ana_sayfa.ui / ana_sayfa2.py Popup design available in popup.ui / anahtarp

Ahmet Gündoğdu - DRAGO 2 Dec 19, 2021
Bit is Python's fastest Bitcoin library and was designed from the beginning to feel intuitive, be effortless to use, and have readable source code.

Bit is Python's fastest Bitcoin library and was designed from the beginning to feel intuitive, be effortless to use, and have readable source code.

Ofek Lev 1.1k Jan 02, 2023
Historical Crypto Price

Made with Coingecko API, this is a VERY simple python script that asks you the crypto, date and currency you want and then proceeds to give you the price and MarketCap at that precise moment

7 Oct 14, 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 demo is an on-chain NFT auction using smart contracts on the Algorand blockchain.

Algorand Auction Demo This demo is an on-chain NFT auction using smart contracts on the Algorand blockchain. Usage The file auction/operations.py prov

1 Jan 27, 2022
A simple Python tool to help anyone use Liquidity Pools on the BitShares blockchain.

ACCOUNT AND ACTIVE KEY ARE NOT PERSISTENT, YOU WILL NEED TO ENTER THEM EACH TIME YOU LAUNCH THE APP (but not every transaction. that's a win). If / wh

Brendan Jensen 17 Jun 15, 2022
A workshop to build an NFT smart contract on the polygon blockchain

Polygon NFT Workshop This is an interactive workshop that guides you through the steps to deploy an NFT smart contract on the Polygon blockchain. By t

Banjo Obayomi 56 Oct 14, 2022
Encrypt your code without a worry. Stark utilizes the base64, hashlib and Crypto lib to encrypt your code which cannot be decrypted with any online tools.

Stark Encrypt your code without a worry. Stark utilizes the base64, hashlib and Crypto lib to encrypt your code which cannot be decrypted with any onl

cliphd 3 Sep 10, 2021
Scrambler - Useful File/Directory Encryption Program

This is a program that is used to scramble/encrypt files on your computer. Do not use this program to do malicious things with. I am not responsible for any damage that you do with this software.

0 Oct 01, 2021
A community effort to bring back Duino-Coin

Duino-Coin-Revived A community effort to bring back Duino-Coin! Along with reviving the cryptocurrency, we will add many improvements to it, including

1 Dec 22, 2021
A python script for AES Angecryption in Steganography

Angecryption is an encryption or an decryption result from a file to create an other file with the same / or not type.

ISIS 3 Jul 25, 2022
Blockchain with crypto transaction feature

python script that asks users for their name, who they are sending J2 coin too(fictional cryptocurrency) and how much they're sending. it then prints the transaction detail in words and prints the ha

Joshua Stojkovic 2 Jan 10, 2022
BOT para o BombCrypto para infinitas contas em simultâneo!!!

BOT - MultiContas para BombCrypto - v 0.4.0 Funções extras: Envios de notificações via Telegram: Aviso de Inicialização do Bot Aviso de Conclusão de M

Rai Zancanaro 19 Dec 20, 2022
Простой шифратор работающий по ключам.

deCryptor Что это такое? Простой шифратор работающий по ключам и без них. Как пользоваться? СМОТРЕТЬ ИЗОБРАЖЕНИЕ Разработчики Роман Слабицкий - написа

Romanin 2 May 31, 2022
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
A simple Ethereum mining pool

A simple getWork pool for ethereum mining Payouts are still manual. TODO: write payouts when someone mines 10 blocks. Also, make the submit actually

93 Oct 05, 2022
zhash is a simple Python tool which allows to create/crack hashes

zhash zhash is a simple python tool which allows you to crack/create hashes. Below are the list of supported algorithms that zhash can crack Supported

3 May 27, 2022
Image Encryption/Decryption based on Rubik Cube 's principle and AES

Image Encryption/Decryption based on Rubik Cube 's principle and AES Our final project for Theory of Crytography class. Our Image Encryption/Decryptio

Danny 5 Apr 11, 2022