Skip to main content

An abstract, fully-typed, async Python SDK for automated crypto trading. By Tribulnation.

Project description

Tribulnation SDK

An abstract, fully-typed, async Python SDK for automated crypto trading.

Trading Quick Start

from tribulnation.sdk import TradingSDK

sdk = TradingSDK()
mexc = await sdk.market('mexc:spot:BTCUSDT')
dydx = await sdk.market('dydx:perp:BTC-USD')

async for my_trade in mexc.trades_stream():
  print(f'Hedging {my_trade}')
  await dydx.place_order({
    'type': 'LIMIT',
    'qty': -my_trade.qty,
    'price': my_trade.price,
  })

Installation

pip install tribulnation-sdk[mexc, dydx, hyperliquid]

Supported Venues

Enumerating Venues/Exchanges/Markets

venues = await sdk.venues()

venue = await sdk.venue(venues[0])

exchanges = await venue.exchanges()
exchange = await venue.exchange(exchanges[0])

markets = await exchange.markets()
market = await exchange.market(markets[0])

Market IDs

Market IDs have this form: <venue_id>:<exchange_id>:<market_id>.

You can also scope. These are equivalent:

  1. Directly on the SDK:
await sdk.book('mexc:spot:BTCUSDT')
  1. By venue:
venue = await sdk.venue('mexc')
await venue.book('spot:BTCUSDT')
  1. By exchange:
exchange = await venue.exchange('spot')
await exchange.book('BTCUSDT')
  1. By market:
market = await exchange.market('BTCUSDT')
await market.depth()

Market Interface

  • Public data:
    • depth() -> Book: order book
    • depth_stream() -> Stream[Book]: real-time order book updates
    • rules() -> Rules: market rules (tick size, fees, etc.)
  • User data:
    • query_order(id: str) -> OrderState | None
    • open_orders() -> Sequence[OrderState]
    • trades_history(start: datetime, end: datetime) -> AsyncIterable[Sequence[Trade]]
    • trades_stream() -> Stream[Trade]: real-time user trades
    • position() -> Position: base-asset position
  • Trading:
    • place_order(order: Order) -> OrderResponse
    • place_orders(orders: Sequence[Order]) -> Sequence[OrderResponse]
    • cancel_order(id: str) -> Any
    • cancel_orders(ids: Sequence[str])
    • cancel_open_orders()
  • Perpetual markets:
    • index() -> Decimal: index price
    • next_funding() -> FundingRate: next funding rate
    • funding_history(start: datetime, end: datetime) -> AsyncIterable[Sequence[FundingRate]]: market funding rate history
    • funding_payments(start: datetime, end: datetime) -> AsyncIterable[Sequence[FundingPayment]]: your funding payments history
    • position() -> PerpPosition: open base-asset position, including the entry price

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

tribulnation_sdk-1.1.2.tar.gz (25.3 kB view details)

Uploaded Source

Built Distribution

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

tribulnation_sdk-1.1.2-py3-none-any.whl (35.4 kB view details)

Uploaded Python 3

File details

Details for the file tribulnation_sdk-1.1.2.tar.gz.

File metadata

  • Download URL: tribulnation_sdk-1.1.2.tar.gz
  • Upload date:
  • Size: 25.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.10

File hashes

Hashes for tribulnation_sdk-1.1.2.tar.gz
Algorithm Hash digest
SHA256 29feb162b31f5f966c4f9980e2ab7b7c46d58f93e07abd4ab4d895a0b886b0ad
MD5 64e23880fbe5036bd8ca8253922a3efb
BLAKE2b-256 7e7aaf443bd97eaf05f16adb21d459071f2d90ad390d7c34f0cd1fd56996ab7b

See more details on using hashes here.

File details

Details for the file tribulnation_sdk-1.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for tribulnation_sdk-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a1f6541eb40768fdeec1437a3a078464cd051d8a0f1a81ef9d2aa6f485067a26
MD5 edcfde251b8e4df65568b117067e6cf9
BLAKE2b-256 84e01a2d8ab3a3b8f10281e1e9fd1482952cfc4d34ff328c659e9505e96cb6c6

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