Skip to main content

BinaryOptionsToolsV2 - Python Package

✨ ChipaEditor — AI-powered algorithmic trading strategy builder: describe your edge, get working CHTL code, backtest it, deploy it. Free to start.

📈 Trade crypto perps, spot & margin on ChipaX — demo mode available.

Discord Python

Python bindings for BinaryOptionsTools - A powerful library for automated binary options trading on PocketOption platform.

Current Status

Available Features:

  • Authentication: Secure connection with automated SSID sanitization.
  • Trading: Instant Buy/Sell operations with real-time result tracking.
  • Account: Balance retrieval, opened/closed deals management.
  • Market Data: Real-time candle subscriptions (tick to 300s), historical data fetching.
  • Resilience: Automated asset gathering, payout synchronization, and robust reconnection logic.
  • Advanced: Raw WebSocket handler API and custom message validators.

How to install

# Clone from GitHub
git clone https://github.com/ChipaDevTeam/BinaryOptionsTools-v2.git
# Or clone from GitLab
# git clone https://gitlab.chipatrade.com/chipadevorg/BinaryOptionsTools-v2.git

cd BinaryOptionsTools-v2/python
git fetch --tags
git checkout "$(git tag -l --sort=-v:refname | head -n 1)"
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
uv pip install .

Option B: Install from Source Automatically

Requires git, a C toolchain, and a Rust toolchain.

uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
# Install via GitHub
uv pip install "git+https://github.com/ChipaDevTeam/BinaryOptionsTools-v2.git@master#subdirectory=python"
# Or install via GitLab
# uv pip install "git+https://gitlab.chipatrade.com/chipadevorg/BinaryOptionsTools-v2.git@master#subdirectory=python"

Supported OS

Currently supported on Windows, Linux, and macOS.

Supported Python versions

Supports Python 3.8 to 3.13.

Docs

Comprehensive Documentation for BinaryOptionsToolsV2

  1. __init__.py

This file initializes the Python module and organizes the imports for both synchronous and asynchronous functionality.

Key Details

  • Imports BinaryOptionsToolsV2: Imports all elements and documentation from the Rust module.
  • Includes Submodules: Imports and exposes pocketoption and tracing modules for user convenience.

Purpose

Serves as the entry point for the package, exposing all essential components of the library.

Inside the pocketoption folder there are 2 main files

  1. asynchronous.py

This file implements the PocketOptionAsync class, which provides an asynchronous interface to interact with Pocket Option.

Key Features of PocketOptionAsync

  • Trade Operations:
    • buy(): Places a buy trade asynchronously.
    • sell(): Places a sell trade asynchronously.
    • check_win(): Checks the outcome of a trade ('win', 'draw', or 'loss').
  • Market Data:
    • candles(): Fetches closed historical candles for an asset.
    • stream_candles(): Streams gap-free live candles (closed plus the currently forming one).
    • ticks(): Fetches recent raw ticks for an asset.
    • get_candles_live(): Streams real-time gap-free candles (closed and currently forming) with historical backfill.
    • get_candles(): (Deprecated) Alias of get_candles_live(); returns the first list of closed candles.
    • history(): Retrieves recent historical data for a specific asset through the dedicated history endpoint.
    • compile_candles(): Compiles custom-period candlesticks from base tick data using strict UTC boundaries.
  • Account Management:
    • balance(): Returns the current account balance.
    • opened_deals(): Lists all open trades.
    • closed_deals(): Lists all closed trades.
    • payouts(): Returns the payout percentage of every asset.
    • payout(asset): Returns the payout percentage of one asset, or None if it is unknown.
  • Real-Time Data:
    • subscribe_symbol(): Provides an asynchronous iterator for real-time candle updates.
    • subscribe_symbol_timed(): Provides an asynchronous iterator for timed real-time candle updates.
    • subscribe_symbol_chunked(): Provides an asynchronous iterator for chunked real-time candle updates.
  • Pending Orders:
    • open_pending_order(): Places a pending limit order.
    • cancel_pending_order(): Cancels a specific pending order by ticket ID.
    • cancel_pending_orders(): Cancels multiple pending orders in a batch.
    • get_pending_deals(): Lists all active pending orders.
    • get_pending_deal(): Retrieves details of a specific pending order.
  • Server Information:
    • server_time(): Gets the current server time.
  • Connection Management:
    • reconnect(): Manually reconnect to the server.
    • shutdown(): Properly close the connection.
  • Advanced / Utilities:
    • wait_for_assets(): Awaits until the assets list is fully loaded from the server.
    • is_demo(): Returns whether the current session is a demo account.
    • is_connected(): Returns connection status.
    • create_raw_handler(): Sets up direct raw WebSocket message listeners with custom validators. Helper Class - AsyncSubscription

