Skip to main content

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

Open http://localhost:5173


Part 3: Mint INFT via Frontend

Step 3.1: Connect Wallet

  1. Buka http://localhost:5173
  2. Click "Connect Wallet"
  3. Pilih wallet dan approve connection

Step 3.2: Go to Mint Page

  1. Navigate ke /mint
  2. 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

  1. Review config dan preview hash
  2. Click "Mint INFT"
  3. Approve transaction di wallet
  4. 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

  1. Navigate ke /my-infts
  2. 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

  1. Masukkan address user yang ingin di-authorize
  2. Click "Authorize"
  3. Approve transaction di wallet

Step 4.4: Revoke Authorization

  1. Pada list authorized users, click "Revoke" di samping address
  2. Approve transaction di wallet

Part 5: Chat with INFT

Step 5.1: Go to Chat Page

  1. Navigate ke /chat
  2. Kamu akan melihat marketplace agents yang tersedia

Step 5.2: Select Agent

  1. Browse agents yang available
  2. Status authorization ditampilkan (Owner/Authorized/Not Authorized)
  3. Click pada agent yang kamu punya akses

Step 5.3: Start Chatting

  1. Ketik message di input box
  2. Click "Send"
  3. Sign message di wallet (untuk verifikasi)
  4. 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

MethodEndpointDescription
GET/healthHealth check
GET/api/agents/registeredList registered agents
GET/api/auth/:tokenId/:addressCheck authorization
GET/api/config/:tokenIdGet agent config
POST/api/registerRegister config (owner)
POST/api/inferenceRun 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

FunctionDescription
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_ADDRESS benar di .env
  • Pastikan executor running di port 3001

Frontend tidak connect

  • Check VITE_EXECUTOR_URL di frontend .env
  • Pastikan executor running

Next Step

Selesai! Lanjut ke Homework & Submission untuk submit hasil kerja dan explore 0G Storage integration!