OYA, multiple AI personas, not just one, each with their own strengths
Oya is an AI-driven chat and gaming platform where users engage with specialized AI personas, each tailored to different strengths or themes (e.g., professional advice, kid-friendly interactions, or character-based roleplay). The "multiple AI personas, not just one, each with their own strengths" aligns directly with the frontend's design, enabling diverse conversational experiences. Blockchain integration adds gamification through "SwapArena," turning token swaps into competitive prediction markets or quests, rewarding users for market predictions.
The Oya project is a full-stack application I built, combining a Next.js frontend web app with blockchain smart contracts developed using Foundry. My focus was on creating an interactive platform featuring multiple AI personas—like Butler, Kids, Lara, Little Kozo, and Professional—that users can engage with via chat interactions. I integrated decentralized finance (DeFi) elements such as trading quests through Uniswap V4 hooks. Here’s a high-level overview of the structure and purpose of the project:
Oya is an AI-driven chat and gaming platform where I designed users to interact with specialized AI personas, each tailored to different strengths or themes, like professional advice, kid-friendly conversations, or character-based roleplay. I intentionally created multiple AI personas rather than just one, each with unique strengths supporting diverse conversational experiences. Blockchain elements gamify the experience through “SwapArena,” which turns token swaps into competitive prediction markets or quests, rewarding users for their market predictions.
Frontend (website/ - Next.js App):
AIAssistantUI.jsx
, ChatPane.jsx
, Composer.jsx
for message input, Message.jsx
, and ConversationRow.jsx
. I also added folder support, templates, search via SearchModal.jsx
, and user settings with SettingsPopover.jsx
./butler
, /kids
, /lara
, /little-kozo
, /professional
, /testChat
, and /arena
, likely routing to specialized AI models or prompts through PersonaCard.tsx
.src/lib/openrouter/openrouter.ts
for LLM interactions and built auxiliary tools like a calculator, filesystem, and random number generator inside the tools/
directory. For testing, I used mock data in mockData.js
./arena
page which integrates with SwapArena via src/lib/swap-arena.ts
. I included public persona images as assets./api/chat/route.ts
for backend chat requests.SwapArena Contracts (swap-arena-contracts/ - Foundry Project):
SwapArena.sol
that gamifies token swaps within liquidity pools. Users stake BEX tokens predicting buy vs. sell dominance over 24-hour quests. Winners share the stakes of losers after a small fee.BexClub.sol
, Swapper.sol
, and Counter.sol
for club features, swapping logic, and counters.MockER20.s.sol
and scripts for deployment on Base Sepolia (deploy.sh
), pool creation/minting (mint.sh
, add.sh
), and swapping (swap.sh
).General Contracts (contracts/ - Foundry Project):
Random.sol
—which uses the Pyth Network for on-chain entropy and randomness (deployed on Optimism Sepolia)—along with Counter.sol
for simple testing, CoinFlip.s.sol
, and DeployChatMatch.s.sol
possibly related to chat matchmaking or games.RandomNumber.s.sol
, Counter.s.sol
, and Counter.t.sol
to validate functionality.This modular project centers on AI personas as the main user-facing element with blockchain delivering interactive, reward-based features. If a deeper exploration, like code reviews or feature expansions, is needed, I can provide specific details.