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.
- Node.js 18 or higher
- CDP API Key
- OpenAI API Key
npm install @coinbase/cdp-langchain
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
import { CdpToolkit } from "@coinbase/cdp-langchain";
import { CdpAgentkit } from "@coinbase/cdp-agentkit-core";
// Initialize CDP Agentkit
const agentkit = CdpAgentkit.configureWithWallet();
// Create toolkit
const toolkit = new CdpToolkit(agentkit);
// Get available tools
const tools = toolkit.getTools();
The toolkit provides the following tools:
- get_wallet_details - Get details about the MPC 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 ERC20 memecoin with ETH
- wow_sell_token - Sell Zora Wow ERC20 memecoin for ETH
import { ChatOpenAI } from "@langchain/openai";
import { initializeAgentExecutorWithOptions } from "langchain/agents";
// Initialize LLM
const model = new ChatOpenAI({
model: "gpt-4o-mini",
});
// Create agent executor
const executor = await initializeAgentExecutorWithOptions(toolkit.getTools(), model, {
agentType: "chat-conversational-react-description",
verbose: true,
});
// Example usage
const result = await executor.invoke({
input: "Send 0.005 ETH to john2879.base.eth",
});
console.log(result.output);
The toolkit maintains an MPC wallet that persists between sessions:
// Export wallet data
const walletData = await agentkit.exportWallet();
// Import wallet data
const importedAgentkit = CdpAgentkit.configureWithWallet({ cdpWalletData: walletData });
The toolkit supports multiple networks.
The following operations support gasless transactions on Base Mainnet:
- USDC transfers
- EURC transfers
- cbBTC transfers
Check out examples/
for inspiration and help getting started:
- Chatbot: Interactive chatbot with onchain capabilities
See CONTRIBUTING.md for detailed setup instructions and contribution guidelines.
Apache-2.0