Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
189 lines (168 loc) · 9.92 KB
/
Copy path.env.example
File metadata and controls
189 lines (168 loc) · 9.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
# ---- Agent runtime (real LLM output) ----
# Any OpenAI-compatible /chat/completions provider works. Pick ONE:
#
# Provider LLM_BASE_URL Free tier
# OpenAI https://api.openai.com/v1 paid
# Groq (fastest) https://api.groq.com/openai/v1 30 RPM / 14.4K req-day
# OpenRouter https://openrouter.ai/api/v1 20+ free models
# Google AI Studio https://generativelanguage.googleapis.com/v1beta/openai 1,500 req/day (Flash)
# Cerebras https://api.cerebras.ai/v1 ~1M tokens/day
# Ollama (local) http://localhost:11434/v1 unlimited, no key
#
# Free keys: console.groq.com/keys · openrouter.ai/keys · aistudio.google.com · cloud.cerebras.ai
LLM_API_KEY=
LLM_BASE_URL=https://api.openai.com/v1
LLM_MODEL=gpt-4o-mini
# Example — Groq free tier (recommended zero-cost setup):
# LLM_API_KEY=gsk_...
# LLM_BASE_URL=https://api.groq.com/openai/v1
# LLM_MODEL=llama-3.3-70b-versatile
#
# Fallback when the primary hits rate limits (429) or is down. If these are
# unset but LLM_PREMIUM_API_KEY / OPENROUTER_API_KEY is present, that key is
# used automatically (meta-llama/llama-3.3-70b-instruct via OpenRouter — same
# weights as the Groq default, no daily token cap).
# LLM_FALLBACK_API_KEY=sk-or-...
# LLM_FALLBACK_BASE_URL=https://openrouter.ai/api/v1
# LLM_FALLBACK_MODEL=meta-llama/llama-3.3-70b-instruct
#
# Example — fully local with Ollama (`ollama pull llama3.1`), no key needed:
# LLM_BASE_URL=http://localhost:11434/v1
# LLM_MODEL=llama3.1
# ---- Chain ----
# Default network is Robinhood Chain Testnet (46630). Production uses mainnet (4663).
NEXT_PUBLIC_BOWYER_NETWORK=testnet
# Server-side RPC endpoints (comma-separated, rotated round-robin across providers).
# Recommended: dedicated keys (Alchemy: https://robinhood-mainnet.g.alchemy.com/v2/KEY)
# so scans never hit the public RPC's rate limit. Single-URL CHAIN_RPC_URL also works.
# CHAIN_RPC_URLS=https://robinhood-mainnet.g.alchemy.com/v2/KEY1,https://robinhood-mainnet.g.alchemy.com/v2/KEY2,https://rpc.mainnet.chain.robinhood.com
# Server-side RPC for payment verification (defaults to the public RPC).
# CHAIN_RPC_URL=https://rpc.mainnet.chain.robinhood.com
# DexScreener's chain slug for Robinhood Chain. Confirm the slug from its URL
# before enabling market-pool scans; the radar fails closed when no matching pool exists.
# DEXSCREENER_CHAIN_ID=robinhood
# How far back (wall-clock minutes) the meme radar scans DEX pool-creation
# events for new token launches. The block span is derived from measured chain
# cadence (~10 blocks/sec on mainnet) and capped at 200k blocks.
# RADAR_WINDOW_MINUTES=60
# Robinhood Agentic Trading — OAuth PKCE + official Streamable HTTP MCP.
# Dynamic client registration is used by default; pin the issued public client ID if desired.
# OAUTH_ENCRYPTION_KEY is mandatory because access/refresh tokens are encrypted at rest.
# ROBINHOOD_OAUTH_CLIENT_ID=
# ROBINHOOD_OAUTH_SCOPES=internal
# ROBINHOOD_MCP_URL=https://agent.robinhood.com/mcp/trading
# ROBINHOOD_ROLLOUT_STAGE=read_only # then paper, approval, autonomous after drills
# ROBINHOOD_TRADING_DISABLED=1 # global live-order kill switch
# ROBINHOOD_REVIEW_TTL_MS=90000 # reviewed orders expire before submission
# ROBINHOOD_HOUSE_BOT_ENABLED=1
# ROBINHOOD_HOUSE_WALLET=0xYourWallet
# Optional pin for three.ws `<agent-3d>` CDN bundle (defaults to latest).
# NEXT_PUBLIC_THREE_WS_CDN=https://three.ws/agent-3d/latest/agent-3d.js
# ---- Platform ----
# Wallet that receives revenue for platform-owned businesses: catalog flagships
# (Whale Hunter, Atlas, Nyx, Vega, …) and incubator-born agents — subscriptions
# and x402 pay-per-call alike. If unset, those paid flows fail safely instead
# of sending funds to a void.
# PLATFORM_PAYOUT_ADDRESS=0xYourWallet
# ── The Live Economy (businesses hiring each other) ─────────────────────────
# Internal hires are FREE — no wallet, no funding, no on-chain transfers.
# Guards are hire counts: per-business daily allowances (flagships 6/day,
# others 3/day, adjustable via PATCH /api/economy) plus the global cap below.
# HIRING_DISABLED=1 # kill switch: stop all agent-to-agent hiring
# HIRING_GLOBAL_DAILY_CAP=60 # max hires per rolling 24h across all businesses
# Optional identity override for the loopback wallet session (never holds or
# sends funds; defaults to a well-known dev key).
# TREASURY_PRIVATE_KEY=0x...
# Loopback base URL for agent-to-agent MCP calls (defaults to
# http://127.0.0.1:$PORT — set explicitly when the dev server runs elsewhere).
# INTERNAL_BASE_URL=http://127.0.0.1:3000
# Model used for the tiny "which staff do I hire" decision (default
# llama-3.1-8b-instant on the platform provider).
# HIRING_LLM_MODEL=llama-3.1-8b-instant
# ── Site lockdown (BOWYER V2 countdown) ──────────────────────────────────────
# LOCKDOWN=1 closes every human-facing page behind the /v2 countdown while
# keeping /api/*, the Telegram mini app, and static assets online.
# LOCKDOWN=1
# Countdown target shown on /v2 (ISO timestamp, read at request time).
# V2_LAUNCH_AT=2026-07-31T20:00:00Z
# Crew bypass: open any page with ?backstage=<key> to browse the real site.
# LOCKDOWN_BYPASS_KEY=backstage
# ── 24/7 Broadcast streamer (scripts/stream.mjs) ─────────────────────────────
# RTMP ingest for the live channel (YouTube Live / X). Unset = the streamer
# writes a local MP4 test file instead of going live.
# STREAM_URL=rtmp://a.rtmp.youtube.com/live2/XXXX-XXXX-XXXX-XXXX
# Optional looping music bed mixed under the AI anchors (any audio file).
# STREAM_BED=/path/to/bed.mp3
# Public site URL (registry page links, MCP URLs in ACP offerings).
# NEXT_PUBLIC_APP_URL=https://bowyer.app
# On-chain Business Registry (optional — SQLite mirror works without it).
# See contracts/BusinessRegistry.sol and contracts/README.md.
# BUSINESS_REGISTRY_ADDRESS=0x…
# NEXT_PUBLIC_BUSINESS_REGISTRY_ADDRESS=0x…
# USDG on Robinhood Chain (x402 pay-per-call). Default is the canonical Paxos address.
# USDG_ADDRESS=0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168
# NEXT_PUBLIC_USDG_ADDRESS=0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168
# ---- $BOWYER token gating (premium models) ----
# $BOWYER on Robinhood Chain — balance checked via eth_call before unlocking Opus/Grok/GPT class.
# BOWYER_TOKEN_ADDRESS=0xaF4C10fEf50059d1e3E8aB1C80E46DB6A76098B4
# BOWYER_TOKEN_RPC=https://rpc.mainnet.chain.robinhood.com
# BOWYER_TOKEN_MIN_BALANCE=1000000000000000000 (1 token @ 18 decimals)
# NEXT_PUBLIC_BOWYER_TOKEN_ADDRESS=0xaF4C10fEf50059d1e3E8aB1C80E46DB6A76098B4
# Premium inference (OpenRouter recommended): routes Opus/Grok/GPT class when holders unlock.
# LLM_PREMIUM_API_KEY=sk-or-...
# LLM_PREMIUM_BASE_URL=https://openrouter.ai/api/v1
# ---- Live intelligence ----
# Tavily web search (tavily.com — free 1,000 credits/mo). When set, every
# report and answer is grounded in real, current web sources with citations.
# TAVILY_API_KEY=tvly-...
# Firecrawl (firecrawl.dev — free 500 credits/mo). When set, website knowledge
# sources are scraped to clean LLM-ready markdown (handles JS-rendered pages).
# FIRECRAWL_API_KEY=fc-...
# ElevenLabs (elevenlabs.io). When set, agents take live voice calls on their
# profile pages — speech-to-text runs on the LLM provider (Groq Whisper).
# ELEVENLABS_API_KEY=sk_...
# The Incubator (agents founding new businesses) runs by default with the
# scheduler; set to 0 to pause scouting/voting/births without a deploy.
# INCUBATOR_ENABLED=1
# Owner wallet recorded on incubator-born businesses (optional).
# INCUBATOR_OWNER_ADDRESS=
# Global guardrails for BOWYER-hosted models (BYOK calls are excluded).
# Tune these to your paid provider quota; defaults are 20 requests/min, 2,000/day.
# PLATFORM_LLM_RPM=20
# PLATFORM_DAILY_LLM_LIMIT=2000
# ---- OAuth (GitHub + Telegram Login) ----
# GitHub OAuth App: https://github.com/settings/developers
# Callback URL: https://bowyer.app/api/auth/github/callback (or http://localhost:3005/... for dev)
# GITHUB_CLIENT_ID=
# GITHUB_CLIENT_SECRET=
# NEXT_PUBLIC_SITE_URL=https://bowyer.app
# NEXT_PUBLIC_TELEGRAM_BOT_USERNAME=YourBotName (without @, for Login Widget)
# OAUTH_ENCRYPTION_KEY=random-32-char-secret (required; encrypts stored tokens at rest)
# OAUTH_STATE_SECRET=random-secret (required; reserve for app-level state signing)
# NOTION_CLIENT_ID=
# NOTION_CLIENT_SECRET=
# DISCORD_CLIENT_ID=
# DISCORD_CLIENT_SECRET=
# DISCORD_BOT_TOKEN= (reads channel messages for knowledge sources)
# X_CLIENT_ID=
# X_CLIENT_SECRET=
# ---- Scheduler & delivery ----
# Autonomous publishing runs every 15 min (instrumentation hook). Disable on multi-instance
# and use external cron hitting /api/cron/publish instead.
# DISABLE_SCHEDULER=1
# CRON_SECRET=your-random-secret
# TELEGRAM_BOT_TOKEN=from @BotFather
# TELEGRAM_WEBHOOK_SECRET=random-32-char-secret (required; set as Telegram webhook secret_token)
# TELEGRAM_DEMO_MODE=1 (enables /demo — grants Robinhood chat without website sub; disable in prod after screenshots)
# TELEGRAM_DEMO_CHAT_IDS=123456789 (optional; comma-separated chat IDs that skip sub checks — get yours via /myid in the bot)
# Daily per-business API quotas (search = Tavily, llm = completions, scrape = Firecrawl)
# DAILY_SEARCH_LIMIT=40
# DAILY_LLM_LIMIT=80
# DAILY_SCRAPE_LIMIT=20
# ---- Optional ----
# Higher GitHub API rate limits for live repo stats.
# GITHUB_TOKEN=
# Database location (defaults to ./data/bowyer.db).
# BOWYER_DB_PATH=
# Pin radar log scans to one wide-getLogs-capable endpoint (falls back to CHAIN_RPC_URLS rotation)
RADAR_RPC_URL=https://rpc.mainnet.chain.robinhood.com