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.
See your leftover cash, follow what you own, and know when you can stop working. Budget, Invest, and Retire in one place. Educational, not advice.
FinanceTypeScript · CSSGitHub @0xamarsOnlineOwner 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
Investment App
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Product direction is in ROADMAP.md. Read that first and follow its product rules.
A modern, beautiful web app for tracking your investment portfolio and planning your retirement.
Built with Next.js, Supabase, and Tailwind CSS.
Portfolio Management — Add and track stocks, crypto, and other assets
Real-time Prices — Live market data for stocks and cryptocurrencies
Performance Tracking — Profit/Loss, returns, and portfolio allocation
Clean Dashboard — Beautiful, responsive UI
Node.js (v18+)
Supabase account
Clone the repository:
git clone [https://github.com/0xamars/My-Invest-Master.git](https://github.com/0xamars/My-Invest-Master.git)
cd My-Invest-Master
npm install
.env.local and add credentials (see below).| Variable | Required | Description |
|---|---|---|
NEXT_PUBLIC_SUPABASE_URL | Yes | Supabase project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Yes | Supabase anon key |
FMP_API_KEY | Yes | Financial Modeling Prep API key — quotes, batch quotes, history, news, symbol search, crypto prices, and Analysis fundamentals. Results are cached in the Supabase warehouse |
FMP_API_BASE | No | Override FMP API base (default https://financialmodelingprep.com/stable) |
FMP_DISPLAY_GATE_ENABLED | No | 1 or true limits FMP-backed market data to confirmed emails in FMP_DISPLAY_ALLOWED_EMAILS. Unset or 0 leaves every surface unchanged. Turning this on needs a Vercel env change and a redeploy |
FMP_DISPLAY_ALLOWED_EMAILS | No | Comma-separated emails that may see FMP data while the display gate is on. Do not commit a real address. Changing the list needs a Vercel env change and a redeploy |
NEXT_PUBLIC_BANK_CONNECT_ENABLED | No | 1 or true shows Connect bank. Unset keeps it hidden. Changing it needs a redeploy |
BANK_CONNECT_ENABLED | No | Server switch. 1 or true turns the API on. 0 turns it off even if the public flag is on |
PLAID_CLIENT_ID | No | Plaid client id. Server-only |
PLAID_SECRET | No | Plaid secret. Server-only |
PLAID_ENV | No | sandbox (default), development, or production |
PLAID_WEBHOOK_URL | No | https://<domain>/api/plaid/webhook — set in the Plaid dashboard |
PLAID_REDIRECT_URI | No | OAuth redirect for some banks. Usually https://<domain>/budget |
PLAID_TOKEN_ENCRYPTION_KEY | No | 32-byte key for access tokens at rest. Server-only. openssl rand -base64 32 |
SUPABASE_SERVICE_ROLE_KEY | Yes for bank link | Stores encrypted Plaid access tokens. Never expose to the browser |
Bank connection setup, sandbox credentials, production access, and security notes are in docs/plaid.md. The flag stays off until those steps are done. Apply supabase/migrations/013_user_plaid_items.sql and supabase/migrations/018_plaid_access_token_encryption.sql before the first bank link. An admin can turn bank connection on for one account from /admin while everyone else stays off. See docs/admin.md.
Crypto prices, charts, and headlines come from FMP (cached). CoinGecko remains for crypto search and logos, because those responses carry CoinGecko ids the logo route still uses. Set FMP_API_KEY in Vercel project settings for production. Apply supabase/migrations/015_market_cache.sql so news and symbol search share one warehouse row. That table has row level security and no anon or authenticated policies, so only the server (service role) reads and writes it. If production already ran the older 015 that created a public read policy, run drop policy if exists "Public read market_cache" on public.market_cache; in the Supabase SQL editor. Search and news rows older than 7 days are deleted opportunistically on later writes.
When FMP_DISPLAY_GATE_ENABLED is 1, stock pages, portfolio live prices, the heatmap, market news, stock ticker search, and analysis quote and fundamentals are served only to a signed-in, confirmed email listed in FMP_DISPLAY_ALLOWED_EMAILS, or to a confirmed account whose market-data override is on in /admin. Everyone else sees “Market data is not available on your account yet”, and those API routes return 403. Crypto ticker search stays on CoinGecko and is not part of this gate. Leave the flag unset until you choose to turn the gate on. Turning the gate on, or changing the allowlist, needs a Vercel environment change and a redeploy before it takes effect. A per-user override does not need a redeploy. See docs/admin.md.
Example .env.local fragment:
FMP_API_KEY=your_fmp_key_here
# FMP_DISPLAY_GATE_ENABLED=1
# [email protected]
Bash
npm run dev