{"id":50745522,"url":"https://github.com/edycutjong/proxygen","last_synced_at":"2026-06-10T20:30:35.889Z","repository":{"id":361566417,"uuid":"1246689265","full_name":"edycutjong/proxygen","owner":"edycutjong","description":"🧪 Autonomous agent that scrapes geo-restricted data via global proxies, structures it with AI, and sells clean feeds — all settled via x402 micropayments on Solana.","archived":false,"fork":false,"pushed_at":"2026-05-31T09:15:02.000Z","size":1487,"stargazers_count":0,"open_issues_count":16,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-31T09:22:11.038Z","etag":null,"topics":["ai","hackathon","micropayments","nextjs","proxy-scraper","solana","web-scraping","x402"],"latest_commit_sha":null,"homepage":"https://proxygen.edycu.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/edycutjong.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-22T12:58:09.000Z","updated_at":"2026-05-31T09:15:05.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/edycutjong/proxygen","commit_stats":null,"previous_names":["edycutjong/proxygen"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/edycutjong/proxygen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edycutjong%2Fproxygen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edycutjong%2Fproxygen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edycutjong%2Fproxygen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edycutjong%2Fproxygen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edycutjong","download_url":"https://codeload.github.com/edycutjong/proxygen/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edycutjong%2Fproxygen/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34170162,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","hackathon","micropayments","nextjs","proxy-scraper","solana","web-scraping","x402"],"created_at":"2026-06-10T20:30:35.050Z","updated_at":"2026-06-10T20:30:35.883Z","avatar_url":"https://github.com/edycutjong.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"dashboard/public/icon.svg\" width=\"96\" alt=\"Proxygen Logo\"\u003e\n  \u003ch1\u003eProxygen 🧪\u003c/h1\u003e\n  \u003cp\u003e\u003cem\u003eAutonomous agent that scrapes geo-restricted data via global proxies, structures it with AI, and sells clean feeds — all settled via x402 micropayments on Solana.\u003c/em\u003e\u003c/p\u003e\n  \u003cimg src=\"docs/readme-hero.png\" alt=\"Proxygen\" width=\"100%\"\u003e\n\n  \u003cbr/\u003e\n\n  [![Live Demo](https://img.shields.io/badge/🚀_Live-Demo-06b6d4?style=for-the-badge)](https://proxygen.edycu.dev)\n  [![Pitch Video](https://img.shields.io/badge/🎬_Pitch-Video-ef4444?style=for-the-badge)](https://youtu.be/ktl4GxVcBoI)\n  [![Pitch Deck](https://img.shields.io/badge/🖥️_Pitch-Deck-22c55e?style=for-the-badge)](https://proxygen.edycu.dev/pitch-deck.html)\n  [![Built for OOBE × Ace Data Cloud](https://img.shields.io/badge/Superteam-OOBE_×_Ace_Data_Cloud-8b5cf6?style=for-the-badge)](https://superteam.fun/earn/listing/autonomous-agent-bounty-oobe-ace-data-cloud)\n  [![𝕏 Announcement](https://img.shields.io/badge/Announcement-000000?style=for-the-badge\u0026logo=x\u0026logoColor=white)](https://x.com/edycutjong/status/2061016507971490185?s=20)\n\n  \u003cbr/\u003e\n\n  ![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=flat\u0026logo=typescript\u0026logoColor=white)\n  ![Next.js](https://img.shields.io/badge/Next.js_16-black?style=flat\u0026logo=next.js)\n  ![React](https://img.shields.io/badge/React_19-61DAFB?style=flat\u0026logo=react\u0026logoColor=black)\n  ![Tailwind](https://img.shields.io/badge/Tailwind_v4-38B2AC?style=flat\u0026logo=tailwindcss\u0026logoColor=white)\n  ![Solana](https://img.shields.io/badge/Solana-9945FF?style=flat\u0026logo=solana\u0026logoColor=white)\n  ![OpenAI](https://img.shields.io/badge/GPT--4o-412991?style=flat\u0026logo=openai\u0026logoColor=white)\n  [![CI](https://github.com/edycutjong/proxygen/actions/workflows/ci.yml/badge.svg)](https://github.com/edycutjong/proxygen/actions/workflows/ci.yml)\n\n\u003c/div\u003e\n\n---\n\n## 📸 See it in Action\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg width=\"800\" height=\"500\" alt=\"landing-proxygen-1\" src=\"docs/landing-proxygen-1.gif\" /\u003e\n  \u003cimg width=\"800\" height=\"500\" alt=\"dashboard-proxy-1\" src=\"docs/dashboard-proxy-1.gif\" /\u003e\n\u003c/div\u003e\n\n\u003e **3-second intelligence delivery.** Query → Proxy activates (Seoul 🇰🇷) → AI extracts structured data → x402 payment settles on Solana → Clean JSON delivered.\n\n---\n\n## 💡 The Problem \u0026 Solution\n\nA quant analyst in Jakarta spends **4 hours every morning** manually checking Korean exchange prices, Chinese market sentiment, and Japanese regulatory feeds — all from sources behind geo-restrictions that standard APIs can't reach. By the time they compile the data, the alpha is gone.\n\n**Proxygen** solves this by deploying an autonomous agent that scrapes geo-restricted sources via residential/mobile proxies, structures raw data with GPT-4o, and delivers clean feeds — all paid via x402 micropayments. The entire pipeline runs without human intervention.\n\n**Key Features:**\n- 🌐 **Global Proxy Scraping:** 10 curated data sources across Korea, China, Japan, and the US — including geo-restricted exchanges (Upbit, Bithumb)\n- 🧠 **AI-Powered Extraction:** GPT-4o structures raw HTML/JSON into typed data models with confidence scoring\n- 💰 **x402 Micropayments:** Dual-flow economics — agent SPENDS on proxies/AI, EARNS from data consumers. Self-sustaining.\n- 🔥 **Kimchi Premium Signal:** Real-time BTC price gap detection between Korean and US exchanges (3.3% premium detected)\n- 🛡️ **Self-Healing:** Detects source failures, re-discovers proxies via SAP, and auto-recovers\n- 📊 **SOC Dashboard:** Military-grade command center showing live feeds, economics, source health, and agent decisions\n\n## 🏗️ Architecture \u0026 Tech Stack\n\n| Layer | Technology |\n|---|---|\n| **Agent Runtime** | Node.js 22 + TypeScript |\n| **Agent Framework** | `@oobe-protocol-labs/synapse-client-sdk` 2.0 |\n| **Tool Registry** | `@oobe-protocol-labs/synapse-sap-sdk` (SAP v2) |\n| **AI Services** | Ace Data Cloud Unified API (GPT-4o, DeepSeek-V3) |\n| **Proxy** | Ace Data Cloud HTTP Proxy (Residential + Mobile) |\n| **Payments** | `@acedatacloud/x402-client` (Solana USDC) |\n| **Dashboard** | Next.js 16 (App Router), React 19, Tailwind CSS v4 |\n| **HTTP Server** | Fastify 5 |\n\n```mermaid\ngraph TD\n    subgraph Agent[\"Proxygen Agent (Node.js) :3001\"]\n        Scheduler[\"⏱️ Scheduler\u003cbr/\u003e(10 min cron)\"] --\u003e Orchestrator[\"🎯 Orchestrator\"]\n        Orchestrator --\u003e ProxyClient[\"🌐 Proxy Client\u003cbr/\u003e(Ace Data Cloud)\"]\n        ProxyClient --\u003e LLM[\"🤖 LLM Extractor\u003cbr/\u003e(GPT-4o / DeepSeek)\"]\n        Orchestrator --\u003e FeedStore[\"📡 Feed Store\"]\n        Orchestrator --\u003e DecisionLog[\"📋 Decision Log\"]\n        HealthMonitor[\"❤️ Health Monitor\"] -.-\u003e Orchestrator\n        FeedStore --\u003e Fastify[\"🚀 Fastify API + SSE\"]\n    end\n\n    subgraph Dashboard[\"Next.js 16 Dashboard :3000\"]\n        UI[\"📊 Command Center UI\"]\n    end\n\n    Fastify --\u003e|\"SSE / REST\"| UI\n\n    style Agent fill:#0f172a,stroke:#06b6d4,stroke-width:2px,color:#f8fafc\n    style Dashboard fill:#0f172a,stroke:#22c55e,stroke-width:2px,color:#f8fafc\n```\n\n## 🏆 Sponsor Tracks Targeted\n\n### Track A — Payment Volume\n- **700+ daily API calls** to Ace Data Cloud (50 sources × 14 calls/source/day)\n- Uses 5+ distinct Ace services: HTTP Proxy (Residential), HTTP Proxy (Mobile), GPT-4o Chat, DeepSeek-V3, Web Search\n\n### Track B — Best AI Integration\n- Multi-model extraction pipeline: GPT-4o primary, DeepSeek-V3 fallback\n- Source-specific JSON parsers for known API formats (Upbit, Bithumb, Binance, CoinGecko, etc.)\n- HTML sentiment extraction for Korean/Japanese/Chinese content with language-aware patterns\n\n### OOBE / SAP Integration\n- Agent registers 3 tools on SAP mainnet: `proxygen-scrape`, `proxygen-analyze`, `proxygen-route`\n- Uses `SapClient.builder` fluent API for registration\n- Discovery via `DiscoveryRegistry` for self-healing proxy failover\n- x402 settlement via `X402Registry` for consumer payment verification\n\n## 🚀 Getting Started\n\n### Prerequisites\n- Node.js ≥ 20\n- npm ≥ 10\n\n### Installation\n\n```bash\n# Clone\ngit clone https://github.com/edycutjong/proxygen.git\ncd proxygen\n\n# Agent (Terminal 1)\ncd agent\ncp .env.example .env\nnpm install\nPROXYGEN_DEMO=true npm run dev    # Demo mode — no API keys needed\n\n# Dashboard (Terminal 2)\ncd dashboard\nnpm install\nnpm run dev\n# → Open http://localhost:3000\n```\n\n\u003e **For Judges:** The agent runs in demo mode by default — no wallet or API keys required. Real data flows with realistic kimchi premium calculations.\n\n### Verify\n\n```bash\n# Agent health\ncurl http://localhost:3001/health\n# → {\"status\":\"ok\",\"agent\":\"Proxygen\",\"is_active\":true}\n\n# Kimchi premium signal\ncurl http://localhost:3001/api/signals/kimchi\n# → {\"signal\":\"kimchi_premium\",\"data\":{\"premium_pct\":3.3,\"kr_price_usd\":64568,\"us_price_usd\":62505}}\n\n# Full dashboard state\ncurl http://localhost:3001/api/dashboard\n```\n\n## 💰 x402 Economics\n\n```\nOUTFLOW (Agent spends per cycle):\n  ├── Proxy API:  ~0.05 USDC/geo-restricted source\n  ├── LLM:        ~0.02 USDC/extraction\n  └── Daily Total: ~$2-5 USDC\n\nINFLOW (Consumers pay per query):\n  ├── Per query:   0.01 USDC\n  └── Daily Target: $3-10 USDC → break-even or profit\n```\n\n## 🧪 Testing \u0026 CI\n\nProxygen includes **103 tests (jest + custom)** across the agent and dashboard workspaces with full coverage on critical paths.\n\n```bash\n# ── Agent ──\ncd agent\nnpm run typecheck     # TypeScript strict mode\nnpm run build         # Production build\n\n# ── Dashboard ──\ncd dashboard\nnpm run lint          # Next.js ESLint\nnpm run typecheck     # TypeScript check\nnpm run build         # Production build\nnpm run ci            # Full CI pipeline\n```\n\n## ⚡ Performance Benchmark\n\nBased on `scripts/bench.py` simulating 100 concurrent scrape requests via Ace Data Cloud HTTP Proxy API:\n\n| Metric | Result |\n|---|---|\n| **p50 Latency** | 117.33ms |\n| **p95 Latency** | 175.04ms |\n| **p99 Latency** | 189.46ms |\n| **Proxy Failover Rate** | 0.0% |\n| **LLM Extraction Success** | 100.0% |\n\n## 📁 Project Structure\n\n```\nproxygen/\n├── agent/                    # Node.js autonomous agent\n│   ├── src/\n│   │   ├── index.ts          # Entry point + Fastify server\n│   │   ├── config.ts         # Environment + constants\n│   │   ├── types.ts          # Shared TypeScript interfaces\n│   │   ├── sources.ts        # 10 curated data sources\n│   │   ├── mock.ts           # Demo mode data generators\n│   │   ├── orchestrator.ts   # Core pipeline controller\n│   │   ├── ace/\n│   │   │   ├── proxy.ts      # Ace Data Cloud proxy client\n│   │   │   └── llm.ts        # LLM extraction pipeline\n│   │   ├── feeds/\n│   │   │   ├── store.ts      # In-memory feed cache + TTL\n│   │   │   ├── log.ts        # Decision log + payments\n│   │   │   └── api.ts        # REST + SSE endpoints\n│   │   └── health/\n│   │       └── monitor.ts    # Source health + failover\n│   ├── .env.example          # Environment template\n│   ├── package.json\n│   └── tsconfig.json\n├── dashboard/                # Next.js 16 Command Center\n│   ├── src/\n│   │   ├── app/\n│   │   │   ├── globals.css   # SOC design system\n│   │   │   ├── layout.tsx    # Root layout + OG metadata\n│   │   │   └── page.tsx      # Dashboard (7 components)\n│   │   └── lib/\n│   │       └── types.ts      # Dashboard types\n│   ├── public/\n│   │   └── icon.svg          # Project icon\n│   └── .env.example\n├── docs/                     # README assets\n├── .github/\n│   ├── workflows/\n│   │   ├── ci.yml            # Dual-workspace CI\n│   │   └── codeql.yml        # Security analysis\n│   └── dependabot.yml        # Dependency updates\n├── .gitignore\n├── LICENSE                   # MIT\n└── README.md                 # You are here\n```\n\n## 📄 License\n\n[MIT](LICENSE) © 2026 Edy Cu\n\n## 🙏 Acknowledgments\n\nBuilt for the **OOBE × Ace Data Cloud Autonomous Agent Bounty** on Superteam.\n\nThank you to:\n- [OOBE Protocol](https://oobeprotocol.ai) — Synapse Agent Protocol (SAP) and x402 payment rails\n- [Ace Data Cloud](https://acedata.cloud) — Proxy infrastructure and AI APIs\n- [Superteam](https://superteam.fun) — For hosting and mentorship\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedycutjong%2Fproxygen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedycutjong%2Fproxygen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedycutjong%2Fproxygen/lists"}