A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://python.langchain.com/docs/integrations/tools/cdp_agentkit below:

CDP Agentkit Toolkit | 🦜️🔗 LangChain

CDP Agentkit Toolkit

The CDP Agentkit toolkit contains tools that enable an LLM agent to interact with the Coinbase Developer Platform. The toolkit provides a wrapper around the CDP SDK, allowing agents to perform onchain operations like transfers, trades, and smart contract interactions.

Overview Integration details Class Package Serializable JS support Package latest CdpToolkit cdp-langchain ❌ ❌ Tool features

The toolkit provides the following tools:

  1. get_wallet_details - Get details about the MPC Wallet
  2. get_balance - Get balance for specific assets
  3. request_faucet_funds - Request test tokens from faucet
  4. transfer - Transfer assets between addresses
  5. trade - Trade assets (Mainnet only)
  6. deploy_token - Deploy ERC-20 token contracts
  7. mint_nft - Mint NFTs from existing contracts
  8. deploy_nft - Deploy new NFT contracts
  9. register_basename - Register a basename for the wallet

We encourage you to add your own tools, both using CDP and web2 APIs, to create an agent that is tailored to your needs.

Setup

At a high-level, we will:

  1. Install the langchain package
  2. Set up your CDP API credentials
  3. Initialize the CDP wrapper and toolkit
  4. Pass the tools to your agent with toolkit.get_tools()

To enable automated tracing of individual tools, set your LangSmith API key:

Installation

This toolkit lives in the cdp-langchain package:

%pip install -qU cdp-langchain
Set Environment Variables

To use this toolkit, you must first set the following environment variables to access the CDP APIs to create wallets and interact onchain. You can sign up for an API key for free on the CDP Portal:

import getpass
import os

for env_var in [
"CDP_API_KEY_NAME",
"CDP_API_KEY_PRIVATE_KEY",
]:
if not os.getenv(env_var):
os.environ[env_var] = getpass.getpass(f"Enter your {env_var}: ")


os.environ["NETWORK_ID"] = "base-sepolia"
Instantiation

Now we can instantiate our toolkit:

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


cdp = CdpAgentkitWrapper()


toolkit = CdpToolkit.from_cdp_agentkit_wrapper(cdp)

View available tools:

tools = toolkit.get_tools()
for tool in tools:
print(tool.name)
Use within an agent

We will need a LLM or chat model:

from langchain_openai import ChatOpenAI

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

Initialize the agent with the tools:

from langgraph.prebuilt import create_react_agent

tools = toolkit.get_tools()
agent_executor = create_react_agent(llm, tools)

Example usage:

example_query = "Send 0.005 ETH to john2879.base.eth"

events = agent_executor.stream(
{"messages": [("user", example_query)]},
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
Wallet Management

The toolkit maintains an MPC wallet. The wallet data can be exported and imported to persist between sessions:


wallet_data = cdp.export_wallet()


values = {"cdp_wallet_data": wallet_data}
cdp = CdpAgentkitWrapper(**values)
Network Support

The toolkit supports multiple networks

Gasless Transactions

Some operations support gasless transactions on Base Mainnet:

API reference

For detailed documentation of all CDP features and configurations head to the CDP docs.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4