Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Onchain AI Agent with Discord & Uniswap V2 Integration

An autonomous blockchain AI agent that interacts with a custom vault contract on Sepolia to perform token swaps, query balances, and send tokens. The agent is integrated with Discord to receive user commands and uses the OpenAI API (Beta) to interpret instructions and call on-chain tools via Viem. This project demonstrates a full-stack solution for automated on-chain operations via a Discord bot interface. For ai agent part we used viem library for blockchain interaction and open ai for llm part for reference and tailored them according to our project.



Overview

This project implements an autonomous on-chain agent that supports a range of blockchain operations including token swaps, balance queries, and token transfers. The key components include:

  • A Vault Smart Contract (AIAgentVault.sol):
    A vault that holds two tokens (for example, YBTC and YU on Sepolia). Users deposit tokens into the vault, and an authorized AI agent can trigger swaps using Uniswap V2, as well as allow querying balances and sending tokens.

  • Backend (Node.js & TypeScript):
    Utilizes Viem for blockchain interactions, OpenAI for natural language processing, and integrates with a Discord bot to receive commands.

  • Discord Bot:
    Users send commands (e.g., !swap 350 YU to YBTC, !balance 0xYourAddress, or !send 10 YU to 0xRecipient) via Discord. The bot maps each Discord user to an on-chain wallet address and passes the command to the AI agent.

  • On-chain Tools:
    A suite of blockchain tools that include functionality to:

    • Approve token allowances.
    • Execute swaps via the vault.
    • Query the balance of an address.
    • Send tokens or ETH to an address.

Features

  • Discord Integration:
    Interact with the AI agent via Discord commands.

  • AI-Powered Command Parsing:
    Uses OpenAI’s API to understand natural language commands and trigger appropriate on-chain operations.

  • On-Chain Swaps:
    Execute token swaps using a custom vault contract integrated with a Uniswap V2 router.

  • Query Balances:
    Check the ETH balance or ERC20 token balance of any address.

  • Token Transfers:
    Send ETH or tokens to a specified address by encoding a transfer call.

  • Token Address & Network Configuration:
    Uses specified token addresses for YBTC and YU on the Sepolia testnet.

  • Detailed Error Handling & Logging:
    Provides clear feedback if any on-chain operation fails (e.g., due to insufficient balance, allowance issues, or contract conditions).


Architecture & Workflow

WhatsApp Image 2025-02-02 at 08 38 43_91494aad

  1. User Command:
    A user sends a command in Discord (e.g., !swap 350 YU to YBTC, !balance 0xYourAddress, or !send 10 YU to 0xRecipient).

  2. Discord Bot Processing:

    • The bot checks if the user has registered their on-chain wallet (using !register 0x...).
    • It then appends a system note with the registered address to the command and sends it to the AI agent.
  3. AI Assistant:

    • The agent processes the command using its system prompt and the available on-chain tools.
    • It selects the appropriate tool for the requested operation (swap, query balance, or send tokens).
  4. On-Chain Tool Execution:

    • Tools use Viem to create a wallet client (with the agent’s private key) and interact with the blockchain.
    • For swaps, the tool calls the vault’s executeSwap function.
    • For balance queries, the tool reads the balance from the chain.
    • For sending tokens, the tool encodes the ERC20 transfer(address,uint256) call and sends it.
  5. Response:

    • The tool returns a transaction hash or a query result, which the Discord bot sends back to the user.

Prerequisites

  • Node.js (v16 or later)
  • npm
  • Viem for blockchain interactions
  • A deployed vault contract on Sepolia (e.g., AIAgentVault deployed at 0xdfA8A83B0941F1d3ec47AD3BfEAE9D929E29b915)
  • Access to an Ethereum RPC endpoint on Sepolia (via Infura or Alchemy)
  • An OpenAI API key (with access to Beta API features)
  • A Discord bot token (and a Discord server where you’ve invited the bot)

Installing requirements

Run npm install To install viem run npm i viem To install openai run npm install openai Then run npm run build and then npm run start

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Onchain AI Agent with Discord & Uniswap V2 Integration

