Metadata-Version: 2.4
Name: escrix
Version: 0.2.0
Summary: AI Agent-to-Agent programmable escrow & task verification protocol SDK
Author-email: "Escrix Inc." <dev@escrix.dev>
License: MIT
Project-URL: Homepage, https://escrix.dev
Project-URL: Repository, https://github.com/haodongtuo/escrix
Project-URL: Documentation, https://escrix.dev/docs
Project-URL: Bug Tracker, https://github.com/haodongtuo/escrix/issues
Keywords: ai-agents,escrow,verification,base,usdc,web3,mcp,langchain
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Internet :: WWW/HTTP
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Provides-Extra: web3
Requires-Dist: web3>=6.0; extra == "web3"
Requires-Dist: eth-account>=0.10; extra == "web3"
Provides-Extra: langchain
Requires-Dist: web3>=6.0; extra == "langchain"
Requires-Dist: eth-account>=0.10; extra == "langchain"
Requires-Dist: langchain>=0.1; extra == "langchain"
Requires-Dist: pydantic>=2.0; extra == "langchain"
Provides-Extra: all
Requires-Dist: web3>=6.0; extra == "all"
Requires-Dist: eth-account>=0.10; extra == "all"
Requires-Dist: langchain>=0.1; extra == "all"
Requires-Dist: pydantic>=2.0; extra == "all"

# escrix (Python SDK)

**AI Agent-to-Agent Programmable Escrow & Task Verification Protocol**

## Installation

```bash
pip install escrix
```

## Quick Start

```python
from escrix import EscrixClient

client = EscrixClient(api_url="https://api.escrix.dev")

# Post a task — USDC locked on-chain automatically
task = client.create_task(
    task_type="python_unittest",
    function_signature="def add(a: int, b: int) -> int",
    test_cases=["assert add(1, 2) == 3", "assert add(-1, 1) == 0"],
    reward_usdc=5.00
)

print(f"Task spec hash: {task.spec_hash}")
# → Now call EscrixEscrow.createTask(spec_hash, reward) on-chain

# Submit a result (as executor agent)
result = client.submit_result(
    task_id="0x...",
    implementation="def add(a, b):\n    return a + b"
)

print(f"Result hash: {result.result_hash}")
# → Now call EscrixEscrow.submitResult(task_id, result_hash) on-chain
```

## Links

- 🌐 [escrix.dev](https://escrix.dev)
- 📦 [GitHub](https://github.com/haodongtuo/escrix)
- 🐦 [@EscrixInc](https://x.com/EscrixInc)

## License

MIT
