Autonomous AI Concierge with Blockchain Payments
Built for the Scoop AI Hackathon: Seoul Bowl (December 20-21, 2025)
- Agentic Infrastructure - SpoonOS implementation
- Autonomous Finance - Neo Blockchain integration (Bonus!)
User Request → TravelConcierge Agent → SearchTool → Flight/Hotel Results
↓
CryptoTreasurer Agent → NeoWalletTool → Neo N3 Testnet Transaction
↓
Confirmed Itinerary + Transaction Hash (TxID)
# Configure environment
cp backend/.env.example backend/.env
# Edit backend/.env with your API keys (see Required API Keys below)
# Start everything
docker-compose up --build
# Access the application
# Frontend: http://localhost:3000
# Backend API: http://localhost:8000- Python 3.10+
- Node.js 18+
- Neo N3 Testnet Wallet
cd backend
# Install dependencies
pip install -r requirements.txt
# Configure Environment
cp .env.example .env
# Edit .env and add your GEMINI_API_KEY (Required) and NEO_PRIVATE_KEY (Required)
# Run the API Server
python server.py
# Server running at http://localhost:8000cd frontend
npm install
npm run dev
# Open http://localhost:5173cd backend
python main.py --demo| Key | Required | Get From |
|---|---|---|
GEMINI_API_KEY |
Yes | Google AI Studio |
NEO_PRIVATE_KEY |
Yes | Your Neo N3 wallet |
NEO_RPC_URL |
No | Default: https://testnet1.neo.coz.io:443 |
velvet-protocol/
├── plan/ # Project specifications (Kiro methodology)
│ ├── requirements.md # User stories & acceptance criteria
│ ├── design.md # Technical architecture & data models
│ └── tasks.md # Implementation checklist
├── backend/ # Python FastAPI backend
│ ├── server.py # FastAPI server
│ ├── main.py # CLI entry point
│ ├── config.py # Configuration loader
│ ├── requirements.txt # Python dependencies
│ ├── .env.example # Environment template
│ ├── src/
│ │ ├── agents.py # TravelConcierge & CryptoTreasurer
│ │ ├── state.py # State management
│ │ └── tools/
│ │ ├── neo_wallet.py # Neo N3 blockchain tool
│ │ └── search.py # Travel search tool
│ └── data/
│ └── user_profile.json # User preferences
├── frontend/ # React + Vite + TypeScript
│ ├── src/
│ │ ├── types/ # TypeScript interfaces
│ │ ├── services/ # API client
│ │ └── components/ # React components
│ └── package.json
├── Agents.md # AI agent coding instructions
├── CLAUDE.md # Claude-specific instructions
├── assigning.md # Team task assignments
└── docker-compose.yml # Docker orchestration
This project uses spec-driven development following the Kiro IDE methodology. Below are the key documentation files that guide development.
The plan/ folder is the source of truth for all implementation work.
| File | Purpose | When to Use |
|---|---|---|
requirements.md |
User stories with EARS-format acceptance criteria | Before implementing any feature |
design.md |
Technical architecture, data models, API specs | Before writing any code |
tasks.md |
Phased implementation checklist with subtasks | Track progress, mark completed items |
| File | Purpose | Who Should Read |
|---|---|---|
Agents.md |
Universal instructions for ALL AI coding agents | Any AI assistant working on this project |
CLAUDE.md |
Claude-specific instructions and reminders | Claude AI specifically |
Key Rules Enforced:
- NO
anytypes - Zero tolerance in TypeScript and Python - NO mock data - All production code uses real APIs
- Full type annotations - Every function must be typed
- Read plan first - Always check specifications before coding
- Update tasks - Mark checkboxes when completing work
The assigning.md file divides all tasks from tasks.md among team members:
| Team Member | Focus Area |
|---|---|
| Ricky | Infrastructure, Docker, DevOps, SpoonOS |
| Abdul | Blockchain, Neo N3, Wallet integration |
| 윤주 | Frontend, TypeScript, React components |
| Yuriy | Testing, Backend APIs, Documentation |
| 유민 | UI/UX, Styling, Presentation |
Each member has:
- Specific task assignments with checkboxes
- List of files they own
- Dependencies on other members
- Phase-by-phase breakdown
When an AI agent starts working on this project:
1. Read ./CLAUDE.md (or ./Agents.md)
2. Read ./plan/requirements.md
3. Read ./plan/design.md
4. Read ./plan/tasks.md
5. Find your assigned tasks in ./assigning.md
6. Implement following the specifications
7. Mark completed tasks with [x] in tasks.md
- Role: Senior Travel Logistics Manager
- Tools:
SearchTool - LLM: Gemini 2.5 Flash via SpoonOS
- Task: Find optimal flights and hotels matching user preferences
- Role: Financial Controller
- Tools:
NeoWalletTool - LLM: Gemini 2.5 Flash via SpoonOS
- Task: Execute blockchain payments and manage budget
- Auto-approve: < $50 (configurable)
Neo N3 blockchain operations (REAL testnet, no mocks):
balance- Check NEO/GAS balance via RPCpay- Send GAS transaction on testnetsign- Cryptographically sign messages
Travel search operations (REAL APIs):
flight- Search for flights via DuckDuckGohotel- Search for hotels via DuckDuckGo- Crypto-friendly filtering
| Endpoint | Method | Description |
|---|---|---|
/api/chat |
POST | Send message to AI agents |
/health |
GET | Service health check |
| Endpoint | Method | Description |
|---|---|---|
/api/wallet/balance |
GET | Get NEO/GAS balance |
/api/wallet/pay |
POST | Execute GAS payment |
| Endpoint | Method | Description |
|---|---|---|
/api/profile |
GET | Get user profile |
/api/profile |
PUT | Update preferences |
/api/bookings |
GET | Get booking history |
/api/bookings |
POST | Record new booking |
# Run backend unit tests
cd backend
pip install pytest pytest-asyncio
pytest tests/ -v
# Run type safety validation
./scripts/type_check.sh
# Run Docker integration tests
./scripts/test_docker.sh- Network: Neo N3 Testnet
- RPC:
https://testnet1.neo.coz.io:443 - SDK:
neo-mamba(Python) - Token: GAS for payments
- Explorer: Dora
- Visit: https://neowish.ngd.network/
- Enter your Neo address
- Receive free testnet GAS
This project enforces strict code quality:
| Standard | Enforcement |
|---|---|
No any types |
TypeScript strict mode, mypy strict |
| No mock data | All production code uses real APIs |
| Full type annotations | Every function fully typed |
| Real API integration | Gemini, Neo N3, DuckDuckGo |
- SpoonOS Core: Uses
SpoonReactAIwithToolManager - LLM via SpoonOS: Agent → SpoonOS → Gemini 2.5 Flash
- Custom Tools:
NeoWalletTool,SearchTool - Neo Technologies:
neo-mambafor REAL testnet (Bonus!) - Working Demo: Full-stack application with Docker
- UI/UX: Premium React + TypeScript Frontend
- Type Safety: Zero
anytypes, full annotations
| Name | Role |
|---|---|
| Ricky | Infrastructure & DevOps |
| Abdul | Blockchain & Neo N3 |
| 윤주 | Frontend & TypeScript |
| Yuriy | Testing & Backend APIs |
| 유민 | UI/UX & Design |
Built for the Scoop AI Hackathon: Seoul Bowl
Voyagio AI - Making autonomous travel bookings seamless with AI and blockchain.