An autonomous blockchain AI agent that interacts with a custom vault contract on Sepolia to perform token swaps, query balances, and send tokens. The agent is integrated with Discord to receive user commands and uses the OpenAI API (Beta) to interpret instructions and call on-chain tools via Viem. This project demonstrates a full-stack solution for automated on-chain operations via a Discord bot interface. For ai agent part we used viem library for blockchain interaction and open ai for llm part for reference and tailored them according to our project.



Overview

This project implements an autonomous on-chain agent that supports a range of blockchain operations including token swaps, balance queries, and token transfers. The key components include:

  • A Vault Smart Contract (AIAgentVault.sol):
    A vault that holds two tokens (for example, YBTC and YU on Sepolia). Users deposit tokens into the vault, and an authorized AI agent can trigger swaps using Uniswap V2, as well as allow querying balances and sending tokens.

  • Backend (Node.js & TypeScript):
    Utilizes Viem for blockchain interactions, OpenAI for natural language processing, and integrates with a Discord bot to receive commands.

  • Discord Bot:
    Users send commands (e.g., !swap 350 YU to YBTC, !balance 0xYourAddress, or !send 10 YU to 0xRecipient) via Discord. The bot maps each Discord user to an on-chain wallet address and passes the command to the AI agent.

  • On-chain Tools:
    A suite of blockchain tools that include functionality to:

    • Approve token allowances.
    • Execute swaps via the vault.
    • Query the balance of an address.
    • Send tokens or ETH to an address.

Features

  • Discord Integration:
    Interact with the AI agent via Discord commands.

  • AI-Powered Command Parsing:
    Uses OpenAI’s API to understand natural language commands and trigger appropriate on-chain operations.

  • On-Chain Swaps:
    Execute token swaps using a custom vault contract integrated with a Uniswap V2 router.

  • Query Balances:
    Check the ETH balance or ERC20 token balance of any address.

  • Token Transfers:
    Send ETH or tokens to a specified address by encoding a transfer call.

  • Token Address & Network Configuration:
    Uses specified token addresses for YBTC and YU on the Sepolia testnet.

  • Detailed Error Handling & Logging:
    Provides clear feedback if any on-chain operation fails (e.g., due to insufficient balance, allowance issues, or contract conditions).


Architecture & Workflow

WhatsApp Image 2025-02-02 at 08 38 43_91494aad

  1. User Command:
    A user sends a command in Discord (e.g., !swap 350 YU to YBTC, !balance 0xYourAddress, or !send 10 YU to 0xRecipient).

  2. Discord Bot Processing:

    • The bot checks if the user has registered their on-chain wallet (using !register 0x...).
    • It then appends a system note with the registered address to the command and sends it to the AI agent.
  3. AI Assistant:

    • The agent processes the command using its system prompt and the available on-chain tools.
    • It selects the appropriate tool for the requested operation (swap, query balance, or send tokens).
  4. On-Chain Tool Execution:

    • Tools use Viem to create a wallet client (with the agent’s private key) and interact with the blockchain.
    • For swaps, the tool calls the vault’s executeSwap function.
    • For balance queries, the tool reads the balance from the chain.
    • For sending tokens, the tool encodes the ERC20 transfer(address,uint256) call and sends it.
  5. Response:

    • The tool returns a transaction hash or a query result, which the Discord bot sends back to the user.

Prerequisites

  • Node.js (v16 or later)
  • npm
  • Viem for blockchain interactions
  • A deployed vault contract on Sepolia (e.g., AIAgentVault deployed at 0xdfA8A83B0941F1d3ec47AD3BfEAE9D929E29b915)
  • Access to an Ethereum RPC endpoint on Sepolia (via Infura or Alchemy)
  • An OpenAI API key (with access to Beta API features)
  • A Discord bot token (and a Discord server where you’ve invited the bot)

Installing requirements

Run npm install To install viem run npm i viem To install openai run npm install openai Then run npm run build and then npm run start

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Onchain AI Agent with Discord & Uniswap V2 Integration

