Hands-on: Mint & Chat with INFT
Tutorial lengkap untuk menjalankan full stack INFT dan chat dengan AI.
Prerequisites
Sebelum mulai, pastikan sudah selesai dari Integration Guide:
- Monorepo sudah di-clone dan dependencies terinstall
- Contracts sudah di-deploy ke 0G Testnet
- Proxy addresses tersimpan (AgentNFT, Verifier, TEEVerifier)
- MetaMask connected ke 0G Testnet (Chain ID: 16602)
- Test OG token dari faucet
Part 1: Setup Executor Service
Executor service menangani:
- Penyimpanan config off-chain
- Verifikasi authorization on-chain
- Koneksi ke 0G Compute API
Step 1.1: Environment Setup
cd packages/executor-service
# Copy example env
cp .env.example .env
Edit .env:
# Server
PORT=3001
# 0G Network
OG_RPC_URL=https://evmrpc-testnet.0g.ai
AGENT_NFT_ADDRESS=0x... # Your AgentNFT proxy address
# 0G Compute API
OG_COMPUTE_URL=https://api.0g.ai/v1
OG_COMPUTE_API_KEY=your_api_key
Step 1.2: Get 0G Compute API Key (opsional jika kalian punya 3 0G)
Jalankan dari root monorepo:
cd /path/to/og-inft-monorepo
yarn 0g-compute-cli inference get-secret --provider 0xa48f01287233509FD694a22Bf840225062E67836
Copy secret ke OG_COMPUTE_API_KEY di .env.
Step 1.3: Start Executor
cd packages/executor-service
yarn dev
Output:
Server running on port 3001
Contract: 0x...
Step 1.4: Verify Service
# Health check
curl http://localhost:3001/health
Part 2: Setup Frontend
Step 2.1: Environment Setup
cd packages/frontend
# Copy example env
cp .env.example .env
Edit .env dengan deployed proxy addresses:
VITE_EXECUTOR_URL=http://localhost:3001
# Contract Addresses (0G Galileo Testnet)
VITE_AGENT_NFT_ADDRESS=0x... # Your AgentNFT proxy
VITE_AGENT_MARKET_ADDRESS=0x... # Your AgentMarket proxy (if any)
VITE_VERIFIER_ADDRESS=0x... # Your Verifier proxy
VITE_TEE_VERIFIER_ADDRESS=0x... # Your TEEVerifier proxy
Step 2.2: Start Frontend
yarn dev
Part 3: Mint INFT via Frontend
Step 3.1: Connect Wallet
- Buka http://localhost:5173
- Click "Connect Wallet"
- Pilih wallet dan approve connection
Step 3.2: Go to Mint Page
- Navigate ke
/mint - Kamu akan melihat form untuk configure agent
Step 3.3: Configure Agent
Isi form dengan:
- Name: Nama agent (e.g., "My Web3 Assistant")
- Model: Pilih model AI (e.g., "qwen/qwen-2.5-7b-instruct")
- System Prompt: Instruksi untuk AI
- Personality: Deskripsi personality
- Capabilities: Pilih capabilities
- Temperature: Adjust randomness (0-2)
- Max Tokens: Max response length
Step 3.4: Mint
- Review config dan preview hash
- Click "Mint INFT"
- Approve transaction di wallet
- Tunggu konfirmasi
Auto-Register
Frontend otomatis register config ke executor service setelah mint berhasil.
Part 4: Authorize Users via Frontend
Step 4.1: Go to My INFTs Page
- Navigate ke
/my-infts - Kamu akan melihat list INFT yang kamu miliki
Step 4.2: Select INFT
Click pada INFT yang ingin di-manage.
Step 4.3: Authorize User
- Masukkan address user yang ingin di-authorize
- Click "Authorize"
- Approve transaction di wallet
Step 4.4: Revoke Authorization
- Pada list authorized users, click "Revoke" di samping address
- Approve transaction di wallet
Part 5: Chat with INFT
Step 5.1: Go to Chat Page
- Navigate ke
/chat - Kamu akan melihat marketplace agents yang tersedia
Step 5.2: Select Agent
- Browse agents yang available
- Status authorization ditampilkan (Owner/Authorized/Not Authorized)
- Click pada agent yang kamu punya akses
Step 5.3: Start Chatting
- Ketik message di input box
- Click "Send"
- Sign message di wallet (untuk verifikasi)
- Tunggu AI response!
Flow:
User types → Sign message → Executor verifies →
Check on-chain auth → Load config → Call 0G Compute → Response
Part 6: Quick Reference
Quick Start (3 terminals)
# Terminal 1: Executor Service
cd packages/executor-service
yarn dev
# Terminal 2: Frontend
cd packages/frontend
yarn dev
# Terminal 3: (Optional) Watch contracts
cd packages/0g-agent-inft
yarn hardhat compile --watch
API Endpoints Reference
| Method | Endpoint | Description |
|---|---|---|
| GET | /health | Health check |
| GET | /api/agents/registered | List registered agents |
| GET | /api/auth/:tokenId/:address | Check authorization |
| GET | /api/config/:tokenId | Get agent config |
| POST | /api/register | Register config (owner) |
| POST | /api/inference | Run AI inference |
(Optional) Using Scripts
Untuk advanced users yang ingin interact langsung dengan contract:
cd packages/0g-agent-inft
# Mint via script
yarn hardhat run scripts/workshop-mint.ts --network zgTestnet
# Authorize via script
yarn hardhat run scripts/workshop-authorize.ts --network zgTestnet
Off-chain Config
Jika mint via script, config TIDAK otomatis ter-register di executor. Gunakan frontend untuk flow yang lengkap.
Checkpoint Summary
Setelah menyelesaikan tutorial ini:
- Clone dan setup monorepo
- Deploy contracts dengan Hardhat Ignition
- Executor service running
- Frontend running
- Mint INFT via frontend
- Config auto-registered ke executor
- Authorize user via frontend
- Chat dengan AI via frontend
Key Functions Reference
| Function | Description |
|---|---|
mint(iDatas, to) | Mint INFT dengan intelligent data |
authorizeUsage(tokenId, user) | Grant usage ke user |
batchAuthorizeUsage(tokenId, users) | Grant ke multiple users |
revokeAuthorization(tokenId, user) | Revoke dari user |
clearAuthorizedUsers(tokenId) | Clear semua users |
authorizedUsersOf(tokenId) | Get authorized users |
Troubleshooting
"Insufficient funds"
- Claim test token dari faucet
"Not authorized"
- Pastikan kamu owner atau sudah di-authorize
"Config not found"
- Mint ulang via frontend (auto-register config)
Executor tidak respond
- Check apakah
AGENT_NFT_ADDRESSbenar di.env - Pastikan executor running di port 3001
Frontend tidak connect
- Check
VITE_EXECUTOR_URLdi frontend.env - Pastikan executor running
Next Step
Selesai! Lanjut ke Homework & Submission untuk submit hasil kerja dan explore 0G Storage integration!