Common models and dependencies for crypto projects.
Project description
ByteForge Crypto Commons
A Python library providing common models and utilities for cryptocurrency projects. This library serves as a foundation for building cryptocurrency-related applications by providing standardized data models and types.
Features
- Standardized Data Models: Well-defined Python dataclasses for representing cryptocurrency data
- Type Safety: Full type hints and documentation for all models
- Comprehensive Market Data: Support for various market metrics and statistics
- Flexible Design: Optional fields for extended data while maintaining core required fields
Installation
pip install byteforge-crypto-commons
Usage
Token State
The TokenState class represents the complete state of a cryptocurrency token at a specific moment in time:
from crypto_commons.types.token_state import TokenState
from crypto_commons.types.quote import Quote
import datetime
# Create a quote for USD
quote = Quote(
base_currency="USD",
price=50000.0,
volume_24h=1000000000.0,
percent_change_1h=1.5,
percent_change_24h=5.0,
percent_change_7d=10.0,
percent_change_30d=20.0,
market_cap=1000000000000.0,
last_updated=datetime.datetime.now()
)
# Create a token state
token_state = TokenState(
id=1,
name="Bitcoin",
symbol="BTC",
timestamp=int(datetime.datetime.now().timestamp()),
quote_map={"USD": quote}
)
Quote
The Quote class represents market data for a cryptocurrency in a specific currency:
from crypto_commons.types.quote import Quote
import datetime
quote = Quote(
base_currency="USD",
price=50000.0,
volume_24h=1000000000.0,
percent_change_1h=1.5,
percent_change_24h=5.0,
percent_change_7d=10.0,
percent_change_30d=20.0,
market_cap=1000000000000.0,
last_updated=datetime.datetime.now()
)
TokenInfo
The TokenInfo class represents basic information about a cryptocurrency token:
from crypto_commons.types.token_info import TokenInfo
import datetime
token_info = TokenInfo(
id=1,
rank=1,
name="Bitcoin",
symbol="BTC",
slug="bitcoin",
status=1,
is_active=1,
first_historical_data=datetime.datetime(2010, 7, 17),
last_historical_data=datetime.datetime.now(),
platform=None
)
Data Models
TokenState
Represents the complete state of a cryptocurrency token, including:
- Basic information (id, name, symbol)
- Market data through Quote objects
- Supply metrics (circulating, total, max supply)
- Status indicators (is_active, is_fiat)
- Additional metadata (tags, platform, creation date)
TokenInfo
Represents basic information about a cryptocurrency token, including:
- Core identifiers (id, name, symbol, slug)
- Market rank and status
- Historical data availability
- Platform information (for tokens on other blockchains)
- Active status indicator
Quote
Represents market data for a cryptocurrency in a specific currency, including:
- Price and volume data
- Market capitalization
- Percentage changes over various time periods
- Supply metrics
- Additional market statistics
Requirements
- Python 3.8 or higher
- python-dateutil
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Author
- Jason Byteforge
Project Links
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file byteforge_crypto_commons-0.2.tar.gz.
File metadata
- Download URL: byteforge_crypto_commons-0.2.tar.gz
- Upload date:
- Size: 8.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9640a12708833f6cb4c7757b2c1e90efd84e54cf542b8ff507fbdc82c5b24b3e
|
|
| MD5 |
5ba8fdc602c0b104a09bfbdccec18e4a
|
|
| BLAKE2b-256 |
85e65903fcfe1eb6d145c99cf3681b356b27d7152ac14ed65e47afa572892b2e
|
File details
Details for the file byteforge_crypto_commons-0.2-py3-none-any.whl.
File metadata
- Download URL: byteforge_crypto_commons-0.2-py3-none-any.whl
- Upload date:
- Size: 13.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
709e51e878417dccc91cebe21f0a521a1315600aae4679f02ee935aa253dcb6e
|
|
| MD5 |
fd54567f2ec46ab44ac56e3de1fdf015
|
|
| BLAKE2b-256 |
dd5e4deb896b00ad424098f7de83993ad565303334a514363140340651fd7255
|