An autonomous blockchain AI agent that interacts with a custom vault contract on Sepolia to perform token swaps, query balances, and send tokens. The agent is integrated with Discord to receive user commands and uses the OpenAI API (Beta) to interpret instructions and call on-chain tools via Viem. This project demonstrates a full-stack solution for automated on-chain operations via a Discord bot interface. For ai agent part we used viem library for blockchain interaction and open ai for llm part for reference and tailored them according to our project.



Overview

This project implements an autonomous on-chain agent that supports a range of blockchain operations including token swaps, balance queries, and token transfers. The key components include:

  • A Vault Smart Contract (AIAgentVault.sol):
    A vault that holds two tokens (for example, YBTC and YU on Sepolia). Users deposit tokens into the vault, and an authorized AI agent can trigger swaps using Uniswap V2, as well as allow querying balances and sending tokens.

  • Backend (Node.js & TypeScript):
    Utilizes Viem for blockchain interactions, OpenAI for natural language processing, and integrates with a Discord bot to receive commands.

  • Discord Bot:
    Users send commands (e.g., !swap 350 YU to YBTC, !balance 0xYourAddress, or !send 10 YU to 0xRecipient) via Discord. The bot maps each Discord user to an on-chain wallet address and passes the command to the AI agent.

  • On-chain Tools:
    A suite of blockchain tools that include functionality to:

    • Approve token allowances.
    • Execute swaps via the vault.
    • Query the balance of an address.
    • Send tokens or ETH to an address.

Features

  • Discord Integration:
    Interact with the AI agent via Discord commands.

  • AI-Powered Command Parsing:
    Uses OpenAI’s API to understand natural language commands and trigger appropriate on-chain operations.

  • On-Chain Swaps:
    Execute token swaps using a custom vault contract integrated with a Uniswap V2 router.

  • Query Balances:
    Check the ETH balance or ERC20 token balance of any address.

  • Token Transfers:
    Send ETH or tokens to a specified address by encoding a transfer call.

  • Token Address & Network Configuration:
    Uses specified token addresses for YBTC and YU on the Sepolia testnet.

  • Detailed Error Handling & Logging:
    Provides clear feedback if any on-chain operation fails (e.g., due to insufficient balance, allowance issues, or contract conditions).


Architecture & Workflow

WhatsApp Image 2025-02-02 at 08 38 43_91494aad

  1. User Command:
    A user sends a command in Discord (e.g., !swap 350 YU to YBTC, !balance 0xYourAddress, or !send 10 YU to 0xRecipient).

  2. Discord Bot Processing:

    • The bot checks if the user has registered their on-chain wallet (using !register 0x...).
    • It then appends a system note with the registered address to the command and sends it to the AI agent.
  3. AI Assistant:

    • The agent processes the command using its system prompt and the available on-chain tools.
    • It selects the appropriate tool for the requested operation (swap, query balance, or send tokens).
  4. On-Chain Tool Execution:

    • Tools use Viem to create a wallet client (with the agent’s private key) and interact with the blockchain.
    • For swaps, the tool calls the vault’s executeSwap function.
    • For balance queries, the tool reads the balance from the chain.
    • For sending tokens, the tool encodes the ERC20 transfer(address,uint256) call and sends it.
  5. Response:

    • The tool returns a transaction hash or a query result, which the Discord bot sends back to the user.

Prerequisites

  • Node.js (v16 or later)
  • npm
  • Viem for blockchain interactions
  • A deployed vault contract on Sepolia (e.g., AIAgentVault deployed at 0xdfA8A83B0941F1d3ec47AD3BfEAE9D929E29b915)
  • Access to an Ethereum RPC endpoint on Sepolia (via Infura or Alchemy)
  • An OpenAI API key (with access to Beta API features)
  • A Discord bot token (and a Discord server where you’ve invited the bot)

Installing requirements

Run npm install To install viem run npm i viem To install openai run npm install openai Then run npm run build and then npm run start

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Onchain AI Agent with Discord & Uniswap V2 Integration