Facilitates asynchronous iteration over live data streams, enabling non-blocking operations.

Example Usage

from BinaryOptionsToolsV2.pocketoption import PocketOptionAsync
import asyncio

async def main():
    # Initialize the client
    client = PocketOptionAsync(ssid="your-session-id")

    # Get account balance
    balance = await client.balance()
    print(f"Account Balance: ${balance}")

    # Place a buy trade
    trade_id, deal = await client.buy("EURUSD_otc", 1.0, 60)
    print(f"Trade placed: {deal}")

    # Check result
    result = await client.check_win(trade_id)
    print(f"Trade result: {result}")

    # Subscribe to real-time data
    async for candle in client.subscribe_symbol("EURUSD_otc"):
        print(f"New candle: {candle}")
        break  # Just print one candle for demo

asyncio.run(main())
  1. synchronous.py

This file implements the PocketOption class, a synchronous wrapper around the asynchronous interface provided by PocketOptionAsync.

Key Features of PocketOption

  • Trade Operations:
    • buy(): Places a buy trade using synchronous execution.
    • sell(): Places a sell trade.
    • check_win(): Checks the trade outcome synchronously.
  • Market Data:
    • get_candles_live(): Streams real-time gap-free candles (closed and currently forming) with historical backfill.
    • candles() / get_candles(): (Deprecated) Fetches historical candles (delegates to get_candles_live).
    • history(): Retrieves recent historical data for a specific asset through the dedicated history endpoint.
    • compile_candles(): Compiles custom-period candlesticks from base tick data using strict UTC boundaries.
  • Account Management:
    • balance(): Retrieves account balance.
    • opened_deals(): Lists all open trades.
    • closed_deals(): Lists all closed trades.
    • payout(): Returns payout percentages.
  • Real-Time Data:
    • subscribe_symbol(): Provides a synchronous iterator for live data updates.
    • subscribe_symbol_timed(): Provides a synchronous iterator for timed real-time candle updates.
    • subscribe_symbol_chunked(): Provides a synchronous iterator for chunked real-time candle updates.
  • Pending Orders:
    • open_pending_order(): Places a pending limit order.
    • cancel_pending_order(): Cancels a specific pending order by ticket ID.
    • cancel_pending_orders(): Cancels multiple pending orders in a batch.
    • get_pending_deals(): Lists all active pending orders.
    • get_pending_deal(): Retrieves details of a specific pending order.
  • Server Information:
    • server_time(): Gets the current server time.
  • Connection Management:
    • reconnect(): Manually reconnect to the server.
    • shutdown(): Properly close the connection.
  • Advanced / Utilities:
    • wait_for_assets(): Awaits until the assets list is fully loaded from the server.
    • is_demo(): Returns whether the current session is a demo account.
    • is_connected(): Returns connection status.
    • create_raw_handler(): Sets up direct raw WebSocket message listeners with custom validators. Helper Class - SyncSubscription

Allows synchronous iteration over real-time data streams for compatibility with simpler scripts.

Example Usage

from BinaryOptionsToolsV2.pocketoption import PocketOption
import time

# Initialize the client
client = PocketOption(ssid="your-session-id")

# Get account balance
balance = client.balance()
print(f"Account Balance: ${balance}")

# Place a buy trade
trade_id, deal = client.buy("EURUSD_otc", 1.0, 60)
print(f"Trade placed: {deal}")

# Check result
result = client.check_win(trade_id)
print(f"Trade result: {result}")

# Subscribe to real-time data
stream = client.subscribe_symbol("EURUSD_otc")
for candle in stream:
    print(f"New candle: {candle}")
    break  # Just print one candle for demo
  1. Differences Between PocketOption and PocketOptionAsync
Feature PocketOption (Synchronous) PocketOptionAsync (Asynchronous)
Execution Type Blocking Non-blocking
Use Case Simpler scripts High-frequency or real-time tasks
Performance Slower for concurrent tasks Scales well with concurrent operations

Tracing

The tracing module provides functionality to initialize and manage logging for the application.

Key Functions of Tracing

  • start_logs():
    • Initializes the logging system for the application.
    • Arguments:
      • path (str): Path where log files will be stored.
      • level (str): Logging level (default is "DEBUG").
      • terminal (bool): Whether to display logs in the terminal (default is True).
    • Returns: None
    • Raises: Exception if there's an error starting the logging system.

Example Usage

from BinaryOptionsToolsV2.tracing import start_logs

