{"ok":true,"service":"rise-trade-relay","message":"This relay accepts POST JSON on the paths below. Open GET /health for a live check.","deskStats":{"supabaseUrlConfigured":true,"serviceRoleKeyConfigured":true,"ready":true},"fees":{"feeWalletEnvReady":true,"missingFeeWalletEnvKeys":[]},"endpoints":{"deskTrade":"POST / or POST /v1/eth/desk-trade","deskStats":"POST /v1/eth/desk-stats","deskTrades":"POST /v1/eth/desk-trades","uniswapQuote":"POST /v1/eth/uniswap-quote","deskUiEvents":"POST /v1/eth/desk-ui-events","bundlerRpc":"POST /v1/eth/bundler-rpc","solanaRpc":"POST /solana-rpc (caching mainnet JSON-RPC + rate limit)","solscan":"GET /solscan/token/meta, GET /solscan/token/holders (key from Worker env)","health":"GET /health","aiSuiteCapabilities":"GET /v1/ai/suite/capabilities","aiSuiteExecute":"POST /v1/ai/suite/execute","aiUsage":"GET /v1/ai/usage?wallet=… + X-Rise-Ai-Auth","aiProjectsList":"GET /v1/ai/projects?wallet=… + X-Rise-Ai-Auth","aiProjectCreate":"POST /v1/ai/projects","aiProjectGet":"GET /v1/ai/projects/:id?wallet=… + X-Rise-Ai-Auth","aiProjectRuns":"GET /v1/ai/projects/:id/runs?wallet=… + X-Rise-Ai-Auth","aiProjectFolders":"GET|POST /v1/ai/projects/:id/folders (+ POST …/folders/remove)","aiProjectFiles":"GET /v1/ai/projects/:id/files?folder_id=…","aiProjectFileUploadSign":"POST /v1/ai/projects/:id/files/upload-sign","aiProjectFileComplete":"POST /v1/ai/projects/:id/files/complete","aiProjectFileDownload":"GET /v1/ai/projects/:id/files/:fileId/download-url","aiProjectFileRemove":"POST /v1/ai/projects/:id/files/remove","aiRunCreate":"POST /v1/ai/runs","footballCoverage":"GET /v1/sports/football/coverage","footballPublicRail":"GET /v1/sports/football/public-rail (BBC Sport RSS headlines + Rise competition hot list; edge-cached)","footballTeams":"GET /v1/sports/football/teams?competition=PL","footballStandings":"GET /v1/sports/football/standings?competition=PL","footballMatchContext":"GET /v1/sports/football/match-context/:matchId (standings + recent form + H2H from sync DB)","footballFeatured":"GET /v1/sports/football/featured (matches + recent_results)","footballHeroNews":"GET /v1/sports/football/hero-news?home=…&away=… (Google News + BBC RSS, aliases + multi-query; edge-cached)","footballMatch":"GET /v1/sports/football/match/:matchId","footballBadges":"GET /v1/sports/football/badges?teams=Atletico%20Madrid,Sevilla","footballBadgeImage":"GET /v1/sports/football/badge-image?team=Liverpool%20FC (PNG/JPEG bytes, CORS)","footballSync":"POST /v1/sports/football/sync","sportsLeaderboards":"GET /v1/sports/leaderboards (per-wallet aggregated bets/wins from rise_sports_pool_events; cron-synced every 15m)","sportsPoolEventsSync":"POST /v1/sports/pool-events-sync (manual trigger of the same 15-min cron sync; idempotent)","walletProfiles":"GET /v1/eth/wallet-profiles?wallets=0x…","walletProfile":"POST /v1/eth/wallet-profile (JSON: portalSession + displayName + optional clearAvatar) OR multipart: + avatar image file — no external picture URLs"}}