Skip to main content

CCXT / CCXT Pro tools for Strands Agents

Project description

CCXT Tools (for Strands Agents)

A community tool package that exposes CCXT (and optional CCXT Pro) to Strands Agents via @tool wrappers.

  • Generic method calling: fetch_*, create_order, cancel_order, etc.
  • Optional real-time WebSocket streaming via ccxt.pro (watch_*).

Install

pip install ccxt-tool-strands

Optional: CCXT Pro

CCXT Pro is distributed separately by CCXT.

If you have it available in your environment, ccxt_pro_watch(...) will work. If not, the tool returns a clear ImportError message.

Tools

  • ccxt_generic(...)
    • Call any CCXT exchange method.
  • ccxt_multi_exchange_orderbook(...)
    • Compare best bid/ask across multiple exchanges.
  • ccxt_pro_watch(...)
    • Call ccxt.pro watch_* methods (bounded snapshots).

Usage in a Strands Agent

from strands import Agent

# import tools from the installed package
from ccxt_tool_strands.ccxt_generic import ccxt_generic, ccxt_multi_exchange_orderbook
from ccxt_tool_strands.ccxt_pro import ccxt_pro_watch

agent = Agent(
    model="...",
    tools=[ccxt_generic, ccxt_multi_exchange_orderbook, ccxt_pro_watch],
)

# public market data
agent.tool.ccxt_generic(action="call", exchange="bybit", method="fetch_ticker", args='["BTC/USDT"]')
agent.tool.ccxt_generic(action="call", exchange="bybit", method="fetch_ohlcv", args='["BTC/USDT","1m",null,200]')

# multi-exchange best bid/ask
agent.tool.ccxt_multi_exchange_orderbook(exchanges='["binance","bybit","okx"]', symbol="BTC/USDT")

Authentication (recommended: server-side)

Which env var names should I use?

This package reads credentials from environment variables and passes them into CCXT.

  • Primary (recommended, exchange-agnostic): CCXT_API_KEY / CCXT_SECRET
  • Exchange selection: CCXT_EXCHANGE (e.g. bybit, binance, okx)

This means: even if you switch exchanges, you keep using the same env var names (CCXT_API_KEY, CCXT_SECRET). You only change CCXT_EXCHANGE.

If you already have exchange-specific variables in your shell (e.g. BYBIT_API_KEY), you can either:

  1. Duplicate them into CCXT_API_KEY/CCXT_SECRET (simplest), or
  2. Set small aliases in your shell:
export CCXT_API_KEY="$BYBIT_API_KEY"
export CCXT_SECRET="$BYBIT_API_SECRET"
export CCXT_EXCHANGE=bybit

Set environment variables in the agent runtime:

export CCXT_EXCHANGE=bybit
# Generic (exchange-agnostic) env vars used by ccxt-tool-strands
export CCXT_API_KEY=...
export CCXT_SECRET=...

# Optional convenience aliases (tool will also accept these)
# export BYBIT_API_KEY=...
# export BYBIT_API_SECRET=...
# export BINANCE_API_KEY=...
# export BINANCE_API_SECRET=...
# optional
export CCXT_PASSWORD=...
export CCXT_UID=...
export CCXT_TOKEN=...
export CCXT_DEFAULT_TYPE=swap   # or spot
export CCXT_SANDBOX=true        # optional

Then you can omit exchange= and call authenticated methods:

agent.tool.ccxt_generic(action="call", method="fetch_balance")

Notes

  • Secrets: do not put API keys in client-side apps; keep them in the agent/server environment.
  • Rate limits: CCXT enableRateLimit=True is enabled by default in the tool.

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

ccxt_tool_strands-0.1.8.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

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

ccxt_tool_strands-0.1.8-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file ccxt_tool_strands-0.1.8.tar.gz.

File metadata

  • Download URL: ccxt_tool_strands-0.1.8.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for ccxt_tool_strands-0.1.8.tar.gz
Algorithm Hash digest
SHA256 e0afa732e6662c20ab5fb0d246d88ef764340002f65b2aa994bfdd863d28aba8
MD5 7c1bb3336faad24e3398b7af13a2e493
BLAKE2b-256 349a933a1efa8aac3df7419be2afbca727ad59c87cf004e3db232d51d00fdcc5

See more details on using hashes here.

File details

Details for the file ccxt_tool_strands-0.1.8-py3-none-any.whl.

File metadata

File hashes

Hashes for ccxt_tool_strands-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 ece0e468b682d11f8547c2461484c249599a914e9e1608ad53a5e71e45e5b2ef
MD5 b424b42c5713813a62ed213cf51e37ea
BLAKE2b-256 f9679fa48cf11ff83ce1563bb1fe82881781cc625dd7b524f8e1f8eaf40978bc

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