Skip to main content

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

# Dates/times are stored as unix-timestamp ints (seconds since the epoch)
now_ts = int(datetime.datetime.now().timestamp())

# 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=now_ts
)

# Create a token state
token_state = TokenState(
    id=1,
    name="Bitcoin",
    symbol="BTC",
    timestamp=now_ts,
    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=int(datetime.datetime.now().timestamp())  # unix timestamp
)

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=int(datetime.datetime(2010, 7, 17).timestamp()),  # unix timestamp
    last_historical_data=int(datetime.datetime.now().timestamp()),  # unix timestamp
    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

CryptocurrencyInfo

Rich token metadata (the heavier payload from a cryptocurrency info endpoint), complementing the lightweight TokenInfo. Includes description, logo, tags, date_added / date_launched (unix timestamps), and two nested models:

  • CryptocurrencyPlatform — the on-chain platform a token is deployed on (chain identifiers plus the token's contract address); None for native L1s
  • CryptocurrencyUrls — categorized URL bundle (website, explorer, source code, social, etc.)

Requirements

  • Python 3.8 or higher
  • No third-party dependencies (stdlib only)

License

This project is licensed under the O'Saasy License - see the LICENSE file for details (https://osaasy.dev/).

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

byteforge_crypto_commons-0.6.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

byteforge_crypto_commons-0.6-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file byteforge_crypto_commons-0.6.tar.gz.

File metadata

  • Download URL: byteforge_crypto_commons-0.6.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.11

File hashes

Hashes for byteforge_crypto_commons-0.6.tar.gz
Algorithm Hash digest
SHA256 e8d42764ecc8044a64cf79ee4e2612ea669baf69cc12ee99aee6ac772e960157
MD5 44c16c269998f9a2eaf6916484cbdde0
BLAKE2b-256 e5fc35163d09003f2ead8dae183d04ef378a2b99351b26c6dc7dbdc66c369ed9

See more details on using hashes here.

File details

Details for the file byteforge_crypto_commons-0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for byteforge_crypto_commons-0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 0cb0709607d9568679769bb164ea38d77a59bd66fe6a72dcd97917d18b9442ec
MD5 e5eb61717adbe120e4f8c387c2adb7cf
BLAKE2b-256 4479ed080525b7a9c381e4e553d8e2de4dfa77c96ba37e39e7f8ef2e31e64da1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page