A React-based chat application with attestation using AO Network and Arweave Wallet.
- Wallet connection with arweave-wallet-kit
- AI chat powered by AO Network (aoconnect)
- NEW: Memory AI ChatV2 - Enhanced AI chat with OpenAI integration and memory-focused prompts
- Memory marketplace for trading AI memories
- Real-time attestation display
- Modern Web3 UI design with fullscreen support
- TypeScript support with strict type checking
- Centralized configuration management
- Update the configuration in
src/config/index.ts - Main configuration includes:
aoProcessId: Your AO process IDappName: Application namedefaultAttestedBy: Default attestation providerswalletPermissions: Required wallet permissionsopenaiApiKey: Your OpenAI API key (for ChatV2 Memory AI features)
- Get an OpenAI API key from OpenAI Platform
- Copy
env.exampleto.env.local - Add your API key:
REACT_APP_OPENAI_API_KEY=your_api_key_here - Access the Memory AI by clicking the "🧠 MEMORY AI" tab in the sidebar
npm run dev- Start development servernpm run build- Build for productionnpm run lint- Run ESLintnpm run preview- Preview production build
This project includes an AO process that handles AI inference requests. Follow these steps to deploy your own AO process:
npm i -g https://preview_ao.arweave.netClone the repo to your computer.
-
Navigate to the ao_process directory:
cd ao_process -
Spawn your process:
aos my_process
-
Select aos: When prompted, select the default
aosoption. There is no need to selecthyper-hos. -
Load the AO agent code:
.load ao_agent.lua
After deploying your AO process, update the process ID in src/config/index.ts:
export const config = {
// AO Network Configuration
aoProcessId: 'YOUR_PROCESS_ID_HERE', // Replace with your deployed process ID
// APUS HyperBEAM Node Configuration
apusHyperbeamNodeUrl: 'http://72.46.85.207:8734',
// ... rest of config
} as const;The AO process code is located in ao_process/ao_agent.lua. This process:
- Listens for inference requests with the "Infer" action
- Forwards requests to the APUS AI service
- Stores results in a cache for retrieval
- Exposes results via the
patch@1.0protocol
- Frontend sends request → AO Process receives "Infer" action
- AO Process forwards → APUS AI service processes the request
- AI service responds → AO Process stores result in cache
- Frontend retrieves → Results are fetched via HTTP API
npm install
npm run dev- React 19 + TypeScript + Vite
- Ant Design
- arweave-wallet-kit + @permaweb/aoconnect
- ESLint with TypeScript support
- AO Network (Lua-based smart contracts)
