aptos-move-agent-kit
v0.0.1
Published
An extended version of the Move Agent Kit by MetaMove, enhanced with additional features and integrations.
Readme
Aptos Move Agent Kit
An extended version of the Move Agent Kit by MetaMove, enhanced with additional features and integrations.
Aptos Move Agent Kit is a comprehensive toolkit designed to simplify AI agents' interactions with Move-based blockchains. This extended version builds upon the original Move Agent Kit by MetaMove, providing additional features and enhanced functionality for developers building AI-powered applications that interact with Aptos and other Move-based protocols.
The toolkit serves as a bridge between AI agents and Move-based blockchain ecosystems, enabling seamless integration of blockchain capabilities into AI applications. Whether you're building a chatbot with wallet functionality or a complex multi-agent system, Aptos Move Agent Kit provides the necessary tools and abstractions to handle blockchain interactions efficiently.
Key Features
Token Operations
Standard Token Management
Transfer tokens between accounts
Mint new tokens
Burn existing tokens
NFT Operations
Create new NFT collections
Mint NFTs
Transfer NFTs between accounts
Burn NFTs
Blockchain Interaction
Read and parse blockchain data
Monitor blockchain events
Execute smart contract calls
Account Management
Transaction signing
Message signing
Account creation and management
Supported Applications
Move Agent Kit provides native integration with several prominent Move-based applications:
| Protocol | Features Supported | |-------------|-------------------------------------| | Joule | Lending borrowing defi operations | | Amnis | Staking operations | | Thala | Staking and DEX operations | | Echelon | Lending borrowing defi operations | | LiquidSwap | DEX operations | | Panora | DEX aggregation operations | | Aries | Lending borrowing defi operations | | Echo | Staking operations |
What's New
CCTP Integration
- Cross-Chain Transfer Protocol (CCTP): Seamlessly transfer USDC across different blockchains using Circle's CCTP
- Multi-chain Support: Transfer USDC from Aptos to Ethereum, Base, Solana, and other supported chains
- Automatic Attestation: Built-in attestation handling for secure cross-chain transfers
MCP (Model Context Protocol) Integration
- MCP Server Support: Integrated MCP server functionality for enhanced AI model interactions
- Tool Registration: Automatic registration of Aptos tools with MCP servers
- Schema Processing: Advanced schema processing for Move-based operations
- Real-time Communication: Seamless communication between AI models and blockchain operations
Architecture Overview
Move Agent Kit follows a modular architecture that enables easy extension and maintenance:
Installation
Using NPM
npm install aptos-move-agent-kitFrom Source
git clone https://github.com/nisargthakkar/aptos-move-agent-kit
cd aptos-move-agent-kit
npm iQuick Start
Basic Setup
First, import the necessary modules:
const aptosConfig = new AptosConfig({
network: Network.MAINNET,
});
const aptos = new Aptos(aptosConfig);
const account = await aptos.deriveAccountFromPrivateKey({
privateKey: new Ed25519PrivateKey(
PrivateKey.formatPrivateKey(
process.env.PRIVATE_KEY,
PrivateKeyVariants.Ed25519,
),
),
});Configure Your Environment
Create a configuration file .env in your project root:
APTOS_PRIVATE_KEY="private key"
ANTHROPIC_API_KEY="API Key"
OPENAI_API_KEY="API Key"Initialize the Client
const signer = new LocalSigner(account, Network.MAINNET);
const agent = new AgentRuntime(signer, aptos, {
PANORA_API_KEY: process.env.PANORA_API_KEY, // optional
OPENAI_API_KEY: process.env.OPENAI_API_KEY // optional
});
const tools = createAptosTools(aptosAgent);Basic Operations Examples
Token Transfer
const result = agent.transferTokens("to_address", 1.0)Read Blockchain Data
// Get Balance
const balance = agent.getBalance("0x123...")
// Get transaction details
const tx_info = agent.transferTokens("0x789...")LangChain Integration
import { ChatAnthropic } from "@langchain/anthropic";
import { MemorySaver } from "@langchain/langgraph";
import { createReactAgent } from "@langchain/langgraph/prebuilt";
import { HumanMessage } from "@langchain/core/messages";
const llm = new ChatAnthropic({
temperature: 0.7,
model: "claude-3-5-sonnet-20241022",
});
const memory = new MemorySaver();
const agent = createReactAgent({
llm,
tools,
checkpointSaver: memory,
messageModifier: `
You are a helpful agent that can interact onchain using the Aptos Agent Kit. You are
empowered to interact onchain using your tools. If you ever need funds, you can request them from the
faucet. If not, you can provide your wallet details and request funds from the user. If there is a 5XX
(internal) HTTP error code, ask the user to try again later. If someone asks you to do something you
can't do with your currently available tools, you must say so, and encourage them to implement it
themselves using the Aptos Agent Kit, recommend they go to https://metamove.build/move-agent-kit for more information. Be
concise and helpful with your responses. Refrain from restating your tools' descriptions unless it is explicitly requested.
`,
});
const stream = await agent.stream(
{
messages: [new HumanMessage("Deposit 10 APT on Joule")],
},
config
);
for await (const chunk of stream) {
if ("agent" in chunk) {
console.log(chunk.agent.messages[0].content);
} else if ("tools" in chunk) {
console.log(chunk.tools.messages[0].content);
}
console.log("-------------------");
}Documentation
This is an extended version of the original Move Agent Kit by MetaMove. For base documentation, refer to MetaMove GitBook Documentation.
Security
This toolkit handles private keys and transactions. Always ensure you're using it in a secure environment and never share your private keys.
