Metadata-Version: 2.4
Name: botchain-sdk-py
Version: 0.1.0
Summary: BOT Chain SDK for Python, featuring Agentic Tooling, MCP, and ALM.
Author: Bot Chain Team
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: web3
Requires-Dist: eth-account
Dynamic: requires-python

# BotChain Python SDK

The official Python SDK for interacting with BOT Chain, an AI-focused Layer 1 ecosystem. This SDK provides complete integration pathways for managing accounts, tokens, concentrated liquidity (BDEX V3), and executing smart contract logic autonomously via our embedded AI Agent integrations.

## Features

- **Core Blockchain Client**: Connect to Mainnet/Testnet easily with full Web3 provider compatibility. Zero-gas transaction sponsorships natively handled.
- **BDEX V3 Concentrated Liquidity**: Manage advanced DeFi interactions.

### AI Agent & MCP Server
This SDK natively supports Model Context Protocol (MCP) integrations for autonomous agents like OpenClaw or Claude Desktop. The embedded Agent Policy Engine ensures strict on-chain safeguards including:
- Hourly rate limits and trade cooldowns.
- Notional USD limits.
- Asset Allowlists.

Agents can discover tools (`get_balance`, `get_quote`, `execute_guarded_swap`) over standard JSON-RPC `stdio`. Run the server locally using the bundled entry point:
```bash
botchain-mcp
```

### Automated Liquidity Management (ALM)
We support on-chain math utilities required to properly route and rebalance Concentrated Liquidity positions automatically. 
- Exact tick conversions and boundaries.
- Precise multi-hop math allowing the SDK to compute optimal swap ratios without trusting off-chain actors.
- Fully atomic rebalances (with Python-level State Recovery for failing swaps).

## Installation

You can install the SDK from source or directly via `pip`:
```bash
pip install botchain-sdk-py
```

## Quick Start

```python
from botchain.client import BotChain
from botchain.tokens import TokenManager

# Initialize Client
client = BotChain(network="mainnet")

# Check token balances
token_mgr = TokenManager(client)
balance = token_mgr.get_balance("0xUSDT_Address", "0xUser_Address")
print(f"USDT Balance: {balance}")
```
