langchain-route402


Namelangchain-route402 JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryLangChain integration for Route402 - USDC payments for AI agents
upload_time2025-10-06 09:54:09
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords agents ai crypto langchain payments route402 usdc
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # LangChain Route402 Integration

Enable your LangChain agents to make autonomous USDC payments on Base blockchain.

## Installation

```bash
pip install langchain-route402
```

## Quick Start

```python
from langchain_route402 import Route402Toolkit
from langchain.agents import AgentExecutor, create_react_agent
from langchain_openai import ChatOpenAI
from langchain import hub

# Get Route402 API key from https://route402.com
toolkit = Route402Toolkit(api_key="apk_your_key_here")

# Create agent with payment capabilities
llm = ChatOpenAI(temperature=0)
prompt = hub.pull("hwchase17/react")
agent = create_react_agent(llm, toolkit.get_tools(), prompt)
agent_executor = AgentExecutor(agent=agent, tools=toolkit.get_tools(), verbose=True)

# Agent can now make payments autonomously
result = agent_executor.invoke({
    "input": "Pay 0.05 USDC to 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb for the premium signal"
})
```

## Features

- ✅ **Autonomous Payments**: Agents can send USDC without human intervention
- ✅ **Fast**: Payments confirmed in ~25 seconds
- ✅ **Reliable**: 0% failure rate (CONFIRMED status only)
- ✅ **Low Cost**: 0.5% fee (50 basis points)
- ✅ **Base Blockchain**: Native USDC on Base L2 (low gas fees)

## Use Cases

### 1. AI Trading Bot Buying Signals

```python
from langchain_route402 import Route402PaymentTool
from langchain_openai import ChatOpenAI
from langchain.agents import initialize_agent

# Initialize tool
payment_tool = Route402PaymentTool(api_key="apk_your_key")

# Create agent
llm = ChatOpenAI(temperature=0)
agent = initialize_agent(
    tools=[payment_tool],
    llm=llm,
    agent="zero-shot-react-description",
    verbose=True
)

# Agent decides when to buy signals
agent.run(
    "Monitor the market. If BTC drops below $95k, "
    "buy the premium signal from 0x742d35... for 0.05 USDC"
)
```

### 2. Research Agent Paying for Data

```python
# Agent autonomously pays for premium data when needed
result = agent_executor.invoke({
    "input": (
        "Research the latest AI developments. "
        "If you need premium research papers, pay 0.10 USDC to "
        "the academic API at 0x55ee389d..."
    )
})
```

### 3. Multi-Agent Marketplace

```python
from langchain.agents import Agent

# Seller agent
seller = Agent(
    tools=[Route402CheckPaymentTool(api_key="apk_seller")],
    llm=llm
)

# Buyer agent
buyer = Agent(
    tools=[Route402PaymentTool(api_key="apk_buyer")],
    llm=llm
)

# Autonomous negotiation + payment
buyer.run("Negotiate with seller, then pay for the service if price < 1 USDC")
```

## Tools

### `route402_payment`

Make USDC payments on Base blockchain.

**Inputs:**
- `seller` (str): Ethereum address receiving payment (0x...)
- `amount` (str): Amount in USDC (e.g., "0.05" = 5 cents)
- `reference` (str, optional): Tracking reference

**Returns:**
- Payment ID
- Transaction hash
- Confirmation status

**Example:**
```python
from langchain_route402 import Route402PaymentTool

tool = Route402PaymentTool(api_key="apk_your_key")
result = tool._run(
    seller="0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
    amount="0.05",
    reference="signal-purchase-123"
)
print(result)
# ✅ Payment created successfully!
# Payment ID: pay_abc123
# Amount: 0.05 USDC
# Fee: 0.00025 USDC
# Net to seller: 0.04975 USDC
# Status: CONFIRMED
# ✅ Payment confirmed on blockchain
```

### `route402_check_payment`

Check payment status by ID.

**Inputs:**
- `payment_id` (str): Payment ID from route402_payment

**Returns:**
- Payment status
- Transaction hash
- Confirmation time

**Example:**
```python
from langchain_route402 import Route402CheckPaymentTool

tool = Route402CheckPaymentTool(api_key="apk_your_key")
result = tool._run(payment_id="pay_abc123")
print(result)
# Payment pay_abc123
# Status: CONFIRMED
# Amount: 0.05 USDC
# Seller: 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb
# TX: https://basescan.org/tx/0x...
# ✅ Confirmed at 2025-01-15 10:00:25
```

## Integration with Existing Agents

### Add to OpenAI Functions Agent

```python
from langchain.agents import create_openai_functions_agent
from langchain_route402 import Route402Toolkit

toolkit = Route402Toolkit(api_key="apk_your_key")

agent = create_openai_functions_agent(
    llm=ChatOpenAI(model="gpt-4", temperature=0),
    tools=toolkit.get_tools(),
    prompt=prompt
)
```