An autonomous blockchain AI agent that interacts with a custom vault contract on Sepolia to perform token swaps, query balances, and send tokens. The agent is integrated with Discord to receive user commands and uses the OpenAI API (Beta) to interpret instructions and call on-chain tools via Viem. This project demonstrates a full-stack solution for automated on-chain operations via a Discord bot interface. For ai agent part we used viem library for blockchain interaction and open ai for llm part for reference and tailored them according to our project.



Overview

This project implements an autonomous on-chain agent that supports a range of blockchain operations including token swaps, balance queries, and token transfers. The key components include:

  • A Vault Smart Contract (AIAgentVault.sol):
    A vault that holds two tokens (for example, YBTC and YU on Sepolia). Users deposit tokens into the vault, and an authorized AI agent can trigger swaps using Uniswap V2, as well as allow querying balances and sending tokens.

  • Backend (Node.js & TypeScript):
    Utilizes Viem for blockchain interactions, OpenAI for natural language processing, and integrates with a Discord bot to receive commands.

  • Discord Bot:
    Users send commands (e.g., !swap 350 YU to YBTC, !balance 0xYourAddress, or !send 10 YU to 0xRecipient) via Discord. The bot maps each Discord user to an on-chain wallet address and passes the command to the AI agent.

  • On-chain Tools:
    A suite of blockchain tools that include functionality to:

    • Approve token allowances.
    • Execute swaps via the vault.
    • Query the balance of an address.
    • Send tokens or ETH to an address.

Features

  • Discord Integration:
    Interact with the AI agent via Discord commands.

  • AI-Powered Command Parsing:
    Uses OpenAI’s API to understand natural language commands and trigger appropriate on-chain operations.

  • On-Chain Swaps:
    Execute token swaps using a custom vault contract integrated with a Uniswap V2 router.

  • Query Balances:
    Check the ETH balance or ERC20 token balance of any address.

  • Token Transfers:
    Send ETH or tokens to a specified address by encoding a transfer call.

  • Token Address & Network Configuration:
    Uses specified token addresses for YBTC and YU on the Sepolia testnet.

  • Detailed Error Handling & Logging:
    Provides clear feedback if any on-chain operation fails (e.g., due to insufficient balance, allowance issues, or contract conditions).


Architecture & Workflow

WhatsApp Image 2025-02-02 at 08 38 43_91494aad

  1. User Command:
    A user sends a command in Discord (e.g., !swap 350 YU to YBTC, !balance 0xYourAddress, or !send 10 YU to 0xRecipient).

  2. Discord Bot Processing:

    • The bot checks if the user has registered their on-chain wallet (using !register 0x...).
    • It then appends a system note with the registered address to the command and sends it to the AI agent.
  3. AI Assistant:

    • The agent processes the command using its system prompt and the available on-chain tools.
    • It selects the appropriate tool for the requested operation (swap, query balance, or send tokens).
  4. On-Chain Tool Execution:

    • Tools use Viem to create a wallet client (with the agent’s private key) and interact with the blockchain.
    • For swaps, the tool calls the vault’s executeSwap function.
    • For balance queries, the tool reads the balance from the chain.
    • For sending tokens, the tool encodes the ERC20 transfer(address,uint256) call and sends it.
  5. Response:

    • The tool returns a transaction hash or a query result, which the Discord bot sends back to the user.

Prerequisites

  • Node.js (v16 or later)
  • npm
  • Viem for blockchain interactions
  • A deployed vault contract on Sepolia (e.g., AIAgentVault deployed at 0xdfA8A83B0941F1d3ec47AD3BfEAE9D929E29b915)
  • Access to an Ethereum RPC endpoint on Sepolia (via Infura or Alchemy)
  • An OpenAI API key (with access to Beta API features)
  • A Discord bot token (and a Discord server where you’ve invited the bot)

Installing requirements

Run npm install To install viem run npm i viem To install openai run npm install openai Then run npm run build and then npm run start

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Onchain AI Agent with Discord & Uniswap V2 Integration

