Agente del Conjunto de Herramientas de Delegación MetaMask
🌟 Visión general
MetaMask Gaia DTK Starter es una potente plantilla Next.js que integra a la perfección las capacidades avanzadas de Gaia con el Develegation Toolkit (DTK) de MetaMask. Este proyecto permite a los desarrolladores construir sofisticadas aplicaciones de blockchain con funcionalidades mejoradas de IA mientras aprovechan la infraestructura de billetera segura de MetaMask.
El startup incluye un sistema completo de creación de tokens ERC20 a través de un contrato de fábrica integrado, lo que permite a los usuarios desplegar tokens personalizados directamente a través de la aplicación. Combinado con interacciones impulsadas por IA, esto crea una potente plataforma para construir aplicaciones descentralizadas de próxima generación.
✨ Características
- Interacciones potenciadas por IA: Utiliza la IA de GaiaNet para crear experiencias de dApp inteligentes y con capacidad de respuesta.
- Creación de tokens ERC20: Crear tokens ERC20 personalizados a través del contrato de fábrica integrado.
- Integración segura con Blockchain: Conéctate con el ecosistema Ethereum a través de la infraestructura de monederos de confianza de MetaMask.
- Gestión de delegaciones: Conjunto de herramientas de delegación de Metamask para gestionar las delegaciones de usuario a agente de la IA.
- Integración de servicios Bundler: Conexión preconfigurada a servicios de bundler para la gestión de transacciones.
- Componentes de interfaz de usuario modernos: Componentes de interfaz de usuario listos para usar, incluidas interfaces de chat, tarjetas y entradas.
- Enrutador de aplicaciones Next.js: Construido sobre Next.js 13+ con la nueva arquitectura App Router.
- Compatibilidad con TypeScript: Integración completa de TypeScript para seguridad tipográfica y mejor experiencia del desarrollador.
🚀 Primeros pasos
Requisitos previos
- Node.js (v16 o posterior)
- gestor de paquetes pnpm
- Extensión MetaMask instalada en su navegador
Instalación
- Clonar el repositorio:
git clone https://github.com/meowyx/metamask-gaia-starter.git
- Navegue hasta el directorio del proyecto:
cd metamask-gaia-starter
- Instalar dependencias usando pnpm:
instalación pnpm
- Crear un
.env
en el directorio raíz con la siguiente configuración:
# Configuración del contrato de fábrica
NEXT_PUBLIC_FACTORY_CONTRACT_ADDRESS=0x...
NEXT_PUBLIC_CREATE_TOKEN_SELECTOR=0x...
# Configuración del servicio Bundler
NEXT_PUBLIC_BUNDLER_URL=https://api.pimlico.io/v2/137/rpc?apikey=YOUR_API_KEY
NEXT_PUBLIC_CHAIN_ID=59141
# Configuración de Infura y de la clave privada
INFURA_PROJECT_ID=su_infura_project_id
PRIVATE_KEY=su_clave_privada
# Configuración del almacenamiento de delegación
NEXT_PUBLIC_DELEGATION_STORAGE_API_KEY=su_clave_api_delegación
NEXT_PUBLIC_DELEGATION_STORAGE_API_KEY_ID=su_clave_api_de_delegación
NEXT_PUBLIC_DELEGATION_STORAGE_ENVIRONMENT=desarrollo
# Configuración de la IA de Gaia
GAIA_MODEL_BASE_URL=su_gaia_model_url
GAIA_API_KEY=tu_gaia_api_key // no es necesario si ejecutas tu propio nodo
- Inicie el servidor de desarrollo:
pnpm dev
- Abra http://localhost:3000 en su navegador para ver la aplicación en funcionamiento.
📖 Estructura del proyecto
├── .next/ # Salida de compilación de Next.js
├── ai/ # Utilidades relacionadas con la IA.
│ └── tools.ts # implementación de herramientas de IA
├── app/ # enrutador de aplicaciones Next.js
│ ├── api/ # Rutas API
│ ├── globals.css # Estilos globales
│ ├── layout.tsx # Componente raíz de diseño
│ └── page.tsx # Componente de la página de inicio
├── components/ # Componentes de interfaz de usuario reutilizables
│ ├── ui/ # Componentes básicos de interfaz de usuario
│ │ ├── badge.tsx # Badge component
│ │ ├── button.tsx # Componente Button
│ │ ├── card.tsx # Card component
│ │ └── input.tsx # Componente de entrada
│ ├── Chat.tsx # Componente de interfaz de chat
│ ├── DelegationManager.tsx # Componente de gestión de la delegación
│ └── Message.tsx # Componente de mensajes
├── lib/ # Funciones de utilidad y bibliotecas
├── services/ # Servicios de la API
│ ├── account.ts # Servicios relacionados con las cuentas
│ ├── bundler.ts # Implementación del servicio Bundler
│ └── utils.ts # Utilidades de los servicios
├── public/ # Activos estáticos
│ ├── file.svg # Icono del archivo
│ ├── globe.svg # Icono del globo terráqueo
│ ├── next.svg # Logotipo de Next.js
│ └── vercel.svg # Logotipo de Vercel
├── node_modules/ # Dependencias
├── .env # Variables de entorno
├── package.json # Dependencias del proyecto
└── pnpm-lock.yaml # archivo de bloqueo pnpm
🔧 Configuración
ERC20 Configuración del contrato de fábrica
Este proyecto se integra con el ERC20 Factory Contract para permitir la creación de tokens. Siga estos pasos para configurar la integración:
-
Clonar y desplegar el contrato ERC20 Factory:
git clone https://github.com/meowyx/erc20-factory
cd erc20-factory
npm instalar
npx hardhat compilar
npx hardhat ignition deploy ignition/modules/tokenFactory.ts --network linea-testnet -
Tras la implantación, actualice
.env
con la dirección del contrato desplegado:NEXT_PUBLIC_FACTORY_CONTRACT_ADDRESS=0x... # La dirección del contrato de fábrica desplegado
NEXT_PUBLIC_CREATE_TOKEN_SELECTOR=0x... # El selector de función para createToken -
Actualizar el
constantes.ts
con la ERC20 Factory ABI:// Add the ERC20 Factory ABI to your constants.ts file
export const FACTORY_ABI = [
// ... ABI contents from the compiled contract
{
"inputs": [
{"internalType": "string", "name": "name", "type": "string"},
{"internalType": "string", "name": "symbol", "type": "string"},
{"internalType": "uint8", "name": "decimals", "type": "uint8"},
{"internalType": "uint256", "name": "initialSupply", "type": "uint256"}
],
"name": "createToken",
"outputs": [{"internalType": "address", "name": "", "type": "address"}],
"stateMutability": "nonpayable",
"type": "function"
}
// ... other ABI entries
]; -
El contrato de fábrica permite crear nuevos tokens ERC20 con parámetros personalizados como nombre, símbolo, decimales y suministro inicial.
La estructura del proyecto ERC20 Factory:
erc20-factory/
├── contratos/
│ ├── BaseERC20Token.sol # Implementación del token base.
│ └── ERC20Factory.sol # Fábrica para el despliegue de tokens.
├── test/
│ └── ERC20Factory.test.js # Scripts de prueba
├── ignition/
│ └── módulos/
│ └── tokenFactory.js # Configuración del despliegue
├── hardhat.config.js # Configuración de hardhat
└── package.json # Dependencias del proyecto
Configuración de MetaMask
- Instale la extensión MetaMask en su navegador
- Crear o importar un monedero
- Conecta tu dApp utilizando los hooks proporcionados en el starter
Integración de Gaia
- Regístrese para obtener una clave API aquí
- Añada su clave de API al campo
.env
archivar enGAIA_API_KEY
- Establezca la URL base del modelo en
.env
archivar enGAIA_MODEL_BASE_URL
- Utilice las herramientas de IA preconfiguradas en
ai/tools.ts
interactuar con las funciones de GaiaNet
Configuración del servicio Bundler
- Obtenga una clave API de Pimlico o de su servicio de agrupación preferido
- Añada la URL del bundler a la carpeta
.env
archivar enNEXT_PUBLIC_BUNDLER_URL
- Establezca el ID de cadena correcto en el
.env
archivar enNEXT_PUBLIC_CHAIN_ID
Configuración del sistema de delegación
- Configure las claves API de almacenamiento de delegación en
.env
archivo - Utiliza el
GestorDelegación.tsx
componente para gestionar las delegaciones entre usuarios y agentes de IA
📚 Documentación
Para obtener información más detallada sobre las tecnologías utilizadas en este arranque:
🙏 Agradecimientos
- MetaMask Delegation Toolkit para su conjunto de herramientas de delegación.
- Gaia para su plataforma de IA
- Next.js para el framework React
- Vercel AI SDK para el AI Toolkit para TypeScript