Blockchain Assistant is a powerful tool designed to interact with blockchain networks, specifically tailored for Ethereum-compatible chains. It leverages OpenAI's GPT-4o-mini model to provide a conversational interface for users to perform various blockchain operations, such as checking wallet balances, sending transactions, and deploying smart contracts. The assistant embodies the persona of Darth Vader, delivering responses with a commanding and cryptic tone.
- Conversational Interface: Engage with the assistant to perform blockchain operations through natural language.
- Wallet Operations: Check wallet balances and retrieve connected wallet addresses.
- Transaction Management: Send transactions with customizable parameters.
- Smart Contract Interaction: Deploy ERC20 tokens and interact with existing contracts.
- Error Handling: Robust error handling and feedback for failed operations.
- Node.js (version 14 or higher)
- TypeScript
- OpenAI API key
- Environment variables for wallet private key and other configurations
-
Clone the repository:
git clone https://github.com/Patrick-Ehimen/AI-OnChain-Agent.git cd blockchain-assistant
-
Install dependencies:
bun install
-
Set up environment variables: Create a
.env
file in the root directory and add your OpenAI API key and wallet private key:OPENAI_API_KEY=your_openai_api_key WALLET_PRIVATE_KEY=your_wallet_private_key
To start the assistant, run:
bun run src/index.ts
You can then interact with the assistant in the command line. Type "exit" to end the conversation.
The assistant has access to various tools for performing blockchain operations:
- get_balance: Check wallet balances on the Avalanche Fuji testnet
- get_wallet_address: Retrieve the connected wallet's address
- send_transaction: Send transactions with customizable parameters including:
- Transaction value in ETH
- Custom data for contract interactions
- Gas price settings
- EIP-2930 access lists
- Factory dependencies
- Paymaster configurations
- deploy_erc20: Deploy new ERC20 token contracts with:
- Customizable token name and symbol
- Configurable initial supply
- Standard ERC20 functionality
The following sequence diagram illustrates the core flow of the application:
sequenceDiagram
participant User
participant Main
participant Assistant
participant Thread
participant Tools
participant Blockchain
User->>Main: Start Application
Main->>Assistant: Create Assistant
Main->>Thread: Create Thread
loop Chat Session
User->>Main: Enter Command
alt Command == "exit"
Main->>User: End Session
else Valid Command
Main->>Thread: Add Message
Thread->>Assistant: Process Message
opt Requires Blockchain Action
Assistant->>Tools: Call Tool
Tools->>Blockchain: Execute Operation
Blockchain-->>Tools: Return Result
Tools-->>Assistant: Return Response
end
Assistant-->>Thread: Update Thread
Thread-->>Main: Return Response
Main->>User: Display Response
end
end
The sequence diagram above shows the interaction flow between different components:
-
Initialization:
- Application starts with creating an OpenAI Assistant
- A new Thread is created for the conversation
-
Chat Session Loop:
- User enters commands through the CLI
- Commands are processed through the Thread and Assistant
- For blockchain operations, specific Tools are called
- Results are returned through the chain of components
-
Blockchain Integration:
- Tools interface with the blockchain through Viem clients
- Operations are executed on the Avalanche Fuji testnet
- Results are propagated back to the user
-
Session Management:
- Users can exit the application at any time
- Each command is processed in a sequential manner
- Responses are displayed back to the user
Contributions are welcome! Please open an issue or submit a pull request for any enhancements or bug fixes.
This project is licensed under the MIT License. See the LICENSE file for details.
- OpenAI for providing the GPT-4o-mini model.
- Viem for blockchain interaction utilities.