cdp-langchain


Namecdp-langchain JSON
Version 0.0.13 PyPI version JSON
download
home_pageNone
SummaryCDP Agentkit Langchain Extension
upload_time2025-01-24 22:54:53
maintainerNone
docs_urlNone
authorJohn Peterson
requires_python<4.0,>=3.10
licenseApache-2.0
keywords coinbase sdk crypto cdp agentkit ai agent langchain toolkit
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # CDP Agentkit Extension - Langchain Toolkit

CDP integration with Langchain to enable agentic workflows using the core primitives defined in `cdp-agentkit-core`.

This toolkit contains tools that enable an LLM agent to interact with the [Coinbase Developer Platform](https://docs.cdp.coinbase.com/). The toolkit provides a wrapper around the CDP SDK, allowing agents to perform onchain operations like transfers, trades, and smart contract interactions.

## Setup

### Prerequisites

- [CDP API Key](https://portal.cdp.coinbase.com/access/api)
- [OpenAI API Key](https://platform.openai.com/docs/quickstart#create-and-export-an-api-key)
- Python 3.10 or higher

### Installation

```bash
pip install cdp-langchain
```

### Environment Setup

Set the following environment variables:

```bash
export CDP_API_KEY_NAME=<your-api-key-name>
export CDP_API_KEY_PRIVATE_KEY=$'<your-private-key>'
export OPENAI_API_KEY=<your-openai-api-key>
export NETWORK_ID=base-sepolia  # Optional: Defaults to base-sepolia
```

## Usage

### Basic Setup

```python
from cdp_langchain.agent_toolkits import CdpToolkit
from cdp_langchain.utils import CdpAgentkitWrapper

# Initialize CDP wrapper
cdp = CdpAgentkitWrapper()

# Create toolkit from wrapper
toolkit = CdpToolkit.from_cdp_agentkit_wrapper(cdp)

# Get available tools
tools = toolkit.get_tools()
for tool in tools:
    print(tool.name)
```

The toolkit provides the following tools:

1.  **address_reputation**       - Retrieve the address's reputation on a given network
2.  **deploy_contract**          - Deploy an arbitrary contract using the Solidity compiler
3.  **deploy_nft**               - Deploy new NFT contracts
4.  **deploy_token**             - Deploy ERC-20 token contracts
5.  **get_balance**              - Get balance for specific assets
6.  **get_balance_nft**          - Get balance for specific NFTs (ERC-721)
7.  **get_wallet_details**       - Get details about the MPC Wallet
8.  **mint_nft**                 - Mint NFTs from existing contracts
9.  **morpho_deposit**           - Deposit into a morpho vault
10. **morpho_withdraw**          - Withdraw from a morpho vault
11. **pyth_fetch_price**         - Fetch the price of a given price feed from Pyth Network
12. **pyth_fetch_price_feed_id** - Fetch the price feed ID for a given token symbol from Pyth Network
13. **register_basename**        - Register a basename for the wallet
14. **request_faucet_funds**     - Request test tokens from faucet
15. **superfluid_create_flow**   - Create a flow using Superfluid
16. **superfluid_update_flow**   - Update a flow using Superfluid
17. **superfluid_delete_flow**   - Delete a flow using Superfluid
18. **trade**                    - Trade assets (Mainnet only)
19. **transfer**                 - Transfer assets between addresses
20. **transfer_nft**             - Transfer an NFT (ERC-721)
21. **wow_buy_token**            - Buy Zora Wow ERC20 memecoin with ETH
22. **wow_create_token**         - Deploy a token using Zora's Wow Launcher (Bonding Curve)
23. **wow_sell_token**           - Sell Zora Wow ERC20 memecoin for ETH
24. **wrap_eth**                 - Wrap ETH to WETH

### Using with an Agent

```python
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent

# Initialize LLM
llm = ChatOpenAI(model="gpt-4o-mini")

# Get tools and create agent
tools = toolkit.get_tools()
agent_executor = create_react_agent(llm, tools)

# Example usage
events = agent_executor.stream(
    {"messages": [("user", "Send 0.005 ETH to john2879.base.eth")]},
    stream_mode="values"
)

for event in events:
    event["messages"][-1].pretty_print()
```
Expected output:
```
Transferred 0.005 of eth to john2879.base.eth.
Transaction hash for the transfer: 0x78c7c2878659a0de216d0764fc87eff0d38b47f3315fa02ba493a83d8e782d1e
Transaction link for the transfer: https://sepolia.basescan.org/tx/0x78c7c2878659a0de216d0764fc87eff0d38b47f3315fa02ba493a83d8e782d1
```

## CDP Toolkit Specific Features

### Wallet Management

The toolkit maintains an MPC wallet that persists between sessions:

```python
# Export wallet data
wallet_data = cdp.export_wallet()

# Import wallet data
values = {"cdp_wallet_data": wallet_data}
cdp = CdpAgentkitWrapper(**values)
```

### Network Support

The toolkit supports [multiple networks](https://docs.cdp.coinbase.com/cdp-sdk/docs/networks).

### Gasless Transactions

The following operations support gasless transactions on Base Mainnet:
- USDC transfers
- EURC transfers
- cbBTC transfers

## Examples

Check out [cdp-langchain/examples](../examples) for inspiration and help getting started!
- [Chatbot Python](../examples/chatbot-python/README.md): Simple example of a Python Chatbot that can perform complex onchain interactions, using OpenAI.

## Contributing

See [CONTRIBUTING.md](../../CONTRIBUTING.md) for detailed setup instructions and contribution guidelines.


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "cdp-langchain",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": "coinbase, sdk, crypto, cdp, agentkit, ai, agent, langchain, toolkit",
    "author": "John Peterson",
    "author_email": "john.peterson@coinbase.com",
    "download_url": "https://files.pythonhosted.org/packages/d6/a1/c6828c4cbdbb27435b864227d2c779a921df636bc3f36e057600a9323769/cdp_langchain-0.0.13.tar.gz",
    "platform": null,
    "description": "# CDP Agentkit Extension - Langchain Toolkit\n\nCDP integration with Langchain to enable agentic workflows using the core primitives defined in `cdp-agentkit-core`.\n\nThis toolkit contains tools that enable an LLM agent to interact with the [Coinbase Developer Platform](https://docs.cdp.coinbase.com/). The toolkit provides a wrapper around the CDP SDK, allowing agents to perform onchain operations like transfers, trades, and smart contract interactions.\n\n## Setup\n\n### Prerequisites\n\n- [CDP API Key](https://portal.cdp.coinbase.com/access/api)\n- [OpenAI API Key](https://platform.openai.com/docs/quickstart#create-and-export-an-api-key)\n- Python 3.10 or higher\n\n### Installation\n\n```bash\npip install cdp-langchain\n```\n\n### Environment Setup\n\nSet the following environment variables:\n\n```bash\nexport CDP_API_KEY_NAME=<your-api-key-name>\nexport CDP_API_KEY_PRIVATE_KEY=$'<your-private-key>'\nexport OPENAI_API_KEY=<your-openai-api-key>\nexport NETWORK_ID=base-sepolia  # Optional: Defaults to base-sepolia\n```\n\n## Usage\n\n### Basic Setup\n\n```python\nfrom cdp_langchain.agent_toolkits import CdpToolkit\nfrom cdp_langchain.utils import CdpAgentkitWrapper\n\n# Initialize CDP wrapper\ncdp = CdpAgentkitWrapper()\n\n# Create toolkit from wrapper\ntoolkit = CdpToolkit.from_cdp_agentkit_wrapper(cdp)\n\n# Get available tools\ntools = toolkit.get_tools()\nfor tool in tools:\n    print(tool.name)\n```\n\nThe toolkit provides the following tools:\n\n1.  **address_reputation**       - Retrieve the address's reputation on a given network\n2.  **deploy_contract**          - Deploy an arbitrary contract using the Solidity compiler\n3.  **deploy_nft**               - Deploy new NFT contracts\n4.  **deploy_token**             - Deploy ERC-20 token contracts\n5.  **get_balance**              - Get balance for specific assets\n6.  **get_balance_nft**          - Get balance for specific NFTs (ERC-721)\n7.  **get_wallet_details**       - Get details about the MPC Wallet\n8.  **mint_nft**                 - Mint NFTs from existing contracts\n9.  **morpho_deposit**           - Deposit into a morpho vault\n10. **morpho_withdraw**          - Withdraw from a morpho vault\n11. **pyth_fetch_price**         - Fetch the price of a given price feed from Pyth Network\n12. **pyth_fetch_price_feed_id** - Fetch the price feed ID for a given token symbol from Pyth Network\n13. **register_basename**        - Register a basename for the wallet\n14. **request_faucet_funds**     - Request test tokens from faucet\n15. **superfluid_create_flow**   - Create a flow using Superfluid\n16. **superfluid_update_flow**   - Update a flow using Superfluid\n17. **superfluid_delete_flow**   - Delete a flow using Superfluid\n18. **trade**                    - Trade assets (Mainnet only)\n19. **transfer**                 - Transfer assets between addresses\n20. **transfer_nft**             - Transfer an NFT (ERC-721)\n21. **wow_buy_token**            - Buy Zora Wow ERC20 memecoin with ETH\n22. **wow_create_token**         - Deploy a token using Zora's Wow Launcher (Bonding Curve)\n23. **wow_sell_token**           - Sell Zora Wow ERC20 memecoin for ETH\n24. **wrap_eth**                 - Wrap ETH to WETH\n\n### Using with an Agent\n\n```python\nfrom langchain_openai import ChatOpenAI\nfrom langgraph.prebuilt import create_react_agent\n\n# Initialize LLM\nllm = ChatOpenAI(model=\"gpt-4o-mini\")\n\n# Get tools and create agent\ntools = toolkit.get_tools()\nagent_executor = create_react_agent(llm, tools)\n\n# Example usage\nevents = agent_executor.stream(\n    {\"messages\": [(\"user\", \"Send 0.005 ETH to john2879.base.eth\")]},\n    stream_mode=\"values\"\n)\n\nfor event in events:\n    event[\"messages\"][-1].pretty_print()\n```\nExpected output:\n```\nTransferred 0.005 of eth to john2879.base.eth.\nTransaction hash for the transfer: 0x78c7c2878659a0de216d0764fc87eff0d38b47f3315fa02ba493a83d8e782d1e\nTransaction link for the transfer: https://sepolia.basescan.org/tx/0x78c7c2878659a0de216d0764fc87eff0d38b47f3315fa02ba493a83d8e782d1\n```\n\n## CDP Toolkit Specific Features\n\n### Wallet Management\n\nThe toolkit maintains an MPC wallet that persists between sessions:\n\n```python\n# Export wallet data\nwallet_data = cdp.export_wallet()\n\n# Import wallet data\nvalues = {\"cdp_wallet_data\": wallet_data}\ncdp = CdpAgentkitWrapper(**values)\n```\n\n### Network Support\n\nThe toolkit supports [multiple networks](https://docs.cdp.coinbase.com/cdp-sdk/docs/networks).\n\n### Gasless Transactions\n\nThe following operations support gasless transactions on Base Mainnet:\n- USDC transfers\n- EURC transfers\n- cbBTC transfers\n\n## Examples\n\nCheck out [cdp-langchain/examples](../examples) for inspiration and help getting started!\n- [Chatbot Python](../examples/chatbot-python/README.md): Simple example of a Python Chatbot that can perform complex onchain interactions, using OpenAI.\n\n## Contributing\n\nSee [CONTRIBUTING.md](../../CONTRIBUTING.md) for detailed setup instructions and contribution guidelines.\n\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "CDP Agentkit Langchain Extension",
    "version": "0.0.13",
    "project_urls": null,
    "split_keywords": [
        "coinbase",
        " sdk",
        " crypto",
        " cdp",
        " agentkit",
        " ai",
        " agent",
        " langchain",
        " toolkit"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0327163c8374db3edf3e0a2896622df151bb0d714ba9b187f13563cfa19d5712",
                "md5": "6b8635bd084947951d94fb1a4bacf01f",
                "sha256": "52f918b0df4f7dae20d29cef3b83bc1239e054ff46721355ab9a8875b2079cc4"
            },
            "downloads": -1,
            "filename": "cdp_langchain-0.0.13-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6b8635bd084947951d94fb1a4bacf01f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 8771,
            "upload_time": "2025-01-24T22:54:52",
            "upload_time_iso_8601": "2025-01-24T22:54:52.857750Z",
            "url": "https://files.pythonhosted.org/packages/03/27/163c8374db3edf3e0a2896622df151bb0d714ba9b187f13563cfa19d5712/cdp_langchain-0.0.13-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d6a1c6828c4cbdbb27435b864227d2c779a921df636bc3f36e057600a9323769",
                "md5": "c85458ad501a4569254a32c44fda8c2e",
                "sha256": "e36badd1a632eb7823b20ef093405b45af185470c79dd2b4a8a7db869d3e2869"
            },
            "downloads": -1,
            "filename": "cdp_langchain-0.0.13.tar.gz",
            "has_sig": false,
            "md5_digest": "c85458ad501a4569254a32c44fda8c2e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 6320,
            "upload_time": "2025-01-24T22:54:53",
            "upload_time_iso_8601": "2025-01-24T22:54:53.821308Z",
            "url": "https://files.pythonhosted.org/packages/d6/a1/c6828c4cbdbb27435b864227d2c779a921df636bc3f36e057600a9323769/cdp_langchain-0.0.13.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-24 22:54:53",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "cdp-langchain"
}
        
Elapsed time: 0.54377s