Skip to main content

PT-BR

A versão traduzida deste README se encontra aqui

CryptoExplorer

Overview

The CryptoExplorer repository offers a unified interface to query blockchain data, monitor trading activities, retrieve exchange price histories, and access Bitcoin network health metrics. Explore and extend the modules to suit your specific use-case.

It enables you to:

  • Retrieve swap transaction data from the blockchain.
  • Extract and convert OHLCV price data via exchanges.
  • Fetch comprehensive Bitcoin on-chain metrics.

Glossary

  • swap: An action performed by a user when executing a trade on a DEX Exchange.
  • txid: Transaction ID.

API Classes & Usage

AccountAPI

This high-level API handler chains multiple providers to retrieve swap transaction data from the blockchain.

Methods:

  • get_wallet_swaps(wallet: str, coin_name: bool = False) Extracts all swap transactions for a wallet. Note: setting the coin_name param to True will include the names of the tokens involved.
  • get_buys(wallet_address: str, asset_name: str = "WBTC") Retrieves buy transactions from the swap data for the specified asset.
  • get_sells(wallet_address: str, asset_name: str = "WBTC") Retrieves sell transactions from the swap data for the specified asset.

Example:

from crypto_explorer import AccountAPI

account_api = AccountAPI(api_key="YOUR_MORALIS_API_KEY", verbose=True)
wallet = "0xYourWalletAddress"

# Retrieve all swap transactions with coin names
swaps = account_api.get_wallet_swaps(wallet, coin_name=True)

# Retrieve buy transactions for asset "WBTC"
buys = account_api.get_buys(wallet, asset_name="WBTC")

# Retrieve sell transactions for asset "WBTC"
sells = account_api.get_sells(wallet, asset_name="WBTC")

BlockscoutAPI

Provides methods to access swap data from the Blockscout API.

Methods:

  • get_transactions(txid: str, coin_name: bool = False) Extracts swap transaction data for a specific txid.
  • get_account_transactions(wallet: str, coin_names: bool = False) Retrieves all swap transactions for a wallet.

Note: setting the coin_name param to True will include the names of the tokens involved.

Example:

from crypto_explorer import BlockscoutAPI

blockscout = BlockscoutAPI(verbose=True)
txid = "0xTransactionIDExample"

# Get swap transaction details for a specific txid
transaction = blockscout.get_transactions(txid, coin_name=True)

# Get all swap transactions for a wallet
wallet_tx = blockscout.get_account_transactions("0xYourWalletAddress", coin_names=True)

MoralisAPI

Extracts swap transactions and historical token balance data using the Moralis API.

Methods:

  • get_account_swaps(wallet: str, coin_name: bool = False, add_summary: bool = False) Retrieves all swap transactions (swaps) for a wallet. Note: setting the coin_name param to True will include the names of the tokens involved. Note 2: setting the add_summary param to True will includes transaction summaries.
  • get_wallet_token_balances_history(wallet_address: str, token_address: str, kwargs) Retrieves a wallet’s historical token balances to track portfolio changes.

Example:

from crypto_explorer import MoralisAPI

moralis = MoralisAPI(verbose=True, api_key="YOUR_MORALIS_API_KEY")
wallet = "0xYourWalletAddress"

# Get swap transactions with coin names and summary
swaps = moralis.get_account_swaps(wallet, coin_name=True, add_summary=True)

# Get historical token balances (portfolio history)
history = moralis.get_wallet_token_balances_history(wallet, token_address="0xTokenAddress")

CcxtAPI

Retrieves OHLCV (price) market data from exchanges via the CCXT library.

Methods:

  • get_all_klines(until: int | None = None) Extracts OHLCV price data for the configured symbol and timeframe.
  • to_OHLCV() Converts the fetched OHLCV data into a pandas DataFrame. Note: Call get_all_klines before to_OHLCV to avoid a ValueError.

Example:

import ccxt
from crypto_explorer import CcxtAPI

# Create a CCXT API instance for BTCUSDT on Binance
ccxt_api = CcxtAPI("BTCUSDT", "2h", ccxt.binance(), verbose="Text")

# Fetch OHLCV price data
ccxt_api.get_all_klines()

# Convert fetched data to a DataFrame
ohlcv_df = ccxt_api.to_OHLCV().data_frame
print(ohlcv_df)

QuickNodeAPI

Extracts Bitcoin on-chain information using QuickNode endpoints.

Methods:

  • get_blockchain_info() Extracts general on-chain Bitcoin information such as network type, block height, sync progress, and protocol upgrade status.
  • get_block_stats(block_height: int) Extracts detailed Bitcoin block statistics including transaction fees, size metrics, UTXO changes, SegWit data, and economic figures (in satoshis).

Example:

from crypto_explorer import QuickNodeAPI

# List your QuickNode API URLs
api_keys = ["https://your.quicknode.endpoint"]

quicknode = QuickNodeAPI(api_keys, default_api_key_idx=0)

# Retrieve general Bitcoin blockchain information
info = quicknode.get_blockchain_info()
print(info)

# Retrieve statistics for a specific Bitcoin block
block_stats = quicknode.get_block_stats(680000)
print(block_stats)

Repository Structure

  • api/:

    • account_api.py: Manages API handlers and chaining via the AccountAPI.
    • blockscout_api.py: Contains the BlockscoutAPI for accessing blockchain swap data.
    • ccxt_api.py: Provides the CcxtAPI to extract market data (OHLCV) from exchanges.
    • moralis_api.py: Implements the MoralisAPI for querying swap transactions and wallet token balances.
    • quicknode_api.py: Contains the QuickNodeAPI for Bitcoin on-chain information.
    • tests/: Unit tests for modules in the api/ directory.
  • custom_exceptions/: Custom exception classes.

  • utils/: Utility functions and classes (e.g., time conversions, logging, kline utilities).

  • tests/: General unit tests for repository functionality.

Tests

All unit tests are inside the tests/ directory

To run the tests, execute:

cd src
python -m pytest ./tests

Setup & Installation

  1. Clone the repository:
git clone https://github.com/m-marqx/CryptoExplorer.git
cd CryptoExplorer
  1. Install dependencies:
pip install -r requirements.txt

Note: Ensure you are using Python 3.10 or greater.

Contributing

Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.

Metadata

Release files for CryptoExplorer 1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for CryptoExplorer 1.3
File Size Uploaded
cryptoexplorer-1.3.tar.gz 18.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for CryptoExplorer 1.3
File Interpreter ABI Platform
cryptoexplorer-1.3-py3-none-any.whl Python 3 none any Details

Total release size: 41.1 kB

Release files / cryptoexplorer-1.3.tar.gz

Download URL cryptoexplorer-1.3.tar.gz
Size 18.2 kB
Tags Source
SHA-256 checksum
How to use checksums
51cc5d3f4cacb3f36db90be727434cf29dbcc35188d952c6c9813ab0f1d13342
BLAKE2b-256 checksum
How to use checksums
a57d31edd04cff485fb7075e3a50cc25155f6820939962db45266e7fccc6b64c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / cryptoexplorer-1.3-py3-none-any.whl

Download URL cryptoexplorer-1.3-py3-none-any.whl
Size 22.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ab656f90776a9955d7f8152f2fe667c1e40162dc9af94c0a121aa226b406a25c
BLAKE2b-256 checksum
How to use checksums
48a6f9e1e2fb569852d15888bb7dc8153654b0d0b3fb9b8533b1ce72a9e0c0f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release history Release notifications | RSS feed

This release

1.3 This release

2 release files

1.2.1

2 release files

1.2

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page