An autonomous blockchain AI agent that interacts with a custom vault contract on Sepolia to perform token swaps, query balances, and send tokens. The agent is integrated with Discord to receive user commands and uses the OpenAI API (Beta) to interpret instructions and call on-chain tools via Viem. This project demonstrates a full-stack solution for automated on-chain operations via a Discord bot interface. For ai agent part we used viem library for blockchain interaction and open ai for llm part for reference and tailored them according to our project.



Overview

This project implements an autonomous on-chain agent that supports a range of blockchain operations including token swaps, balance queries, and token transfers. The key components include:

  • A Vault Smart Contract (AIAgentVault.sol):
    A vault that holds two tokens (for example, YBTC and YU on Sepolia). Users deposit tokens into the vault, and an authorized AI agent can trigger swaps using Uniswap V2, as well as allow querying balances and sending tokens.

  • Backend (Node.js & TypeScript):
    Utilizes Viem for blockchain interactions, OpenAI for natural language processing, and integrates with a Discord bot to receive commands.

  • Discord Bot:
    Users send commands (e.g., !swap 350 YU to YBTC, !balance 0xYourAddress, or !send 10 YU to 0xRecipient) via Discord. The bot maps each Discord user to an on-chain wallet address and passes the command to the AI agent.

  • On-chain Tools:
    A suite of blockchain tools that include functionality to:

    • Approve token allowances.
    • Execute swaps via the vault.
    • Query the balance of an address.
    • Send tokens or ETH to an address.

Features

  • Discord Integration:
    Interact with the AI agent via Discord commands.

  • AI-Powered Command Parsing:
    Uses OpenAI’s API to understand natural language commands and trigger appropriate on-chain operations.

  • On-Chain Swaps:
    Execute token swaps using a custom vault contract integrated with a Uniswap V2 router.

  • Query Balances:
    Check the ETH balance or ERC20 token balance of any address.

  • Token Transfers:
    Send ETH or tokens to a specified address by encoding a transfer call.

  • Token Address & Network Configuration:
    Uses specified token addresses for YBTC and YU on the Sepolia testnet.

  • Detailed Error Handling & Logging:
    Provides clear feedback if any on-chain operation fails (e.g., due to insufficient balance, allowance issues, or contract conditions).


Architecture & Workflow

WhatsApp Image 2025-02-02 at 08 38 43_91494aad

  1. User Command:
    A user sends a command in Discord (e.g., !swap 350 YU to YBTC, !balance 0xYourAddress, or !send 10 YU to 0xRecipient).

  2. Discord Bot Processing:

    • The bot checks if the user has registered their on-chain wallet (using !register 0x...).
    • It then appends a system note with the registered address to the command and sends it to the AI agent.
  3. AI Assistant:

    • The agent processes the command using its system prompt and the available on-chain tools.
    • It selects the appropriate tool for the requested operation (swap, query balance, or send tokens).
  4. On-Chain Tool Execution:

    • Tools use Viem to create a wallet client (with the agent’s private key) and interact with the blockchain.
    • For swaps, the tool calls the vault’s executeSwap function.
    • For balance queries, the tool reads the balance from the chain.
    • For sending tokens, the tool encodes the ERC20 transfer(address,uint256) call and sends it.
  5. Response:

    • The tool returns a transaction hash or a query result, which the Discord bot sends back to the user.

Prerequisites

  • Node.js (v16 or later)
  • npm
  • Viem for blockchain interactions
  • A deployed vault contract on Sepolia (e.g., AIAgentVault deployed at 0xdfA8A83B0941F1d3ec47AD3BfEAE9D929E29b915)
  • Access to an Ethereum RPC endpoint on Sepolia (via Infura or Alchemy)
  • An OpenAI API key (with access to Beta API features)
  • A Discord bot token (and a Discord server where you’ve invited the bot)

Installing requirements

Run npm install To install viem run npm i viem To install openai run npm install openai Then run npm run build and then npm run start

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Onchain AI Agent with Discord & Uniswap V2 Integration

