Project Info
Inspiration
One tweet can move a stock overnight, and as beginner retail traders, we often follow advices and FOMO with little to no real research while large institutions have Bloomberg terminals on their hands. Approximately 70% to 90% of retail traders lose money over the long term regardless of market conditions, according to US SEC. TickerMaster is a sandbox of financial AI agents that lets you test strategies, learn trading fundamentals, and understand sentiment-driven moves before you place real world orders.
What it does
TickerMaster has 3 core features: Research: Input any ticker and get a live, cited brief that combines: Market data and technical context Perplexity-powered catalyst synthesis Social sentiment from X/Reddit Prediction-market context (Kalshi/Polymarket) Research: Input any ticker and get a live, cited brief that combines: Market data and technical context Perplexity-powered catalyst synthesis Social sentiment from X/Reddit Prediction-market context (Kalshi/Polymarket) Simulation: Run a multi-agent trading arena where different AI personas react to: Volatility regimes Breaking narrative shifts Each other’s behavior Portfolio/risk constraints. Simulation: Run a multi-agent trading arena where different AI personas react to: Volatility regimes Breaking narrative shifts Each other’s behavior Portfolio/risk constraints. Tracker: Set watchlists and alerts that continuously monitor your tickers and notify you when key signals hit. You can also video call with our AI avatar that will support you as a broker agent 24/7. Tracker: Set watchlists and alerts that continuously monitor your tickers and notify you when key signals hit. You can also video call with our AI avatar that will support you as a broker agent 24/7.
How we built it
Architecture: Frontend: React + TypeScript (Vite) Backend: FastAPI + WebSockets Data/Auth: Supabase Deployment: Vercel (frontend) + cloud backend service Sponsor/tool integrations: Modal Inference : Persona inference workflows Modal Sandbox: Isolated simulation execution Perplexity Sonar: Cited research synthesis OpenAI: Commentary, explanation, and educational post-analysis Browserbase/ Stagehand (integration path) : Automated web data workflows HeyGen: Conversational broker-avatar UX Engineering highlights: Source-aware research pipeline with fallback behavior Real-time event streaming over WebSockets Agent orchestration for simulation + tracker systems Caching/rate-limit controls and production guardrails
Challenges we ran into
One teammate dropped/had to leave :( Managing API limits especially with hosting/deployment. Hence, ⚠️ disclaimer: Our deployed Vercel website might have hit the token limit by the time you check it out. Come stop by our booth, where we will demo TickerMaster live!
Accomplishments we're proud of
Built an end-to-end “retail Bloomberg sandbox” in hackathon time Shipped a working multi-agent simulation system Delivered citation-backed research summaries from multiple signal types Implemented persistent tracker workflows with alert context Created a product that teaches process, not just predictions
What we learned
Running inference and sandboxes on Modal.
What's next
Live Brokerage Calls: Users can execute real trades with a nostalgic NYSE floor-style voice flow, where an AI broker calls out the order, confirms risk checks, and submits it in real time. Better portfolio-level risk analytics and scenario testing Deeper explainability for “why this signal matters now” Smarter agent memory and adaptive strategy tuning Reliability upgrades for always-on production performance DISCLAIMERS: TickerMaster is educational and not investment advice. This application is resource-intensive and performs frequent reads/writes and large data pulls across multiple services. Our backend is currently deployed on a free-tier plan, so you may experience slow load times, rate limits, temporary downtime, or delayed updates—especially during peak traffic. If the site is bottlenecked when you try it, please stop by our booth for a live demo of TickerMaster!
TickerMaster MVP (TreeHacks 2026)
TickerMaster is a real-time sandbox for learning trading dynamics through AI agents and market intelligence feeds.
Core product surfaces:
Research: Perplexity Sonar + X + Reddit + prediction-market context.Simulation: Multi-agent arena with order-book impact, slippage, delayed news propagation, and crash regimes.Tracker: Real-time watchlist with valuation metrics, spike detection, and alert pipeline.
Stack
- Backend:
FastAPI+WebSockets - Market Data:
Alpaca(primary) +Finnhub(fallback) - Frontend:
React+TypeScript+Vite+Recharts - Agent models:
OpenRouter(open-source model default:meta-llama/llama-3.1-8b-instruct) - Commentary model:
OpenAI
Monorepo Layout
TickerMaster/
backend/
app/
main.py
schemas.py
routers/
services/
requirements.txt
.env.example
frontend/
src/
components/
hooks/
lib/
package.json
.env.example
.env.example
.gitignore
Step-by-Step Startup
1) Create .env in repo root
Create /TickerMaster/.env and include at minimum:
# Supabase
SUPABASE_URL=https://<your-project>.supabase.co
SUPABASE_KEY=<your-publishable-key>
SUPABASE_SERVICE_KEY=<your-secret-service-role-key>
DATABASE_URL=postgresql://postgres:<password>@db.<project>.supabase.co:5432/postgres
# Backend URL
BACKEND_URL=http://localhost:8000
Add your API keys for Alpaca / Finnhub / Perplexity / OpenAI / OpenRouter / X / Browserbase / Modal as needed. For SMS notifications, also configure Twilio:
TWILIO_ACCOUNT_SIDTWILIO_AUTH_TOKENTWILIO_FROM_NUMBER- optional fallback recipient
TWILIO_DEFAULT_TO_NUMBER
For Modal sandbox runtime, also set:
MODAL_SIMULATION_APP_NAME(defaulttickermaster-simulation)MODAL_SANDBOX_TIMEOUT_SECONDS(default600)MODAL_SANDBOX_IDLE_TIMEOUT_SECONDS(default120)MODAL_INFERENCE_FUNCTION_NAME(defaultagent_inference)MODAL_INFERENCE_TIMEOUT_SECONDS(default15)
To enable Modal inference function:
modal secret create tickermaster-secrets OPENROUTER_API_KEY=<your-openrouter-key>
modal deploy simulation/modal_inference.py
For frontend auth, add these in frontend/.env:
VITE_API_URL=http://localhost:8000
VITE_SUPABASE_URL=https://<your-project>.supabase.co
VITE_SUPABASE_ANON_KEY=<your-publishable-key>
2) Apply database schema in Supabase
In Supabase Dashboard:
- Open
SQL Editor. - Paste contents of
supabase/schema.sql. - Run it once.
This creates tables like research_cache, agent_activity, simulations, tracker_agents, tracker_alerts, watchlist, and favorite_stocks.
3) Start backend (Terminal A)
cd backend
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
Backend URL: http://localhost:8000
4) Start frontend (Terminal B)
cd frontend
npm install
npm run dev
Frontend URL: http://localhost:5173
5) Verify backend is healthy
curl http://localhost:8000/api/health
curl http://localhost:8000/api/ticker/NVDA/quote
curl http://localhost:8000/api/ticker/NVDA/ai-research
curl http://localhost:8000/api/ticker/NVDA/sentiment
curl "http://localhost:8000/api/prediction-markets?query=fed"
curl http://localhost:8000/api/ticker/NVDA/x-sentiment
6) Optional: verify Supabase writes
Use Supabase SQL Editor or REST to confirm rows are being inserted into:
research_cacheagent_activitysimulationstracker_alerts
If cache writes appear but activity/alerts do not, confirm backend is using SUPABASE_SERVICE_KEY (not only publishable key).
API Highlights
POST /research/analyzeGET /research/candles/{ticker}POST /simulation/startPOST /simulation/stop/{session_id}GET /simulation/sessionsPOST /simulation/modal/sandboxGET /simulation/modal/cron-healthGET /tracker/snapshotPOST /tracker/watchlistPOST /tracker/alertsPOST /tracker/pollPOST /api/tracker/agents/nl-create(natural-language tracker agent creation)POST /api/tracker/agents/{agent_id}/interact(manager chat + tool routing)POST /chat/commentaryGET /integrationsWS /ws/stream?channels=global,simulation,tracker
How the MVP Maps to Sponsor Tool Requirements
Research
- Perplexity Sonar API for catalyst synthesis.
- X API and Reddit API ingestion for public sentiment flow.
- Kalshi + Polymarket adapters for prediction-market context.
- Finance graphing via Alpaca/Finnhub candles and metric tables.
- Tool links exposed in UI for Morningstar / Reuters / J.P. Morgan / Alpaca / Finnhub.
Simulation
- Natural-language sandbox trigger endpoint for Modal (
/simulation/modal/sandbox). - Backend now launches Modal sandboxes through the Modal Python SDK (
modal==1.3.3) when credentials are present. - Simulation sessions started with
inference_runtime=modalfirst call a Modal function for agent decisions, then fall back to direct OpenRouter if Modal inference is unavailable. - OpenRouter-powered agents with user-defined parameters:
- personality
- model
- aggressiveness
- risk limit
- trade size
- Realism mechanics:
- order book spread + market impact
- execution slippage
- delayed news diffusion (quant first, retail lag)
- crash regimes sampled from S&P 500 return distribution
Tracker Pipeline
Trigger: periodic polling loop for price/volume anomalies (cron-ready for Modal).Investigate: Perplexity Sonar explains likely catalysts.Analyze: Cerebras or NVIDIA NIM synthesizes high-signal narrative.Notify: Poke Recipe/MCP handoff payload (npx pokeworkflow, no direct Poke HTTP API dependency).
Poke Setup (TreeHacks)
Run this once from repo root to wrap TickerMaster as a Poke MCP Recipe:
npx poke
Then open Kitchen to test/deploy your Recipe and wire alert payloads:
- Kitchen: https://poke.com/kitchen
- Recipes docs: https://poke.com/docs/recipes
Required External Links
- OpenAI: https://platform.openai.com/
- OpenRouter: https://openrouter.ai/
- Perplexity Sonar: https://docs.perplexity.ai/
- X API: https://developer.x.com/en/docs
- Reddit API: https://www.reddit.com/dev/api/
- Kalshi API: https://docs.kalshi.com/
- Polymarket: https://docs.polymarket.com/
- Modal Sandbox: https://modal.com/docs/guide/sandbox
- Modal Cron: https://modal.com/docs/guide/cron
- Poke Docs: https://poke.com/docs/recipes
- Poke Kitchen: https://poke.com/kitchen
- Poke npm package: https://www.npmjs.com/package/poke
- Interaction Company: https://interaction.co/
- Cerebras API: https://inference-docs.cerebras.ai/
- NVIDIA NIM: https://build.nvidia.com/
- Morningstar: https://www.morningstar.com/
- Reuters Markets: https://www.reuters.com/markets/
- J.P. Morgan Insights: https://www.jpmorgan.com/insights
- Alpaca Market Data: https://docs.alpaca.markets/docs/about-market-data-api
- Finnhub: https://finnhub.io/
Notes
- This MVP is educational and not investment advice.
- Most integrations gracefully fall back to synthetic/demo responses if keys are missing.
- For production: persist state, secure auth, rate-limit providers, and harden retry/backoff logic.
Analysis
View
Metric
- 27
- 18
- 6
- 1
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- FastAPIIn code
- HTMLIn code
- PythonIn code
- ReactIn code
- SQLIn code
- SupabaseIn code
- TypeScriptIn code
- OpenAIClaimed
8 of 9 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
- CursorCommits
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
1002 KB
Source files
79
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
arigon79/TickerMaster
106 files · 5.6 MB · @ e5bdb6d
Structure
Interface
50 files · 47%Screens, components and styles rendered to the user.
Application logic
14 files · 13%Domain rules, services and shared utilities.
Data & schema
2 files · 2%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python60%
- TypeScript29%
- CSS7%
- SQL2%
- Markdown1%
- HTML0%
- Other (1)0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
backend/requirements.txt
pypi · 14- fastapi
- fredapi
- httpx
- modal
- nltk
- numpy
- pandas
- poke
- praw
- pydantic-settings
- python-dotenv
- requests-oauthlib
- supabase
- uvicorn[standard]
frontend/package.json
npm · 13- axios
- clsx
- jspdf
- lightweight-charts
- react
- react-dom
- recharts
- +6 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.