# Initialize logging
start_logs(path="logs/", level="INFO", terminal=True)

📖 Detailed Examples

Basic Trading Example (Synchronous)

from BinaryOptionsToolsV2.pocketoption import PocketOption
import time

def main():
    # Initialize client
    client = PocketOption(ssid="your-session-id")

    # Get balance
    balance = client.balance()
    print(f"Current Balance: ${balance}")

    # Place a buy trade on EURUSD for 60 seconds with $1
    trade_id, deal = client.buy(asset="EURUSD_otc", amount=1.0, time=60)
    print(f"Trade ID: {trade_id}")
    print(f"Deal Data: {deal}")

    # Wait for trade to complete (60 seconds)
    time.sleep(65)

    # Check the result
    result = client.check_win(trade_id)
    print(f"Trade Result: {result['result']}")  # 'win', 'loss', or 'draw'
    print(f"Profit: ${result.get('profit', 0)}")

if __name__ == "__main__":
    main()

Basic Trading Example (Asynchronous)

from BinaryOptionsToolsV2.pocketoption import PocketOptionAsync
import asyncio

async def main():
    # Initialize client
    client = PocketOptionAsync(ssid="your-session-id")

    # Get balance
    balance = await client.balance()
    print(f"Current Balance: ${balance}")

    # Place a buy trade on EURUSD for 60 seconds with $1
    trade_id, deal = await client.buy(asset="EURUSD_otc", amount=1.0, time=60)
    print(f"Trade ID: {trade_id}")
    print(f"Deal Data: {deal}")

    # Wait for trade to complete (60 seconds)
    await asyncio.sleep(65)

    # Check the result
    result = await client.check_win(trade_id)
    print(f"Trade Result: {result['result']}")  # 'win', 'loss', or 'draw'
    print(f"Profit: ${result.get('profit', 0)}")

if __name__ == "__main__":
    asyncio.run(main())

To fetch historical backfill and stream gap-free live candles in real-time, use get_candles_live(). This method is available in both async and sync clients. It buffers incoming ticks, merges historical data, and yields updated candles (both closed candles and the forming candle).

Async Example:

from BinaryOptionsToolsV2.pocketoption import PocketOptionAsync
import asyncio

async def main():
    async with PocketOptionAsync(ssid="your-session-id") as client:
        # Stream live candles (yields a tuple: closed_candles list, current_forming_candle dict)
        async for closed, forming in client.get_candles_live("EURUSD_otc", period=60, hours=2.0, max_rows=100):
            print(f"Closed candles count: {len(closed)}")
            if forming:
                print(f"Forming Candle Close Price: {forming['close']}")

if __name__ == "__main__":
    asyncio.run(main())

Sync Example:

from BinaryOptionsToolsV2.pocketoption import PocketOption

client = PocketOption(ssid="your-session-id")
# Iterate over live candles
for closed, forming in client.get_candles_live("EURUSD_otc", period=60, hours=2.0, max_rows=100):
    print(f"Closed candles count: {len(closed)}")
    if forming:
        print(f"Forming Candle Close Price: {forming['close']}")

Deprecated Candle Methods

The duplicate candle functions candles() and get_candles() are deprecated and will be removed in a future release.

  • Reason: They only fetch closed historical candles, can introduce gaps when called sequentially during live trading, and do not include the currently forming candle.
  • Compatibility: To preserve backward compatibility, these methods have been redirected to run get_candles_live() internally under the hood (returning the first yielded list of closed candles).

Compiling Custom Period Candles

from BinaryOptionsToolsV2.pocketoption import PocketOptionAsync
import asyncio

async def main():
    client = PocketOptionAsync(ssid="your-session-id")

    # Compile 5-minute candles from 1-minute base data
    # Parameters: asset, custom_period, lookback_period
    candles = await client.compile_candles("EURUSD_otc", 60, 300)

    print(f"Compiled {len(candles)} custom candles")
    if candles:
        print("Latest compiled candle:", candles[-1])

if __name__ == "__main__":
    asyncio.run(main())

Real-Time Data Subscription (Synchronous)

from BinaryOptionsToolsV2.pocketoption import PocketOption
import time

def main():
    client = PocketOption(ssid="your-session-id")

    # Subscribe to real-time candle data
    stream = client.subscribe_symbol("EURUSD_otc")

    print("Listening for real-time candles...")
    for candle in stream:
        print(f"Time: {candle.get('time')}")
        print(f"Open: {candle.get('open')}")
        print(f"High: {candle.get('high')}")
        print(f"Low: {candle.get('low')}")
        print(f"Close: {candle.get('close')}")
        print("---")

