Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
인도네시아 농부 한 시즌 자금, 스마트 계약에 잠금·AI·협동조합 검증 후 단계별 출금·수확물은 BNB 체인에 공개
Danai satu musim tanam petani Indonesia. Dana dikunci di smart contract, cair per tahap setelah lahan dicek agen AI dan koperasi, lalu hasil panen dibagi terbuka di BNB Chain.
금융TypeScript · SolidityGitHub @MrPrinceAli온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Pendanaan modal tanam petani Indonesia di BNB Chain: escrow per musim, pencairan dua kunci (agen AI ERC-8004 + koperasi), bagi hasil otomatis, Rapor Petani onchain. Indonesia Web3 Hackathon 2026.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Modal tanam yang adil untuk petani, transparan untuk investor, diverifikasi AI, tercatat onchain. BagiPanen adalah platform pendanaan modal tanam untuk petani Indonesia di BNB Chain. Investor mendanai satu musim tanam dengan stablecoin. Dana cair bertahap setelah bukti lapangan diverifikasi agen AI dan koperasi, lalu hasil panen dibagi otomatis oleh smart contract.README 전문 보기 ↗
Demo · Coba sekarang · Masalah & solusi · Arsitektur · Agen AI · Kontrak · Jalankan lokal
🌾 Indonesia Web3 Hackathon 2026 · BNB Chain · Finance & Commerce (RWA + stablecoin) · AI Agents · Consumer Apps
BagiPanen adalah platform pendanaan modal tanam untuk petani Indonesia di BNB Chain. Investor mendanai satu musim tanam dengan stablecoin. Dana cair bertahap setelah bukti lapangan diverifikasi agen AI dan koperasi, lalu hasil panen dibagi otomatis oleh smart contract.
Indonesia Web3 Hackathon 2026 — track Finance & Commerce (RWA + stablecoin), AI Agents, dan Consumer Apps. Status: berjalan di BSC testnet — 5 kontrak terverifikasi di BscScan, agen AI terdaftar di registri ERC-8004 resmi (agen #2544) dan berjalan otomatis di cloud (GitHub Actions), 8 proyek contoh di 8 daerah mencakup semua status termasuk gagal pendanaan dan gagal panen.
| 🌐 Demo web | bagipanen.vercel.app (BSC testnet) |
| 🤖 Agen AI | #2544 di IdentityRegistry ERC-8004 · halaman /agent di demo |
| 📜 Kontrak | CampaignFactory di BscScan · daftar lengkap |
| ⚙️ Agen di cloud | GitHub Actions · Agen AI verifikator (tiap ±5 menit, log publik) |
| ✅ Hasil uji | docs/acceptance.md (lokal & BSC testnet) |
BagiPanen is a crop-funding dApp on BNB Chain. Investors fund one growing season of a smallholder farmer with a stablecoin (MockUSDT on testnet). The money sits in a per-campaign escrow contract and is released in three tranches (planting 40%, growing 35%, pre-harvest 25%) only when both an AI agent and the farmer's cooperative approve a field photo. The AI agent has an on-chain identity in the official ERC-8004 Identity Registry (agent #2544), and cooperatives rate each of its verdicts in the official ERC-8004 Reputation Registry. It checks EXIF GPS/date, duplicate photos, 14-day weather (Open-Meteo), and asks Gemini to assess the photo. Each verdict is stored as JSON on IPFS (Pinata). After harvest, the contract repays investors' principal first, then splits profit 55% farmer / 40% investors / 5% reserve pool. Every season builds an on-chain farmer report card that can serve as an alternative credit history. The UI is in Indonesian. It is live on BSC testnet with all contracts verified; the AI agent runs autonomously in the cloud (GitHub Actions, every ~5 minutes), and eight demo projects across Indonesia cover every state, including failed funding (100% refund) and crop failure (reserve-pool compensation).
Yang dibutuhkan: MetaMask dan sedikit tBNB untuk gas. Tidak ada uang sungguhan: semua berjalan di BSC testnet dengan stablecoin demo (mUSDT).
Panduan interaktif dengan centang otomatis per langkah: bagipanen.vercel.app/coba.
Tanpa MetaMask? Buka /masuk → Coba tanpa dompet dan pilih peran Investor, Petani, atau Koperasi (akun demo testnet), atau Admin (lihat saja). Alur yang bisa dicoba penuh: sebagai Petani kirim foto ke Proyek demo juri #1 → agen AI di cloud menilainya ±1 menit → sebagai Koperasi konfirmasi sampai dana tahap cair. Kunci akun demo hanya ada di server (
/api/demo-txmenandatangani transaksi ke kontrak BagiPanen saja); di BagiPanen sungguhan setiap orang masuk dengan dompetnya sendiri.
Yang bisa dilihat tanpa wallet:
/agent): identitas onchain, reputasi di ERC-8004 ReputationRegistry (persentase kesepakatan koperasi dengan putusan agen), isi agent card, statistik, dan 10 putusan terakhir. Log kerjanya di GitHub Actions.Peran Petani, Koperasi, dan Admin terikat ke wallet demo kami. Alurnya ditunjukkan di video demo dan bisa dicoba penuh di mode lokal tanpa akun apa pun.
Petani kecil sulit mendapat kredit bank karena tidak punya riwayat kredit, sehingga modal tanam datang dari tengkulak lewat sistem ijon: panen dibeli murah sebelum waktunya.
BagiPanen menguncinya di smart contract:
Contoh dari data demo — modal 1.000 USDT, hasil penjualan 1.650 USDT. Angka ini sama persis dengan hasil di BSC testnet:
| Pos | USDT |
|---|---|
| Dana cair ke petani (400 + 350 + 250) | 1.000 |
| Keuntungan (1.650 − 1.000) | 650 |
| Bagian petani (55%) | 357,5 |
| Dana cadangan (5%) | 32,5 |
| Pool investor (modal + 40%) | 1.260 → Rina 630, Budi 378, Sari 252 (imbal hasil 26%) |
Tidak ada database maupun server yang menyimpan data:
/api/logs) karena RPC publik membatasi eth_getLogs 5.000 blok per panggilan. Semua isinya bisa dicek langsung di BscScan.flowchart LR
subgraph Browser["web/ — Next.js (Vercel)"]
UI["Halaman per peran<br/>(petani, investor, koperasi, admin)"]
API["API route /api/upload & /api/logs<br/>(hanya membaca / mengunggah)"]
end
subgraph Chain["BNB Chain — BSC testnet"]
F["CampaignFactory"] --> HC["HarvestCampaign<br/>escrow + token porsi + milestone"]
HC --> RB["ReputationBook<br/>Rapor Petani & statistik agen"]
HC --> RP["ReservePool<br/>dana cadangan 5%"]
F --> ID["IdentityRegistry ERC-8004<br/>(resmi)"]
RR["ReputationRegistry ERC-8004<br/>(resmi)"]
end
IPFS[("IPFS (Pinata)<br/>foto bukti, metadata,<br/>JSON putusan")]
subgraph Agent["agent/ — Node.js (GitHub Actions)"]
A["Loop agen: EXIF · duplikat ·<br/>cuaca · penilaian foto"]
end
UI -- baca/tulis kontrak (MetaMask) --> Chain
UI --> API --> IPFS
HC -- event ProofSubmitted --> A
A -- ambil foto --> IPFS
A -- Open-Meteo --> W["Cuaca 14 hari"]
A -- Gemini --> V["Penilaian foto"]
A -- JSON putusan --> IPFS
A -- recordVerdict --> HC
UI -- "giveFeedback (koperasi menilai agen)" --> RR
| Bagian | Teknologi |
|---|---|
| Kontrak | Solidity 0.8.24, Foundry, OpenZeppelin v5 |
| Web | Next.js 16 (App Router), React 19, Tailwind v4, wagmi v2, viem, RainbowKit · dua bahasa ID/EN |
| Agen | Node.js 20, TypeScript, viem, exifr, @google/genai (Gemini), Open-Meteo |
| Penyimpanan | IPFS via Pinata (testnet) / folder lokal (mode lokal) |
Agen memantau event ProofSubmitted dari semua proyek (polling 10 detik) dan menilai setiap bukti dalam 7 langkah:
recordVerdict(ok, reasonCID) di kontrak.Foto disetujui hanya jika semua syarat ini terpenuhi:
Alasannya tampil dalam bahasa Indonesia di timeline proyek, antrean koperasi, dan halaman /agent.
Identitas ERC-8004.
0x8004A818…BD9e sebagai agen #2544.CampaignFactory hanya menerima putusan dari wallet yang memiliki NFT agen tersebut (ownerOf(agentId) == agentWallet).Ketahanan.
Semua kontrak ada di contracts/src/.
| Kontrak | Fungsi |
|---|---|
CampaignFactory | Registri koperasi & petani, pembuat proyek, persetujuan admin, konfigurasi agen |
HarvestCampaign | Satu per proyek: escrow mUSDT, token porsi 1:1 (tidak bisa dipindahtangankan), milestone dua kunci, sengketa, gagal panen, gagal bayar, bagi hasil, klaim kumulatif |
CampaignDeployer | Memuat bytecode proyek agar factory tetap di bawah batas ukuran kontrak (EIP-170) |
ReservePool | Dana cadangan 5%; kompensasi hanya bisa dikirim ke proyek resmi |
ReputationBook | Rapor Petani dan statistik putusan agen, hanya bisa ditulis oleh proyek resmi |
MockUSDT | Stablecoin demo (18 desimal, mint terbuka maks 10.000 per panggilan) |
MockAgentIdentity | Fallback registri identitas agen untuk mode lokal (ERC-721 minimal) |
BSC testnet (chain 97) — semua terverifikasi di BscScan, blok deploy 134247179:
| Kontrak | Alamat |
|---|---|
| CampaignFactory | 0xDaAAb760e8ba84dFBB209a1ec944875d71584809 |
| MockUSDT (mUSDT) | 0x09E5561C0d52eD66c8d65F2DA5c7EF4708555642 |
| CampaignDeployer | 0x41c4704112dd0089C218C8386F56beC21AD86FCe |
| ReputationBook | 0xE10414172fB887d9789AA2b33B6D062cb5432B90 |
| ReservePool | 0x9e4C939F7DD58b13cBB1148bff4fC15433E0978b |
| IdentityRegistry ERC-8004 (resmi, bukan milik BagiPanen) | 0x8004A818BFB912233c491871b3d84c89A494BD9e |
| ReputationRegistry ERC-8004 (resmi, bukan milik BagiPanen) | 0x8004B663056A597Dffe9eCcC1965A193B7388713 |
| Wallet agen AI (#2544) | 0x0837FE45C0faf7a101C98d70D71476db81806022 |
Proyek demo di testnet (dibuat dengan agent/scripts/seed-showcase.ts lewat transaksi sungguhan; foto bukti dinilai agen AI, bukan diisi manual). Tiga proyek uji coba awal di Garut tidak tampil di beranda, tetapi tetap bisa dibuka lewat tautan.
| Proyek | Komoditas · lokasi | Status | Isi |
|---|---|---|---|
0xd880…01EC | Bawang merah · Rejoso, Nganjuk, Jawa Timur | Cari dana (sampai 17 Nov 2026) | 60% terkumpul, terbuka untuk dicoba juri |
0x6E55…cB8B | Kentang · Berastagi, Karo, Sumatera Utara | Cari dana (sampai 17 Nov 2026) | 25% terkumpul, terbuka untuk dicoba juri |
0x442e…1BDC | Cabai rawit · Galur, Kulon Progo, DIY | Berjalan | Bukti Tanam disetujui agen ±43 detik setelah dikirim (dipicu /api/agent-wake), menunggu konfirmasi koperasi |
0x04Be…97CD | Padi · Praya, Lombok Tengah, NTB | Berjalan | Tahap Tanam cair (disetujui Gemini + koperasi) |
0xd2cF…2219 | Padi · Watang Pulu, Sidrap, Sulawesi Selatan | Selesai | 3 tahap cair → setor panen 1.560 → klaim 612/367,2/244,8 |
0xE9F6…722E | Jagung · Pelaihari, Tanah Laut, Kalimantan Selatan | Selesai | 3 tahap cair → setor panen 1.700, siap diklaim |
0x0f31…Eb47 | Padi · Karanganyar, Demak, Jawa Tengah | Gagal panen | Tanam cair → gagal panen → sisa 540 + kompensasi cadangan 30 → klaim |
Anvil (lokal, chain 31337) — alamatnya selalu sama setiap npm run dev:chain, karena deploy dari akun bawaan Anvil pada nonce yang sama: factory 0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0, mUSDT 0x5FbDB2315678afecb367f032d93F642f64180aa3, MockAgentIdentity 0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512. Daftar lengkapnya ada di deployments/anvil.json.
Mode lokal tidak butuh akun, API key, maupun MetaMask. Chain, penyimpanan file, dan penilai foto semuanya berjalan di laptop.
Prasyarat: Node.js 20+, Git, dan Foundry (forge, anvil, cast).
git clone https://github.com/MrPrinceAli/bagipanen.git && cd bagipanen
git submodule update --init --depth 1 # library Foundry (forge-std, OpenZeppelin)
(cd web && npm install) && (cd agent && npm install)
Pastikan APP_MODE=local di agent/.env dan NEXT_PUBLIC_APP_MODE=local di web/.env.local. Jika file belum ada, salin bagiannya dari .env.example. Lalu jalankan di tiga terminal:
npm run dev:chain # 1. Anvil + deploy + data demo + daftarkan agen AI (biarkan jalan)
npm run dev:web # 2. web di http://localhost:3000
npm run dev:agent # 3. agen AI (log: [BUKTI] → [AI] → [PUTUSAN])
Pilih peran lewat pemilih akun demo di header. Setiap akun adalah akun bawaan Anvil:
Foto contoh berlisensi bebas ada di docs/demo-photos/, beserta sumber dan lisensinya. Di mode lokal, penilai foto adalah MockVision: ia menyetujui foto, kecuali nama filenya mengandung salah atau tolak, misalnya foto-salah-jagung.jpg. Pemeriksaan EXIF, duplikat, dan cuaca tetap berjalan sungguhan.
Menjalankan ulang npm run dev:chain memulai chain dari nol, dan agen mendeteksinya otomatis.
Kode yang sama berjalan di BSC testnet cukup dengan mengganti .env. Adapter yang dipakai otomatis beralih:
| Komponen | APP_MODE=local | APP_MODE=testnet |
|---|---|---|
| Jaringan | Anvil (31337) | BSC testnet (97) |
| Wallet | Pemilih akun demo | MetaMask via RainbowKit |
| Penyimpanan | Folder web/.local-ipfs/ | IPFS via Pinata |
| Penilai foto | MockVision | Gemini |
| Identitas agen | MockAgentIdentity | IdentityRegistry ERC-8004 resmi |
Semua layanan memakai paket gratis. Daftar variabelnya ada di .env.example:
contracts/.env: DEPLOYER_PRIVATE_KEY, BSC_TESTNET_RPC, BSCSCAN_API_KEY, dan ERC8004_IDENTITY_REGISTRY. Lalu jalankan:
npm run deploy:testnet # deploy + verifikasi BscScan + sync ABI & alamat ke web/ dan agent/
npm run seed:testnet # opsional: tBNB & mUSDT ke akun demo, daftarkan koperasi & petani
agent/.env, lalu jalankan cd agent && npm run register. Perintah ini mendaftar di registri ERC-8004 dan mengunggah agent card ke Pinata. Setelah itu admin memanggil setAgent di halaman /admin (bagian Konfigurasi agen AI) dengan parameter yang dicetak.npm run dev:agent untuk respons paling cepat. Jangan jalankan keduanya bersamaan.web/.env.local (NEXT_PUBLIC_APP_MODE=testnet, PINATA_JWT, NEXT_PUBLIC_IPFS_GATEWAY, NEXT_PUBLIC_BSC_TESTNET_RPC), lalu npm run dev:web atau deploy ke Vercel.web/ (framework Next.js terdeteksi otomatis).NEXT_PUBLIC_APP_MODE=testnet, PINATA_JWT (rahasia, hanya dipakai API route di server), NEXT_PUBLIC_IPFS_GATEWAY, NEXT_PUBLIC_BSC_TESTNET_RPC=https://bsc-testnet-rpc.publicnode.com, LOGS_RPC (rahasia, hanya server: RPC log berkunci milik sendiri, mis. akun gratis NodeReal), NEXT_PUBLIC_BSC_TESTNET_LOGS_RPC=https://rpc.sentio.xyz/bsc-testnet (cadangan publik). Server /api/logs memindai log mulai dari snapshot web/data/log-snapshot.json, yang diperbarui otomatis tiap 6 jam oleh workflow Snapshot log web; penyedia dicoba berurutan (LOGS_RPC → publicnode untuk blok baru → Sentio → NodeReal publik), NEXT_PUBLIC_IDR_PER_USDT=16000.web/lib/deployments.ts hasil npm run sync. Variabel NEXT_PUBLIC_*_ADDRESS hanya untuk menimpa alamat itu..github/workflows/agent.yml membangunkan agen setiap ±5 menit untuk satu putaran (npm start -- --once): membaca bukti baru di chain, menilainya, mencatat putusan, lalu berhenti. Gratis untuk repo publik dan tidak bergantung pada laptop siapa pun.
AGENT_PRIVATE_KEY, GEMINI_API_KEY, PINATA_JWT, IPFS_GATEWAY, BSC_TESTNET_RPC, LOGS_RPC (RPC log berkunci, juga dipakai workflow snapshot). Model bisa diatur lewat variables GEMINI_MODEL dan GEMINI_FALLBACK_MODELS.GITHUB_DISPATCH_TOKEN di environment variable Vercel (fine-grained token, repo ini saja, izin Actions: Read and write). Setelah petani mengirim foto, web memanggil /api/agent-wake, yang memicu workflow hanya jika kontrak resmi itu benar-benar punya bukti yang menunggu putusan dan agen belum berjalan. Putusan jadi keluar ±1–3 menit, bukan 5–15 menit.npm run test:contracts # 90 test Foundry, cakupan 100% baris/cabang/fungsi, termasuk fuzz pembulatan
npm run test:agent # 47 unit test agen (aturan putusan, EXIF, MockVision, model cadangan Gemini, cuaca, duplikat, antrean)
(cd web && npm run lint && npm run build)
Test Foundry mencakup semua skenario wajib PRD:
Hasil uji acceptance per butir PRD, di lokal dan BSC testnet, ada di docs/acceptance.md.
npm run dev:agent) dengan jeda ±10 detik.contracts/ Foundry: src/ (kontrak), test/, script/ (Deploy, Seed, SeedTestnet)
web/ Next.js App Router + Tailwind + wagmi v2 + RainbowKit (root directory Vercel)
agent/ Agen AI Node.js (viem, exifr, @google/genai), agent-card.json
deployments/ Alamat kontrak hasil deploy (anvil.json, bscTestnet.json)
scripts/ dev-chain.mjs (satu perintah chain lokal), sync.mjs (salin ABI & alamat)
docs/ PRD, keputusan teknis, hasil uji, riset ERC-8004, foto demo
Login sosial & gasless, BNB Greenfield, pasar sekunder token porsi, pembayaran x402, notifikasi WhatsApp/Telegram, mainnet, multisig admin, penilaian agen oleh admin saat sengketa, dan Validation Registry ERC-8004. Roadmap lengkapnya ada di docs/PRD.md.
Kontribusi terbuka, lihat CONTRIBUTING.md. Laporan keamanan lewat SECURITY.md. Foto demo berasal dari Wikimedia Commons; sumber dan lisensinya tercatat di docs/demo-photos/SUMBER.md.
© 2026 MrPrinceAli dan kontributor BagiPanen. Lisensinya dibagi dua:
contracts/src, contracts/test, contracts/script) dan deployments/: MIT, sama dengan kode yang terverifikasi di BscScan.Versi yang dirilis sebelum 21 Oktober 2026 tetap berlisensi MIT.
0x2e67…91F9 |
| Kentang · Kejajar, Wonosobo, Jawa Tengah |
| Gagal pendanaan |
| 25% terkumpul saat tenggat → refund 100% |
0xa13f…58bE | Cabai merah · Cikajang, Garut (uji coba awal) | Selesai | Foto jagung ditolak Gemini → unggah ulang → 3 tahap cair → klaim 630/378/252 |
0xB0C1…cb75 | Cabai merah · Garut (uji coba awal) | Berjalan | Foto bukti yang sama dipakai ulang → ditolak sebagai duplikat |
0xff66…74b9 | Cabai merah · Garut (uji coba awal) | Cari dana (sampai 15 Okt 2026) | — |