### Add to ReAct Agent

```python
from langchain.agents import create_react_agent
from langchain_route402 import Route402Toolkit

toolkit = Route402Toolkit(api_key="apk_your_key")

agent = create_react_agent(
    llm=ChatOpenAI(temperature=0),
    tools=toolkit.get_tools(),
    prompt=prompt
)
```

### Add to Conversational Agent

```python
from langchain.agents import create_conversational_agent
from langchain_route402 import Route402Toolkit

toolkit = Route402Toolkit(api_key="apk_your_key")

agent = create_conversational_agent(
    llm=ChatOpenAI(temperature=0),
    tools=toolkit.get_tools(),
    prompt=prompt
)
```

## Budget Control

Control agent spending with custom logic:

```python
class BudgetControlledAgent:
    def __init__(self, api_key: str, daily_limit: float = 10.0):
        self.toolkit = Route402Toolkit(api_key=api_key)
        self.daily_limit = daily_limit
        self.spent_today = 0.0

    def can_spend(self, amount: float) -> bool:
        """Check if agent can spend this amount"""
        return (self.spent_today + amount) <= self.daily_limit

    def execute_payment(self, seller: str, amount: str, reference: str = None):
        """Execute payment with budget check"""
        amount_float = float(amount)

        if not self.can_spend(amount_float):
            return f"❌ Budget exceeded. Spent: ${self.spent_today}, Limit: ${self.daily_limit}"

        tool = Route402PaymentTool(api_key=self.toolkit.api_key)
        result = tool._run(seller=seller, amount=amount, reference=reference)

        if "✅ Payment created" in result:
            self.spent_today += amount_float

        return result

# Usage
agent = BudgetControlledAgent(api_key="apk_your_key", daily_limit=5.0)
agent.execute_payment(seller="0x742d35...", amount="0.05")
```

## Error Handling

```python
from route402.exceptions import APIError, ValidationError, PaymentError

try:
    result = payment_tool._run(
        seller="0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
        amount="0.05"
    )
except ValidationError as e:
    print(f"Invalid input: {e}")
except APIError as e:
    print(f"API error: {e.message} (status {e.status_code})")
except PaymentError as e:
    print(f"Payment failed: {e}")
```

## Requirements

- Python 3.8+
- `route402>=0.1.0`
- `langchain>=0.1.0`
- `langchain-core>=0.1.0`

## Get Route402 API Key