An autonomous blockchain AI agent that interacts with a custom vault contract on Sepolia to perform token swaps, query balances, and send tokens. The agent is integrated with Discord to receive user commands and uses the OpenAI API (Beta) to interpret instructions and call on-chain tools via Viem. This project demonstrates a full-stack solution for automated on-chain operations via a Discord bot interface. For ai agent part we used viem library for blockchain interaction and open ai for llm part for reference and tailored them according to our project.



Overview

This project implements an autonomous on-chain agent that supports a range of blockchain operations including token swaps, balance queries, and token transfers. The key components include:

  • A Vault Smart Contract (AIAgentVault.sol):
    A vault that holds two tokens (for example, YBTC and YU on Sepolia). Users deposit tokens into the vault, and an authorized AI agent can trigger swaps using Uniswap V2, as well as allow querying balances and sending tokens.

  • Backend (Node.js & TypeScript):
    Utilizes Viem for blockchain interactions, OpenAI for natural language processing, and integrates with a Discord bot to receive commands.

  • Discord Bot:
    Users send commands (e.g., !swap 350 YU to YBTC, !balance 0xYourAddress, or !send 10 YU to 0xRecipient) via Discord. The bot maps each Discord user to an on-chain wallet address and passes the command to the AI agent.

  • On-chain Tools:
    A suite of blockchain tools that include functionality to:

    • Approve token allowances.
    • Execute swaps via the vault.
    • Query the balance of an address.
    • Send tokens or ETH to an address.

Features

  • Discord Integration:
    Interact with the AI agent via Discord commands.

  • AI-Powered Command Parsing:
    Uses OpenAI’s API to understand natural language commands and trigger appropriate on-chain operations.

  • On-Chain Swaps:
    Execute token swaps using a custom vault contract integrated with a Uniswap V2 router.

  • Query Balances:
    Check the ETH balance or ERC20 token balance of any address.

  • Token Transfers:
    Send ETH or tokens to a specified address by encoding a transfer call.

  • Token Address & Network Configuration:
    Uses specified token addresses for YBTC and YU on the Sepolia testnet.

  • Detailed Error Handling & Logging:
    Provides clear feedback if any on-chain operation fails (e.g., due to insufficient balance, allowance issues, or contract conditions).


Architecture & Workflow

WhatsApp Image 2025-02-02 at 08 38 43_91494aad

  1. User Command:
    A user sends a command in Discord (e.g., !swap 350 YU to YBTC, !balance 0xYourAddress, or !send 10 YU to 0xRecipient).

  2. Discord Bot Processing:

    • The bot checks if the user has registered their on-chain wallet (using !register 0x...).
    • It then appends a system note with the registered address to the command and sends it to the AI agent.
  3. AI Assistant:

    • The agent processes the command using its system prompt and the available on-chain tools.
    • It selects the appropriate tool for the requested operation (swap, query balance, or send tokens).
  4. On-Chain Tool Execution:

    • Tools use Viem to create a wallet client (with the agent’s private key) and interact with the blockchain.
    • For swaps, the tool calls the vault’s executeSwap function.
    • For balance queries, the tool reads the balance from the chain.
    • For sending tokens, the tool encodes the ERC20 transfer(address,uint256) call and sends it.
  5. Response:

    • The tool returns a transaction hash or a query result, which the Discord bot sends back to the user.

Prerequisites

  • Node.js (v16 or later)
  • npm
  • Viem for blockchain interactions
  • A deployed vault contract on Sepolia (e.g., AIAgentVault deployed at 0xdfA8A83B0941F1d3ec47AD3BfEAE9D929E29b915)
  • Access to an Ethereum RPC endpoint on Sepolia (via Infura or Alchemy)
  • An OpenAI API key (with access to Beta API features)
  • A Discord bot token (and a Discord server where you’ve invited the bot)

Installing requirements

Run npm install To install viem run npm i viem To install openai run npm install openai Then run npm run build and then npm run start

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Onchain AI Agent with Discord & Uniswap V2 Integration