if __name__ == "__main__":
    main()

Real-Time Data Subscription (Asynchronous)

from BinaryOptionsToolsV2.pocketoption import PocketOptionAsync
import asyncio

async def main():
    client = PocketOptionAsync(ssid="your-session-id")

    # Subscribe to real-time candle data
    async for candle in client.subscribe_symbol("EURUSD_otc"):
        print(f"Time: {candle.get('time')}")
        print(f"Open: {candle.get('open')}")
        print(f"High: {candle.get('high')}")
        print(f"Low: {candle.get('low')}")
        print(f"Close: {candle.get('close')}")
        print("---")

if __name__ == "__main__":
    asyncio.run(main())

Checking Opened Deals

from BinaryOptionsToolsV2.pocketoption import PocketOption
import time

def main():
    client = PocketOption(ssid="your-session-id")

    # Get all opened deals
    opened_deals = client.opened_deals()

    if opened_deals:
        print(f"You have {len(opened_deals)} opened deals:")
        for deal in opened_deals:
            print(f"  - Trade ID: {deal.get('id')}")
            print(f"    Asset: {deal.get('asset')}")
            print(f"    Amount: ${deal.get('amount')}")
            print(f"    Direction: {deal.get('action')}")
    else:
        print("No opened deals")

if __name__ == "__main__":
    main()

🔑 Important Notes

Connection Initialization

The client automatically establishes a connection during initialization. You can also manually manage the connection using connect(), disconnect(), and reconnect() methods.

# Asynchronous
client = PocketOptionAsync(ssid="your-session-id")
# Connection is already established here

# Manual control
await client.disconnect()
await client.connect()

# Synchronous
client_sync = PocketOption(ssid="your-session-id")
# Connection is already established here

# Manual control
client_sync.disconnect()
client_sync.connect()

Getting Your SSID

  1. Go to PocketOption
  2. Open Developer Tools (F12)
  3. Go to Application/Storage → Cookies
  4. Find the cookie named ssid
  5. Copy its value

Supported Assets

Common assets include:

  • EURUSD_otc - Euro/US Dollar (OTC)
  • GBPUSD_otc - British Pound/US Dollar (OTC)
  • USDJPY_otc - US Dollar/Japanese Yen (OTC)
  • AUDUSD_otc - Australian Dollar/US Dollar (OTC)
  • And many more...

Use _otc suffix for over-the-counter (24/7 available) assets.

📚 Additional Resources

⚠️ Risk Warning

Trading binary options involves substantial risk and may result in the loss of all invested capital. This library is provided for educational purposes only. Always trade responsibly and never invest more than you can afford to lose.

Metadata

Release files for BinaryOptionsToolsV2 0.2.16

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

Source distribution (sdist)

Source distribution for BinaryOptionsToolsV2 0.2.16
File Size Uploaded Provenance
binaryoptionstoolsv2-0.2.16.tar.gz 323.1 kB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for BinaryOptionsToolsV2 0.2.16
File
binaryoptionstoolsv2-0.2.16-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
binaryoptionstoolsv2-0.2.16-cp310-abi3-win32.whl CPython 3.10 abi3 Windows x86-32 Details
binaryoptionstoolsv2-0.2.16-cp310-abi3-musllinux_1_1_x86_64.whl CPython 3.10 abi3 Linux musl 1.1+ x86-64 Details
binaryoptionstoolsv2-0.2.16-cp310-abi3-musllinux_1_1_aarch64.whl CPython 3.10 abi3 Linux musl 1.1+ ARM64 Details
binaryoptionstoolsv2-0.2.16-cp310-abi3-manylinux_2_28_x86_64.whl CPython 3.10 abi3 Linux glibc 2.28+ x86-64 Details
binaryoptionstoolsv2-0.2.16-cp310-abi3-manylinux_2_28_armv7l.whl CPython 3.10 abi3 Linux glibc 2.28+ ARMv7l Details
binaryoptionstoolsv2-0.2.16-cp310-abi3-manylinux_2_28_aarch64.whl CPython 3.10 abi3 Linux glibc 2.28+ ARM64 Details
binaryoptionstoolsv2-0.2.16-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.10 abi3 macOS 11.0+ ARM64, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64 Details

Total release size: 36.4 MB

Release files / binaryoptionstoolsv2-0.2.16.tar.gz

Download URL binaryoptionstoolsv2-0.2.16.tar.gz
Size 323.1 kB
Tags Source
SHA-256 checksum
How to use checksums
065f71204ba1207db28c2279ab5d0a573d4bf26f3aa2dbdbf42d706058621fe3
BLAKE2b-256 checksum
How to use checksums
f7b7053d8f937417884cd5c3b8e973b961f69071213e668b3dea393a708122d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / binaryoptionstoolsv2-0.2.16-cp310-abi3-win_amd64.whl

