{"id":50745526,"url":"https://github.com/edycutjong/skeet","last_synced_at":"2026-06-10T20:30:36.313Z","repository":{"id":362171895,"uuid":"1256402886","full_name":"edycutjong/skeet","owner":"edycutjong","description":"📈 Fully autonomous PvP momentum trading agent and real-time telemetry console for BID Protocol.","archived":false,"fork":false,"pushed_at":"2026-06-03T01:00:00.000Z","size":1677,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-03T02:13:39.904Z","etag":null,"topics":["ai","crypto","defi","hackathon","nextjs","trading-bot","typescript"],"latest_commit_sha":null,"homepage":"https://skeet.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-06-01T18:40:49.000Z","updated_at":"2026-06-03T01:00:04.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/edycutjong/skeet","commit_stats":null,"previous_names":["edycutjong/skeet"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/edycutjong/skeet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edycutjong%2Fskeet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edycutjong%2Fskeet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edycutjong%2Fskeet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edycutjong%2Fskeet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edycutjong","download_url":"https://codeload.github.com/edycutjong/skeet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edycutjong%2Fskeet/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","crypto","defi","hackathon","nextjs","trading-bot","typescript"],"created_at":"2026-06-10T20:30:35.305Z","updated_at":"2026-06-10T20:30:36.307Z","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\" alt=\"Skeet Logo\" width=\"100\"\u003e\n  \u003ch1\u003e🎯 Skeet — PVP Trading Agent\u003c/h1\u003e\n  \u003cp\u003e\u003cem\u003eSkeet is a fully autonomous trading agent built specifically for Creatorbid's \u003cstrong\u003eBID Protocol \"Beat the House\"\u003c/strong\u003e PvP trading competition.\u003c/em\u003e\u003c/p\u003e\n  \n  \u003cimg src=\"docs/readme-hero.png\" alt=\"Skeet Hero\" width=\"100%\"\u003e\n  \u003cbr/\u003e\n  \u003cbr/\u003e\n\n  [![Live Demo](https://img.shields.io/badge/🚀_Live-Demo-06b6d4?style=for-the-badge)](https://skeet.edycu.dev/)\n  [![Pitch Deck](https://img.shields.io/badge/📊_Pitch-Deck-f59e0b?style=for-the-badge)](https://skeet.edycu.dev/pitch/index.html)\n  [![Built for Creatorbid](https://img.shields.io/badge/Creatorbid-BID_Protocol-8b5cf6?style=for-the-badge)](https://dorahacks.io/hackathon/bid-protocol/detail)\n\n  \u003cbr/\u003e\n\n  ![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=badge\u0026logo=typescript\u0026logoColor=white)\n  ![Node.js](https://img.shields.io/badge/Node.js-339933?style=badge\u0026logo=nodedotjs\u0026logoColor=white)\n  ![Next.js](https://img.shields.io/badge/Next.js_16-black?style=badge\u0026logo=next.js)\n  ![React](https://img.shields.io/badge/React_19-61DAFB?style=badge\u0026logo=react\u0026logoColor=black)\n  ![Tailwind](https://img.shields.io/badge/Tailwind_v4-38B2AC?style=badge\u0026logo=tailwindcss\u0026logoColor=white)\n  ![SQLite](https://img.shields.io/badge/SQLite-003B57?style=badge\u0026logo=sqlite\u0026logoColor=white)\n  ![Ethers.js](https://img.shields.io/badge/Ethers.js_v6-2735C4?style=badge\u0026logo=ethereum\u0026logoColor=white)\n  ![Vitest](https://img.shields.io/badge/Vitest-6E9F18?style=badge\u0026logo=vitest\u0026logoColor=white)\n  [![Skeet CI](https://github.com/edycutjong/skeet/actions/workflows/ci.yml/badge.svg)](https://github.com/edycutjong/skeet/actions/workflows/ci.yml)\n\u003c/div\u003e\n\n---\n\n## 📸 See it in Action\n*(Insert a high-quality GIF here showing the core workflow of your app)*\n![App Demo](dashboard/public/og-image.png)\n\n## 💡 The Problem \u0026 Solution\nIn PvP trading competitions, speed, precise timing, and risk management are critical, and human execution is too slow to compete at the edge. \n**Skeet** solves this by reading the on-chain game clock and capturing the dissolution reserve split that naive momentum bots miss.\n\n**Key Features:**\n- ⚡ **Autonomous Execution:** State machine handles WATCH ➔ TRADE ➔ EXIT/HOLD transitions seamlessly.\n- 🔒 **Protocol-Native Edge:** Synchronizes natively with BID Protocol's clock to execute precise actions according to the selected strategy mode.\n- 🎨 **Real-Time Telemetry:** Dashboard UI to monitor real-time PnL and active round execution charts.\n- 🛡️ **Budget Guards:** Sizing fractions are calculated natively against the EOA/Safe balances on chain `42069`.\n\n## 🏗️ Architecture \u0026 Tech Stack\nWe built the trading daemon using **TypeScript**, **ethers.js**, and **better-sqlite3** for persistence. The telemetry dashboard is powered by **Next.js 16** and **Tailwind CSS**.\n\n```mermaid\nflowchart TD\n    subgraph Chain[\"BID Protocol Testnet\"]\n        GS[Game Phase + Clock]\n        AMM[AMM Price + Reserves]\n        TX[Swap Txns]\n    end\n\n    subgraph Agent[\"Skeet Agent (TypeScript)\"]\n        FEED[Feed Listener]\n        STATE[State Machine: WATCH ➔ TRADE ➔ EXIT]\n        SIG[Signals Engine: EMA + Volatility]\n        RISK[Risk Engine: Kelly + Throttle]\n        DEC[decide Brain]\n        EXEC[Safe Executor]\n        LOG[(SQLite Database)]\n    end\n\n    GS --\u003e FEED\n    AMM --\u003e FEED\n    FEED --\u003e STATE --\u003e SIG --\u003e RISK --\u003e DEC --\u003e EXEC --\u003e TX\n    DEC --\u003e LOG\n    EXEC --\u003e LOG\n```\n\n### 🚀 Performance Benchmarks \u0026 Testing\n* **Vitest Suite**: 185 tests passing (173 daemon tests + 12 dashboard tests, with 100% statement coverage on the core decision engine).\n* **Latency**: Running `npm run bench` over 1,000 mock tick evaluations returns a **Median (p50)** evaluation latency of **0.0005 ms** (Max: 0.0636 ms).\n\n## 🏆 Sponsor Tracks Targeted\n* **Creatorbid's BID Protocol**: Skeet leverages native protocol features like `GET /api/game` for exact server timelines and optimizes against the AMM dissolution phase payload structure on chain `42069`.\n\n## 🚀 Run it Locally (For Judges)\n\n1. **Clone the repo:** `git clone https://github.com/edycutjong/skeet.git`\n2. **Install dependencies:** `npm install \u0026\u0026 cd dashboard \u0026\u0026 npm install \u0026\u0026 cd ..`\n3. **Set up environment variables:** Rename `.env.example` to `.env` and add your BID access code.\n4. **Run safety verifications and start the daemon:**\n   ```bash\n   npm test\n   npm run verify-offline\n   npm start\n   ```\n5. **Run the telemetry dashboard:**\n   ```bash\n   cd dashboard\n   npm run dev\n   # Open http://localhost:3000\n   ```\n\n\u003e **Note for Judges:** \n\u003e You can bypass live trading and view our offline backtest evaluations by running `npm run backtest`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedycutjong%2Fskeet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedycutjong%2Fskeet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedycutjong%2Fskeet/lists"}