An autonomous blockchain AI agent that interacts with a custom vault contract on Sepolia to perform token swaps, query balances, and send tokens. The agent is integrated with Discord to receive user commands and uses the OpenAI API (Beta) to interpret instructions and call on-chain tools via Viem. This project demonstrates a full-stack solution for automated on-chain operations via a Discord bot interface. For ai agent part we used viem library for blockchain interaction and open ai for llm part for reference and tailored them according to our project.



Overview

This project implements an autonomous on-chain agent that supports a range of blockchain operations including token swaps, balance queries, and token transfers. The key components include:

  • A Vault Smart Contract (AIAgentVault.sol):
    A vault that holds two tokens (for example, YBTC and YU on Sepolia). Users deposit tokens into the vault, and an authorized AI agent can trigger swaps using Uniswap V2, as well as allow querying balances and sending tokens.

  • Backend (Node.js & TypeScript):
    Utilizes Viem for blockchain interactions, OpenAI for natural language processing, and integrates with a Discord bot to receive commands.

  • Discord Bot:
    Users send commands (e.g., !swap 350 YU to YBTC, !balance 0xYourAddress, or !send 10 YU to 0xRecipient) via Discord. The bot maps each Discord user to an on-chain wallet address and passes the command to the AI agent.

  • On-chain Tools:
    A suite of blockchain tools that include functionality to:

    • Approve token allowances.
    • Execute swaps via the vault.
    • Query the balance of an address.
    • Send tokens or ETH to an address.

Features

  • Discord Integration:
    Interact with the AI agent via Discord commands.

  • AI-Powered Command Parsing:
    Uses OpenAI’s API to understand natural language commands and trigger appropriate on-chain operations.

  • On-Chain Swaps:
    Execute token swaps using a custom vault contract integrated with a Uniswap V2 router.

  • Query Balances:
    Check the ETH balance or ERC20 token balance of any address.

  • Token Transfers:
    Send ETH or tokens to a specified address by encoding a transfer call.

  • Token Address & Network Configuration:
    Uses specified token addresses for YBTC and YU on the Sepolia testnet.

  • Detailed Error Handling & Logging:
    Provides clear feedback if any on-chain operation fails (e.g., due to insufficient balance, allowance issues, or contract conditions).


Architecture & Workflow

WhatsApp Image 2025-02-02 at 08 38 43_91494aad

  1. User Command:
    A user sends a command in Discord (e.g., !swap 350 YU to YBTC, !balance 0xYourAddress, or !send 10 YU to 0xRecipient).

  2. Discord Bot Processing:

    • The bot checks if the user has registered their on-chain wallet (using !register 0x...).
    • It then appends a system note with the registered address to the command and sends it to the AI agent.
  3. AI Assistant:

    • The agent processes the command using its system prompt and the available on-chain tools.
    • It selects the appropriate tool for the requested operation (swap, query balance, or send tokens).
  4. On-Chain Tool Execution:

    • Tools use Viem to create a wallet client (with the agent’s private key) and interact with the blockchain.
    • For swaps, the tool calls the vault’s executeSwap function.
    • For balance queries, the tool reads the balance from the chain.
    • For sending tokens, the tool encodes the ERC20 transfer(address,uint256) call and sends it.
  5. Response:

    • The tool returns a transaction hash or a query result, which the Discord bot sends back to the user.

Prerequisites

  • Node.js (v16 or later)
  • npm
  • Viem for blockchain interactions
  • A deployed vault contract on Sepolia (e.g., AIAgentVault deployed at 0xdfA8A83B0941F1d3ec47AD3BfEAE9D929E29b915)
  • Access to an Ethereum RPC endpoint on Sepolia (via Infura or Alchemy)
  • An OpenAI API key (with access to Beta API features)
  • A Discord bot token (and a Discord server where you’ve invited the bot)

Installing requirements

Run npm install To install viem run npm i viem To install openai run npm install openai Then run npm run build and then npm run start

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Onchain AI Agent with Discord & Uniswap V2 Integration