Download URL binaryoptionstoolsv2-0.2.16-cp310-abi3-win_amd64.whl
Size 4.3 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
0970f04257792a2c62fbb2f8f45e6afc29df5fdf2fb884fc12dac19047d19c53
BLAKE2b-256 checksum
How to use checksums
a39eedbc463af40330ac5e736d23459ff415861cdf91044f37e32c733bda6c77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / binaryoptionstoolsv2-0.2.16-cp310-abi3-win32.whl

Download URL binaryoptionstoolsv2-0.2.16-cp310-abi3-win32.whl
Size 3.7 MB
Tags CPython 3.10 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
cc8ac0b1a6ddefad596b4d83d3917ec64624185a001cfb391587a37c0e0787e3
BLAKE2b-256 checksum
How to use checksums
7db9836d16cdf8e87215505aaaff6032d6ff87151c2f540e8a4707133222f79d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / binaryoptionstoolsv2-0.2.16-cp310-abi3-musllinux_1_1_x86_64.whl

Download URL binaryoptionstoolsv2-0.2.16-cp310-abi3-musllinux_1_1_x86_64.whl
Size 4.2 MB
Tags CPython 3.10 Linux musl 1.1+ x86-64 abi3
SHA-256 checksum
How to use checksums
4af153cdeb99639559f1fe4cad08cb2f0994cfa1e125f8ee26b2d78a3eadbcd1
BLAKE2b-256 checksum
How to use checksums
6bf59ff875a3eaf98737a1dafbb02cdd64c0036ffefdb47865155f910f6edcc8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / binaryoptionstoolsv2-0.2.16-cp310-abi3-musllinux_1_1_aarch64.whl

Download URL binaryoptionstoolsv2-0.2.16-cp310-abi3-musllinux_1_1_aarch64.whl
Size 4.0 MB
Tags CPython 3.10 Linux musl 1.1+ ARM64 abi3
SHA-256 checksum
How to use checksums
7058704d2c6dfdfbf5da49cbd54d49b2df457c111f52ea45ecc42be92611e9a1
BLAKE2b-256 checksum
How to use checksums
7de9c49ba88b62ec03dd5c95fbb70c8ae171cd476a410b13b06daac479fd911c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / binaryoptionstoolsv2-0.2.16-cp310-abi3-manylinux_2_28_x86_64.whl

Download URL binaryoptionstoolsv2-0.2.16-cp310-abi3-manylinux_2_28_x86_64.whl
Size 4.2 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
1d90207a19b7a23412c79a01999224b6ee9c6a2a69ab85e07c843c7b31327c5a
BLAKE2b-256 checksum
How to use checksums
aabc50478274857a4ac9a109afaf09af1e18c6d67b128919ef1f623d3412590c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / binaryoptionstoolsv2-0.2.16-cp310-abi3-manylinux_2_28_armv7l.whl

Download URL binaryoptionstoolsv2-0.2.16-cp310-abi3-manylinux_2_28_armv7l.whl
Size 3.7 MB
Tags CPython 3.10 Linux glibc 2.28+ ARMv7l abi3
SHA-256 checksum
How to use checksums
8b44f886ec1df73ef7d0a12412df3b7e1bdd62f9a59e45a2b9f8cb56e1702aa4
BLAKE2b-256 checksum
How to use checksums
52423dab683ed868b48f17b8a891488b1480925f0495b2e9879d57298eda9606
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / binaryoptionstoolsv2-0.2.16-cp310-abi3-manylinux_2_28_aarch64.whl

Download URL binaryoptionstoolsv2-0.2.16-cp310-abi3-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
fd9b82ac1f3781aa027a2b8279ab57a30e7283d9a77158d5845094704d3191f4
BLAKE2b-256 checksum
How to use checksums
66ea08b8186a64fc92fa5b4a090ef44e05a78fb8257b112a802e01a4e98b0ea8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / binaryoptionstoolsv2-0.2.16-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL binaryoptionstoolsv2-0.2.16-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 8.0 MB
Tags CPython 3.10 abi3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
fb806591cda0eb070a49fd760a616be860675b28ae086499ce248d45d5ea73f4
BLAKE2b-256 checksum
How to use checksums
690776cf0f974c7b58c6ccecf17d010c5183016f845b78b831c057bb066df53d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for BinaryOptionsToolsV2 0.2.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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