Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
Portfolio risk and diversification analysis in plain language
Translation pending
FinanceTypeScript · PythonGitHub @HemeshKanyalOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Portfolio risk in plain language, stress-tested through 2008/2020/2022, with in-browser ZK identity.
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Portfolio risk and diversification analysis, explained in plain language.
Enter your holdings and RiskLens measures volatility, concentration and
correlation, shows which holdings carry the most risk, replays past crises,
and writes a short explanation. An optional identity check uses a
zero-knowledge proof made in your browser, so your details never leave your
device.
Educational tool, not investment advice.Read the full README ↗Portfolio risk and diversification analysis, explained in plain language. Enter your holdings and RiskLens measures volatility, concentration and correlation, shows which holdings carry the most risk, replays past crises, and writes a short explanation. An optional identity check uses a zero-knowledge proof made in your browser, so your details never leave your device.
Educational tool, not investment advice.
Live: https://risklens.hemeshkanyal.com · Code guide: docs/CODEBASE.md
| Part | Technology |
|---|---|
| Frontend | Next.js 16, React 19, Tailwind CSS 4, Recharts, noir_js + bb.js |
| Backend | FastAPI, Motor (MongoDB), pandas/numpy, yfinance |
| Language model | Google Gemini (production) or Ollama (local) |
| Proofs | Noir 1.0.0-beta.22, Barretenberg 5.0.0-nightly.20260522 |
| Hosting | Vercel (frontend), Render (backend), MongoDB Atlas (database) |
Prerequisites: Node.js 20+, Python 3.12+, Docker (for MongoDB), and either
a Gemini API key or Ollama. For the identity check you
also need Barretenberg (noirup -v 1.0.0-beta.22 && bbup).
# MongoDB (MongoDB 8 can't start on Linux kernel 6.19+, so use 7.0)
docker run -d --name risklens-mongo -p 127.0.0.1:27017:27017 \
-v risklens-mongo:/data/db --restart unless-stopped mongo:7.0
# Backend
cd backend
python3 -m venv .venv && ./.venv/bin/pip install -r requirements.txt
cp .env.example .env # set SECRET_KEY, and LLM_PROVIDER + its settings
# Frontend
cd ../risklens-frontend
npm ci
echo "NEXT_PUBLIC_API_URL=http://localhost:8000" > .env.local
# Start both (Ctrl+C stops them)
cd .. && scripts/dev.sh
The app runs on http://localhost:3000 and the API on http://localhost:8000.
With Ollama, pull a model first (ollama pull llama3.2:3b, and moondream for
screenshot import).
Create a free M0 cluster, a database user, and allow access from anywhere
(Network Access → 0.0.0.0/0, since Render's IPs change). Copy the
mongodb+srv://… connection string.
render.yaml.MONGODB_URL: the Atlas connection stringGEMINI_API_KEY: from Google AI StudioCORS_ORIGINS: your frontend URL(s), comma-separated, e.g. https://risklens.hemeshkanyal.comSECRET_KEY is generated automatically. The image installs bb for
identity proofs. Check https://<service>.onrender.com/ returns
{"message": "RiskLens backend running"}.The free plan sleeps after about 15 minutes without traffic; the first request afterwards takes up to a minute.
Set the project's root directory to risklens-frontend and add the
environment variable NEXT_PUBLIC_API_URL=https://<service>.onrender.com.
Pushing to main redeploys.
backend/ FastAPI app, auth, LLM/OCR, proof verification, Dockerfile
ai_phase1/ asset-class risk rules and rebalancing
ai_phase2/ market data, risk metrics, insights, stress tests
ai_phase3/ behavioural personalisation of explanations
zk/ Noir identity circuit and its verification key
risklens-frontend/ Next.js app (landing page, dashboard, in-browser prover)
scripts/ dev.sh (run locally), build-circuit.sh (rebuild the circuit)
docs/ CODEBASE.md: how the code fits together