Expand live money launch requirements

This commit is contained in:
Theodore Song
2026-07-12 17:07:07 -04:00
parent f66155da69
commit b4a1cd709e
5 changed files with 158 additions and 24 deletions
+38
View File
@@ -1,10 +1,25 @@
const REQUIRED_ENV = [
["PRODUCTION_APP_URL", "Production app URL"],
["AUTH_PROVIDER", "Real account authentication provider"],
["DATABASE_URL", "Production account database"],
["SESSION_SECRET", "Session signing secret"],
["ENCRYPTION_KEY", "Encryption key for sensitive user settings"],
["KYC_PROVIDER", "KYC / eligibility provider"],
["KYC_API_KEY", "KYC provider API key"],
["KYC_WEBHOOK_SECRET", "KYC webhook secret"],
["SANCTIONS_PROVIDER", "Sanctions / watchlist screening provider"],
["SANCTIONS_API_KEY", "Sanctions provider API key"],
["GEOIP_PROVIDER", "Geo-IP / geofencing provider"],
["GEOIP_API_KEY", "Geo-IP provider API key"],
["RESTRICTED_JURISDICTIONS", "Restricted jurisdiction rules"],
["TERMS_VERSION", "Approved terms version"],
["PRIVACY_VERSION", "Approved privacy policy version"],
["RISK_DISCLOSURE_VERSION", "Approved risk disclosure version"],
["MARKET_POLICY_STORE", "Market eligibility and category policy store"],
["PAYMENTS_PROVIDER", "Deposit and withdrawal provider"],
["PAYMENTS_API_KEY", "Payments provider API key"],
["PAYMENTS_WEBHOOK_SECRET", "Payments webhook secret"],
["WEBHOOK_BASE_URL", "Public webhook base URL"],
["WALLET_PROVIDER", "Wallet or deposit-wallet provider"],
["WALLET_PROJECT_ID", "Wallet provider project ID"],
["WALLET_API_KEY", "Wallet provider API key"],
@@ -15,8 +30,30 @@ const REQUIRED_ENV = [
["POLYMARKET_CLOB_PASSPHRASE", "Polymarket CLOB passphrase"],
["SETTLEMENT_ASSET", "Settlement asset"],
["SETTLEMENT_CHAIN", "Settlement chain"],
["RECONCILIATION_STORE", "Balance, position, and fill reconciliation store"],
["ACCOUNTING_EXPORT_STORE", "Statements, tax, and accounting export store"],
["RATE_LIMIT_STORE", "Rate limit and abuse prevention store"],
["AUDIT_LOG_STORE", "Durable audit log store"],
["MONITORING_DSN", "Error and performance monitoring"],
["INCIDENT_WEBHOOK_URL", "Incident alert webhook"],
["ADMIN_ALERT_EMAIL", "Admin alert destination"],
["CUSTOMER_SUPPORT_EMAIL", "Customer support contact"],
];
const LAUNCH_REQUIREMENTS = [
["legal", "Terms, privacy policy, risk disclosures, and jurisdiction policy approved"],
["eligibility", "KYC/KYB, age, sanctions, watchlist, and location screening active"],
["market_policy", "Allowed market categories, restricted events, and manipulation rules defined"],
["auth", "Production accounts, sessions, password reset, MFA path, and sign-out implemented"],
["wallets", "User-controlled wallet/deposit-wallet signing and permission revocation implemented"],
["payments", "Deposits, withdrawals, webhooks, failed-payment handling, and support flows implemented"],
["execution", "Signed order creation, CLOB submission, cancellation, retry, and fill tracking implemented"],
["reconciliation", "Cash, open orders, positions, fills, fees, and withdrawals reconciled continuously"],
["risk", "Agent allocation caps, market caps, stop rules, manual approval, and emergency pause enforced server-side"],
["security", "Secret management, encryption, rate limits, abuse controls, and security review completed"],
["records", "Append-only audit logs, customer statements, exports, and retention policy active"],
["operations", "Monitoring, incident response, customer support, and rollback plan ready"],
["testing", "Paper-to-live parity, dry-runs, test wallets, webhook tests, and edge-case QA completed"],
];
function providerStatus() {
@@ -55,6 +92,7 @@ function baseStatus() {
? null
: "Live trading is locked until eligibility, payments, wallet/deposit-wallet signing, Polymarket CLOB credentials, audit storage, monitoring, and LIVE_TRADING_ENABLED=true are configured.",
providers,
launch_requirements: LAUNCH_REQUIREMENTS.map(([key, label]) => ({ key, label })),
next_required: missing,
docs: {
polymarket_overview: "https://docs.polymarket.com/trading/overview",