@coinbase/cdp-langchain
v0.0.9
Published
Langchain Toolkit extension of CDP Agentkit
Downloads
547
Readme
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. The toolkit provides a wrapper around the CDP SDK, allowing agents to perform onchain operations like transfers, trades, and smart contract interactions.
Prerequisites
- Node.js 18 or higher
- CDP API Key
- OpenAI API Key
Installation
npm install @coinbase/cdp-langchain
Environment Setup
Set the following environment variables:
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
import { CdpToolkit } from "@coinbase/cdp-langchain";
import { CdpAgentkit } from "@coinbase/cdp-agentkit-core";
// Initialize CDP AgentKit
const agentkit = await CdpAgentkit.configureWithWallet();
// Create toolkit
const toolkit = new CdpToolkit(agentkit);
// Get available tools
const tools = toolkit.getTools();
Available Tools
The toolkit provides the following tools:
- get_wallet_details - Get details about the user's Wallet
- get_balance - Get balance for specific assets
- request_faucet_funds - Request test tokens from faucet
- transfer - Transfer assets between addresses
- trade - Trade assets (Mainnet only)
- deploy_token - Deploy ERC-20 token contracts
- mint_nft - Mint NFTs from existing contracts
- deploy_nft - Deploy new NFT contracts
- register_basename - Register a Basename for the wallet
- wow_create_token - Deploy a token using Zora's Wow Launcher (Bonding Curve)
- wow_buy_token - Buy Zora Wow ERC-20 memecoin with ETH
- wow_sell_token - Sell Zora Wow ERC-20 memecoin for ETH
Using with an Agent
import { ChatOpenAI } from "@langchain/openai";
import { HumanMessage } from "@langchain/core/messages";
import { createReactAgent } from "@langchain/langgraph/prebuilt";
// Initialize LLM
const model = new ChatOpenAI({
model: "gpt-4o-mini",
});
// Create agent executor
const agent = createReactAgent({
llm: model,
tools,
});
// Example usage
const result = await agent.invoke({
messages: [new HumanMessage("Send 0.005 ETH to john2879.base.eth")],
});
console.log(result.messages[result.messages.length - 1].content);
CDP Toolkit Specific Features
Wallet Management
The toolkit maintains an MPC wallet that persists between sessions:
// Export wallet data
const walletData = await agentkit.exportWallet();
// Import wallet data
const importedAgentkit = await CdpAgentkit.configureWithWallet({ cdpWalletData: walletData });
Network Support
The toolkit supports multiple networks.
Gasless Transactions
The following operations support gasless transactions on Base Mainnet:
- USDC transfers
- EURC transfers
- cbBTC transfers
Examples
Check out examples/
for inspiration and help getting started:
- Chatbot: Interactive chatbot with onchain capabilities
Contributing
See CONTRIBUTING.md for detailed setup instructions and contribution guidelines.
Security and bug reports
The CDP AgentKit team takes security seriously. See SECURITY.md for more information.
Documentation
License
Apache-2.0