An autonomous blockchain AI agent that interacts with a custom vault contract on Sepolia to perform token swaps, query balances, and send tokens. The agent is integrated with Discord to receive user commands and uses the OpenAI API (Beta) to interpret instructions and call on-chain tools via Viem. This project demonstrates a full-stack solution for automated on-chain operations via a Discord bot interface. For ai agent part we used viem library for blockchain interaction and open ai for llm part for reference and tailored them according to our project.



Overview

This project implements an autonomous on-chain agent that supports a range of blockchain operations including token swaps, balance queries, and token transfers. The key components include:

  • A Vault Smart Contract (AIAgentVault.sol):
    A vault that holds two tokens (for example, YBTC and YU on Sepolia). Users deposit tokens into the vault, and an authorized AI agent can trigger swaps using Uniswap V2, as well as allow querying balances and sending tokens.

  • Backend (Node.js & TypeScript):
    Utilizes Viem for blockchain interactions, OpenAI for natural language processing, and integrates with a Discord bot to receive commands.

  • Discord Bot:
    Users send commands (e.g., !swap 350 YU to YBTC, !balance 0xYourAddress, or !send 10 YU to 0xRecipient) via Discord. The bot maps each Discord user to an on-chain wallet address and passes the command to the AI agent.

  • On-chain Tools:
    A suite of blockchain tools that include functionality to:

    • Approve token allowances.
    • Execute swaps via the vault.
    • Query the balance of an address.
    • Send tokens or ETH to an address.

Features

  • Discord Integration:
    Interact with the AI agent via Discord commands.

  • AI-Powered Command Parsing:
    Uses OpenAI’s API to understand natural language commands and trigger appropriate on-chain operations.

  • On-Chain Swaps:
    Execute token swaps using a custom vault contract integrated with a Uniswap V2 router.

  • Query Balances:
    Check the ETH balance or ERC20 token balance of any address.

  • Token Transfers:
    Send ETH or tokens to a specified address by encoding a transfer call.

  • Token Address & Network Configuration:
    Uses specified token addresses for YBTC and YU on the Sepolia testnet.

  • Detailed Error Handling & Logging:
    Provides clear feedback if any on-chain operation fails (e.g., due to insufficient balance, allowance issues, or contract conditions).


Architecture & Workflow

WhatsApp Image 2025-02-02 at 08 38 43_91494aad

  1. User Command:
    A user sends a command in Discord (e.g., !swap 350 YU to YBTC, !balance 0xYourAddress, or !send 10 YU to 0xRecipient).

  2. Discord Bot Processing:

    • The bot checks if the user has registered their on-chain wallet (using !register 0x...).
    • It then appends a system note with the registered address to the command and sends it to the AI agent.
  3. AI Assistant:

    • The agent processes the command using its system prompt and the available on-chain tools.
    • It selects the appropriate tool for the requested operation (swap, query balance, or send tokens).
  4. On-Chain Tool Execution:

    • Tools use Viem to create a wallet client (with the agent’s private key) and interact with the blockchain.
    • For swaps, the tool calls the vault’s executeSwap function.
    • For balance queries, the tool reads the balance from the chain.
    • For sending tokens, the tool encodes the ERC20 transfer(address,uint256) call and sends it.
  5. Response:

    • The tool returns a transaction hash or a query result, which the Discord bot sends back to the user.

Prerequisites

  • Node.js (v16 or later)
  • npm
  • Viem for blockchain interactions
  • A deployed vault contract on Sepolia (e.g., AIAgentVault deployed at 0xdfA8A83B0941F1d3ec47AD3BfEAE9D929E29b915)
  • Access to an Ethereum RPC endpoint on Sepolia (via Infura or Alchemy)
  • An OpenAI API key (with access to Beta API features)
  • A Discord bot token (and a Discord server where you’ve invited the bot)

Installing requirements

Run npm install To install viem run npm i viem To install openai run npm install openai Then run npm run build and then npm run start

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages