From d81dc0547e6d01536ef045a880d447289cc9b670 Mon Sep 17 00:00:00 2001 From: timepointai Date: Fri, 13 Mar 2026 10:49:46 -0600 Subject: [PATCH 1/2] security: remove hardcoded secret fallbacks, private repo names, and Railway URLs - Add wallet files to .gitignore (.production-wallet-backup.json, .test-wallet.json, etc.) - Remove insecure default fallbacks for SESSION_SECRET, MASTER_WALLET_SECRET, NODE_PRIVATE_KEY - Remove private repo names (web-app, iphone-app, billing, landing) from README - Scrub Railway deployment URL from README, ARCHITECTURE, ROADMAP, FIREBASE-SETUP-GUIDE - Remove Railway service enumeration from README and SETUP.md Co-Authored-By: Claude Opus 4.6 --- .gitignore | 9 +++++++++ README.md | 17 ++++++----------- app.py | 2 +- config.py | 2 +- docs/ARCHITECTURE.md | 2 +- docs/ROADMAP.md | 2 +- docs/SETUP.md | 8 +------- docs/archive/FIREBASE-SETUP-GUIDE.md | 2 +- services/embedded_wallet.py | 2 +- 9 files changed, 22 insertions(+), 24 deletions(-) diff --git a/.gitignore b/.gitignore index 8c72f93..d886314 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,12 @@ slither-report.json # Local config .claude/settings.local*.json + +# Wallet files (NEVER commit) +.production-wallet-backup.json +.production-wallet-backup.json.password +.test-wallet.json +.test_wallets.json + +# Stoneforge +.stoneforge/ diff --git a/README.md b/README.md index fabd298..10b448e 100644 --- a/README.md +++ b/README.md @@ -244,14 +244,13 @@ Use **PredictionMarketV2** for everything. V1 lacks a resolution mechanism. ## Deployment -The backend runs on **Railway** at `proteus-production-6213.up.railway.app`, auto-deploying from `main`. +The backend runs on **Railway**, auto-deploying from `main`. -| Service | Provider | Purpose | -|---------|----------|---------| -| Backend (gunicorn + Flask) | Railway | API, admin dashboard, marketing pages | -| Redis | Railway | Caching, Celery broker, auth stores | -| Postgres | Railway | Available but unused (chain-only mode) | -| Smart contracts | BASE Sepolia | All market data on-chain | +| Service | Purpose | +|---------|---------| +| Backend (gunicorn + Flask) | API, admin dashboard, marketing pages | +| Redis | Caching, Celery broker, auth stores | +| Smart contracts (BASE Sepolia) | All market data on-chain | ### Local Development @@ -358,10 +357,6 @@ Open-source engines for temporal AI. Render the past. Simulate the future. Score | **SNAG Bench** | Open Source | timepoint-snag-bench | Quality Certifier — measures Causal Resolution across renderings | | **Proteus** | **Open Source** | **proteus** | **Settlement Layer — prediction markets that validate Rendered Futures** | | **TDF** | Open Source | timepoint-tdf | Data Format — JSON-LD interchange across all services | -| **Web App** | Private | timepoint-web-app | Browser client at app.timepointai.com | -| **iPhone App** | Private | timepoint-iphone-app | iOS client — Synthetic Time Travel on mobile | -| **Billing** | Private | timepoint-billing | Payment processing — Apple IAP + Stripe | -| **Landing** | Private | timepoint-landing | Marketing site at timepointai.com | **The Timepoint Thesis** — a forthcoming paper formalizing the Rendered Past / Rendered Future framework, the mathematics of Causal Resolution, the TDF specification, and the Proof of Causal Convergence protocol. Follow [@seanmcdonaldxyz](https://x.com/seanmcdonaldxyz) for updates. diff --git a/app.py b/app.py index 82bb9d9..af92c8f 100644 --- a/app.py +++ b/app.py @@ -41,7 +41,7 @@ def create_app(): app.wsgi_app = ProxyFix(app.wsgi_app, x_proto=1, x_host=1) # Set secret key for flash messages only (not for sessions) - app.secret_key = os.environ.get("SESSION_SECRET", "phase7-blockchain-only-flash-messages") + app.secret_key = os.environ["SESSION_SECRET"] # Load configuration # Phase 4: Use chain-only configuration diff --git a/config.py b/config.py index ffa6e5b..d071004 100644 --- a/config.py +++ b/config.py @@ -19,7 +19,7 @@ class Config: # Node configuration NODE_OPERATOR_ID = os.environ.get('NODE_OPERATOR_ID') or 'default-node-001' - NODE_PRIVATE_KEY = os.environ.get('NODE_PRIVATE_KEY') or 'dev-private-key' + NODE_PRIVATE_KEY = os.environ.get('NODE_PRIVATE_KEY') NODE_PUBLIC_KEY = os.environ.get('NODE_PUBLIC_KEY') or 'dev-public-key' # BASE Blockchain configuration diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index d1a08c2..6a30724 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -36,7 +36,7 @@ The novel piece is on-chain Levenshtein distance as a scoring function for predi ┌─────────────────────▼───────────────────────────────────┐ │ Flask Backend (Railway) │ │ (gunicorn, API Routes, Wallet Auth, Redis Cache) │ -│ proteus-production-6213.up.railway.app │ +│ (Railway deployment) │ └─────────────────────┬───────────────────────────────────┘ │ ┌─────────────────────▼───────────────────────────────────┐ diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index d8c5917..320bfa2 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -22,7 +22,7 @@ Validate that on-chain Levenshtein distance works as a prediction market scoring - [x] Structured logging, request tracing - [x] Railway deployment (gunicorn + Redis, auto-deploy from GitHub) -**Result:** The primitive works. Smart contracts handle the full lifecycle. Levenshtein scoring resolves markets deterministically on-chain. Backend deployed on Railway at `proteus-production-6213.up.railway.app`. +**Result:** The primitive works. Smart contracts handle the full lifecycle. Levenshtein scoring resolves markets deterministically on-chain. Backend deployed on Railway. **Known tradeoffs (acceptable for prototype):** - PBKDF2 embedded wallet shim (not real CDP) diff --git a/docs/SETUP.md b/docs/SETUP.md index 33a7860..f30921d 100644 --- a/docs/SETUP.md +++ b/docs/SETUP.md @@ -297,13 +297,7 @@ See the README "Worked Examples" section for details on each example market. The app is deployed on Railway, auto-deploying from `main`. -| Component | Provider | -|-----------|----------| -| Backend | Railway (gunicorn via `railway.json`) | -| Redis | Railway Redis plugin | -| Postgres | Railway (available, unused in chain-only mode) | - -Railway environment variables to configure: `REDIS_URL`, `JWT_SECRET_KEY`, `XCOM_BEARER_TOKEN`, `FIREBASE_*`, `COINBASE_*`, `DEPLOYER_PRIVATE_KEY`, `SESSION_SECRET`. +Required environment variables: `REDIS_URL`, `JWT_SECRET_KEY`, `XCOM_BEARER_TOKEN`, `FIREBASE_*`, `COINBASE_*`, `DEPLOYER_PRIVATE_KEY`, `SESSION_SECRET`. ## Production Deployment (Mainnet) diff --git a/docs/archive/FIREBASE-SETUP-GUIDE.md b/docs/archive/FIREBASE-SETUP-GUIDE.md index 4aa4aa1..0c42042 100644 --- a/docs/archive/FIREBASE-SETUP-GUIDE.md +++ b/docs/archive/FIREBASE-SETUP-GUIDE.md @@ -85,7 +85,7 @@ This guide documents the exact Firebase Console configuration required for email 5. Under **Application restrictions**: - Select **HTTP referrers** - Add: - - `https://proteus-production-6213.up.railway.app/*` + - `https:///*` - `https://yourdomain.com/*` 6. Under **API restrictions**: - Select **Restrict key** diff --git a/services/embedded_wallet.py b/services/embedded_wallet.py index 7dc623b..7a08346 100644 --- a/services/embedded_wallet.py +++ b/services/embedded_wallet.py @@ -331,7 +331,7 @@ def _generate_seed(self, identifier: str) -> bytes: "PBKDF2 seed generation should not be called when CDP is configured. " "Use CDP wallet creation instead." ) - master_secret = os.environ.get('MASTER_WALLET_SECRET', 'default-secret-change-in-production') + master_secret = os.environ["MASTER_WALLET_SECRET"] combined = f"{master_secret}:{identifier}" # Legacy salt — do not change without migrating existing wallets return hashlib.pbkdf2_hmac('sha256', combined.encode(), b'clockchain', 100000) From 81978e9a4daa08db9643b0e9f3b29476a0ab3eca Mon Sep 17 00:00:00 2001 From: timepointai Date: Mon, 16 Mar 2026 09:02:11 -0600 Subject: [PATCH 2/2] fix: add OG/Twitter card metadata with branded social card --- static/img/og-image.png | Bin 0 -> 51707 bytes templates/base.html | 20 +++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 static/img/og-image.png diff --git a/static/img/og-image.png b/static/img/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..b4750533ebe8e033567b19cbf9a7fcbd00cad035 GIT binary patch literal 51707 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 literal 0 HcmV?d00001 diff --git a/templates/base.html b/templates/base.html index 244cdba..bd1956a 100644 --- a/templates/base.html +++ b/templates/base.html @@ -4,7 +4,25 @@ {% block title %}Proteus Node Operator{% endblock %} - + + + + + + + + + + + + + + + + + + +