SignalForge — DOGE/USD Prediction Market Bot · Pyth Playground 2026
Team: @[smartbott]
Submitted: March 2026
Answer Capsule
SignalForge is an automated prediction market trading bot that uses Pyth Network’s real-time DOGE/USD price feed as its sole data source. It polls Pyth every 10 seconds, runs a 3-voter ensemble of RSI, momentum, and TWAP indicators, and fires Telegram alerts when signals converge with live market edge calculation and Kelly Criterion bet sizing combined with Pyth Pulse a live multi-asset analytics dashboard streaming 8 Pyth price feeds simultaneously. Volatility heatmap, rolling correlation matrix, anomaly detector. Built entirely on Pyth’s Hermes WebSocket.
One feed. Two tools. Both live
What It Does
SignalForge monitors DOGE/USD 1-hour prediction markets on Limitless Exchange 24/7. Every 5 minutes a 3-voter ensemble silently evaluates market direction using only Pyth price data. When the same signal holds for 3 consecutive checks (15 minutes), the bot fires a Telegram alert with:
-
Signal direction (YES/NO)
-
Live Limitless market odds (YES% / NO%)
-
Edge calculation — model probability vs market implied
-
Kelly Criterion bet size with confidence tier
At market close it evaluates the outcome using the same Pyth oracle Limitless uses to settle — zero oracle discrepancy. Win/loss record and PnL persist across restarts.
A live dashboard (GitHub Pages) shows the entry signal banner, voter states, convergence streak, and PnL — all wired to live Pyth and bot data.
Pyth Features Used
- Price Feeds — off-chain via Hermes API (
hermes.pyth.network) - Hermes WebSocket — live price stream in the frontend dashboard and Pyth Pulse
Feed: DOGE/USD
dcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c
Why Pyth specifically?
Limitless Exchange resolves prediction markets using the Pyth DOGE/USD oracle
at expiry. SignalForge reads the exact same feed — what the bot predicts and
what the market resolves against are literally the same number. No oracle
discrepancy risk. This is a meaningful integration, not a checkbox.
Links
- Live Dashboard: [SignalForge — DOGE/USD Intelligence]
- Pyth Pulse Analytics: [Pyth Pulse — Multi-Asset Intelligence]
- Bot Stats API: https://signalforge-production-bc9d.up.railway.app/stats
- Source Code: [Goodie323/signalforge: Automated prediction market bot that uses Pyth real-time price data to generate high-confidence trading signals on Limitless Exchange]
- Video Walkthrough: [ Introducing SignalForge: A Prediction Market Bot for Real-Time Analytics 🚀 | Loom ]
Signal Example
🚨 DOGE CONVERGED SIGNAL
⏱ Elapsed: 25.3 min
📊 Held for: 25 mins (5/5 checks)
Price: 0.094437
Threshold: 0.094940
TWAP: 0.094821
🗳 Votes → YES:0 NO:3 SKIP:0
Prob (model): 0.914
━━━━━━━━━━━━━━━━━━
💰 Live Market Odds:
YES: 42.25% | NO: 57.75%
Pool size: $840
⚡ Edge: +33.7% ✅ Positive edge
━━━━━━━━━━━━━━━━━━
📌 Signal: NO
━━━━━━━━━━━━━━━━━━
🧾 Kelly Sizing:
Bankroll: $20.00
Bet size: $1.40 🔥 Full Kelly
If WIN: +$1.05
If LOSS: -$1.40
How Pyth Powers the Core Logic
DOGE_FEED_ID = "dcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c"
def get_price():
url = "https://hermes.pyth.network/v2/updates/price/latest"
params = {"ids[]": DOGE_FEED_ID}
r = requests.get(url, params=params, timeout=10)
data = r.json()
p = data["parsed"][0]["price"]
price = int(p["price"]) * (10 ** int(p["expo"]))
return price, int(p["publish_time"])
Every signal is 100% derived from Pyth price data. No other data source used.
Screenshots / Media
Tech Stack
| Component | Technology |
|---|---|
| Language | Python 3.11 |
| Price Data | Pyth Network — Hermes API + WebSocket |
| Prediction Market | Limitless Exchange (Base chain) |
| Deployment | Railway (24/7 cloud worker) |
| Dashboard | Vanilla JS + GitHub Pages |
| Notifications | Telegram Bot API |
| Auth | Supabase |
| On-chain Execution | web3.py + EIP-712 signing |
Content Contributions
- GitHub Gist: [SignalForge — Pyth Network integration for prediction market bot (Pyth Community Hackathon 2026)L]
- Tweet: [https://x.com/GoodnessAwoleye/status/2038304472200274251?s=20\\]
- Wikipedia: Blockchain oracle: Difference between revisions - Wikipedia
Eligibility
- 18+ years old
- Not in OFAC-sanctioned jurisdiction
- Original work created during hackathon period
- Read and agree to Terms & Conditions
- Apache 2.0 license