1. Visit [route402.com](https://route402.com)
2. Connect your wallet
3. Generate API key
4. Fund your wallet with USDC on Base

## Links

- **Website:** https://route402.com
- **Documentation:** https://docs.route402.com
- **API Reference:** https://docs.route402.com/api
- **Base SDK:** https://pypi.org/project/route402/
- **GitHub:** https://github.com/route402/route402
- **Support:** hello@route402.com

## License

MIT

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "langchain-route402",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "agents, ai, crypto, langchain, payments, route402, usdc",
    "author": null,
    "author_email": "Route402 <hello@route402.com>",
    "download_url": "https://files.pythonhosted.org/packages/6c/e4/f1d7bf14749024de34f6ea73a29c439e687f7bfeb8433eaf86ef284bc138/langchain_route402-0.1.0.tar.gz",
    "platform": null,
    "description": "# LangChain Route402 Integration\n\nEnable your LangChain agents to make autonomous USDC payments on Base blockchain.\n\n## Installation\n\n```bash\npip install langchain-route402\n```\n\n## Quick Start\n\n```python\nfrom langchain_route402 import Route402Toolkit\nfrom langchain.agents import AgentExecutor, create_react_agent\nfrom langchain_openai import ChatOpenAI\nfrom langchain import hub\n\n# Get Route402 API key from https://route402.com\ntoolkit = Route402Toolkit(api_key=\"apk_your_key_here\")\n\n# Create agent with payment capabilities\nllm = ChatOpenAI(temperature=0)\nprompt = hub.pull(\"hwchase17/react\")\nagent = create_react_agent(llm, toolkit.get_tools(), prompt)\nagent_executor = AgentExecutor(agent=agent, tools=toolkit.get_tools(), verbose=True)\n\n# Agent can now make payments autonomously\nresult = agent_executor.invoke({\n    \"input\": \"Pay 0.05 USDC to 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb for the premium signal\"\n})\n```\n\n## Features\n\n- \u2705 **Autonomous Payments**: Agents can send USDC without human intervention\n- \u2705 **Fast**: Payments confirmed in ~25 seconds\n- \u2705 **Reliable**: 0% failure rate (CONFIRMED status only)\n- \u2705 **Low Cost**: 0.5% fee (50 basis points)\n- \u2705 **Base Blockchain**: Native USDC on Base L2 (low gas fees)\n\n## Use Cases\n\n### 1. AI Trading Bot Buying Signals\n\n```python\nfrom langchain_route402 import Route402PaymentTool\nfrom langchain_openai import ChatOpenAI\nfrom langchain.agents import initialize_agent\n\n# Initialize tool\npayment_tool = Route402PaymentTool(api_key=\"apk_your_key\")\n\n# Create agent\nllm = ChatOpenAI(temperature=0)\nagent = initialize_agent(\n    tools=[payment_tool],\n    llm=llm,\n    agent=\"zero-shot-react-description\",\n    verbose=True\n)\n\n# Agent decides when to buy signals\nagent.run(\n    \"Monitor the market. If BTC drops below $95k, \"\n    \"buy the premium signal from 0x742d35... for 0.05 USDC\"\n)\n```\n\n### 2. Research Agent Paying for Data\n\n```python\n# Agent autonomously pays for premium data when needed\nresult = agent_executor.invoke({\n    \"input\": (\n        \"Research the latest AI developments. \"\n        \"If you need premium research papers, pay 0.10 USDC to \"\n        \"the academic API at 0x55ee389d...\"\n    )\n})\n```\n\n### 3. Multi-Agent Marketplace\n\n```python\nfrom langchain.agents import Agent\n\n# Seller agent\nseller = Agent(\n    tools=[Route402CheckPaymentTool(api_key=\"apk_seller\")],\n    llm=llm\n)\n\n# Buyer agent\nbuyer = Agent(\n    tools=[Route402PaymentTool(api_key=\"apk_buyer\")],\n    llm=llm\n)\n\n# Autonomous negotiation + payment\nbuyer.run(\"Negotiate with seller, then pay for the service if price < 1 USDC\")\n```\n\n## Tools\n\n### `route402_payment`\n\nMake USDC payments on Base blockchain.\n\n**Inputs:**\n- `seller` (str): Ethereum address receiving payment (0x...)\n- `amount` (str): Amount in USDC (e.g., \"0.05\" = 5 cents)\n- `reference` (str, optional): Tracking reference\n\n**Returns:**\n- Payment ID\n- Transaction hash\n- Confirmation status\n\n**Example:**\n```python\nfrom langchain_route402 import Route402PaymentTool\n\ntool = Route402PaymentTool(api_key=\"apk_your_key\")\nresult = tool._run(\n    seller=\"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb\",\n    amount=\"0.05\",\n    reference=\"signal-purchase-123\"\n)\nprint(result)\n# \u2705 Payment created successfully!\n# Payment ID: pay_abc123\n# Amount: 0.05 USDC\n# Fee: 0.00025 USDC\n# Net to seller: 0.04975 USDC\n# Status: CONFIRMED\n# \u2705 Payment confirmed on blockchain\n```\n\n### `route402_check_payment`\n\nCheck payment status by ID.\n\n**Inputs:**\n- `payment_id` (str): Payment ID from route402_payment\n\n**Returns:**\n- Payment status\n- Transaction hash\n- Confirmation time\n\n**Example:**\n```python\nfrom langchain_route402 import Route402CheckPaymentTool\n\ntool = Route402CheckPaymentTool(api_key=\"apk_your_key\")\nresult = tool._run(payment_id=\"pay_abc123\")\nprint(result)\n# Payment pay_abc123\n# Status: CONFIRMED\n# Amount: 0.05 USDC\n# Seller: 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb\n# TX: https://basescan.org/tx/0x...\n# \u2705 Confirmed at 2025-01-15 10:00:25\n```\n\n## Integration with Existing Agents\n\n### Add to OpenAI Functions Agent\n\n```python\nfrom langchain.agents import create_openai_functions_agent\nfrom langchain_route402 import Route402Toolkit\n\ntoolkit = Route402Toolkit(api_key=\"apk_your_key\")\n\nagent = create_openai_functions_agent(\n    llm=ChatOpenAI(model=\"gpt-4\", temperature=0),\n    tools=toolkit.get_tools(),\n    prompt=prompt\n)\n```\n\n### Add to ReAct Agent\n\n```python\nfrom langchain.agents import create_react_agent\nfrom langchain_route402 import Route402Toolkit\n\ntoolkit = Route402Toolkit(api_key=\"apk_your_key\")\n\nagent = create_react_agent(\n    llm=ChatOpenAI(temperature=0),\n    tools=toolkit.get_tools(),\n    prompt=prompt\n)\n```\n\n### Add to Conversational Agent\n\n```python\nfrom langchain.agents import create_conversational_agent\nfrom langchain_route402 import Route402Toolkit\n\ntoolkit = Route402Toolkit(api_key=\"apk_your_key\")\n\nagent = create_conversational_agent(\n    llm=ChatOpenAI(temperature=0),\n    tools=toolkit.get_tools(),\n    prompt=prompt\n)\n```\n\n## Budget Control\n\nControl agent spending with custom logic:\n\n```python\nclass BudgetControlledAgent:\n    def __init__(self, api_key: str, daily_limit: float = 10.0):\n        self.toolkit = Route402Toolkit(api_key=api_key)\n        self.daily_limit = daily_limit\n        self.spent_today = 0.0\n\n    def can_spend(self, amount: float) -> bool:\n        \"\"\"Check if agent can spend this amount\"\"\"\n        return (self.spent_today + amount) <= self.daily_limit\n\n    def execute_payment(self, seller: str, amount: str, reference: str = None):\n        \"\"\"Execute payment with budget check\"\"\"\n        amount_float = float(amount)\n\n        if not self.can_spend(amount_float):\n            return f\"\u274c Budget exceeded. Spent: ${self.spent_today}, Limit: ${self.daily_limit}\"\n\n        tool = Route402PaymentTool(api_key=self.toolkit.api_key)\n        result = tool._run(seller=seller, amount=amount, reference=reference)\n\n        if \"\u2705 Payment created\" in result:\n            self.spent_today += amount_float\n\n        return result\n\n# Usage\nagent = BudgetControlledAgent(api_key=\"apk_your_key\", daily_limit=5.0)\nagent.execute_payment(seller=\"0x742d35...\", amount=\"0.05\")\n```\n\n## Error Handling\n\n```python\nfrom route402.exceptions import APIError, ValidationError, PaymentError\n\ntry:\n    result = payment_tool._run(\n        seller=\"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb\",\n        amount=\"0.05\"\n    )\nexcept ValidationError as e:\n    print(f\"Invalid input: {e}\")\nexcept APIError as e:\n    print(f\"API error: {e.message} (status {e.status_code})\")\nexcept PaymentError as e:\n    print(f\"Payment failed: {e}\")\n```\n\n## Requirements\n\n- Python 3.8+\n- `route402>=0.1.0`\n- `langchain>=0.1.0`\n- `langchain-core>=0.1.0`\n\n## Get Route402 API Key\n\n1. Visit [route402.com](https://route402.com)\n2. Connect your wallet\n3. Generate API key\n4. Fund your wallet with USDC on Base\n\n## Links\n\n- **Website:** https://route402.com\n- **Documentation:** https://docs.route402.com\n- **API Reference:** https://docs.route402.com/api\n- **Base SDK:** https://pypi.org/project/route402/\n- **GitHub:** https://github.com/route402/route402\n- **Support:** hello@route402.com\n\n## License\n\nMIT\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "LangChain integration for Route402 - USDC payments for AI agents",
    "version": "0.1.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/route402/route402/issues",
        "Documentation": "https://docs.route402.com",
        "Homepage": "https://route402.com",
        "Repository": "https://github.com/route402/route402"
    },
    "split_keywords": [
        "agents",
        " ai",
        " crypto",
        " langchain",
        " payments",
        " route402",
        " usdc"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0d06f40f2dcb22630057382c2eedd0465d855d7e4f6d77328483ba0351aedc7c",
                "md5": "8646da351e37c03ff73c93ad67427e2f",
                "sha256": "4f96fd8d4ad7afd755b4619db344afc1732a875a239bfcabaf840154a1ed180c"
            },
            "downloads": -1,
            "filename": "langchain_route402-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8646da351e37c03ff73c93ad67427e2f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 6701,
            "upload_time": "2025-10-06T09:54:08",
            "upload_time_iso_8601": "2025-10-06T09:54:08.683426Z",
            "url": "https://files.pythonhosted.org/packages/0d/06/f40f2dcb22630057382c2eedd0465d855d7e4f6d77328483ba0351aedc7c/langchain_route402-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6ce4f1d7bf14749024de34f6ea73a29c439e687f7bfeb8433eaf86ef284bc138",
                "md5": "c02ff3e144f562162c4c2301059b2466",
                "sha256": "5bf8664bf6cb9e8e7e4688d7ec9ce73cf2baa3b737e1a197927f3c8f36e1daa4"
            },
            "downloads": -1,
            "filename": "langchain_route402-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "c02ff3e144f562162c4c2301059b2466",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 10372,
            "upload_time": "2025-10-06T09:54:09",
            "upload_time_iso_8601": "2025-10-06T09:54:09.967344Z",
            "url": "https://files.pythonhosted.org/packages/6c/e4/f1d7bf14749024de34f6ea73a29c439e687f7bfeb8433eaf86ef284bc138/langchain_route402-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-06 09:54:09",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "route402",
    "github_project": "route402",
    "github_not_found": true,
    "lcname": "langchain-route402"
}
        
Elapsed time: 3.50565s