-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path.env.example
More file actions
107 lines (76 loc) · 3.44 KB
/
.env.example
File metadata and controls
107 lines (76 loc) · 3.44 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
# Server & CORS
# Comma-separated list of allowed origins for CORS
ALLOWED_ORIGINS="http://localhost:3000,http://localhost:5173"
# Node environment: development | production | test
NODE_ENV="development"
# Logging level: error | warn | info | http | verbose | debug | silly
LOG_LEVEL="info"
# JWT (Auth)
# Strong secrets (≥ 32 chars recommended) and token lifetimes
JWT_ACCESS_SECRET="change-me-access-secret-32chars-minimum"
JWT_REFRESH_SECRET="change-me-refresh-secret-32chars-minimum"
JWT_ACCESS_EXPIRY="15m"
JWT_REFRESH_EXPIRY="7d"
# Encryption & Private Key
# Symmetric key used to encrypt/decrypt the oracle private key (≥ 32 chars)
ENCRYPTION_KEY="please-generate-a-32-char-secure-key"
# Encrypted private key used by the oracle wallet (produced by `npm run encrypt-key`)
ORACLE_PRIVATE_KEY_ENCRYPTED="<paste-output-of-encrypt-key>"
# NEVER store plaintext private keys in production; only for quick local dev:
# ORACLE_PRIVATE_KEY="0x..."
# Blockchain
# Ethereum RPC endpoint (HTTP). Set to your testnet/mainnet RPC URL.
ETHEREUM_RPC_URL="http://localhost:8545"
# Address of the deployed main/oracle contract
MAIN_CONTRACT_ADDRESS="0x0000000000000000000000000000000000000000"
# Toggle blockchain behavior in managed environments
BLOCKCHAIN_MOCK_MODE="false" # true = simulate on-chain ops (no real transactions)
USE_REAL_BLOCKCHAIN="false" # true = allow real chain usage (e.g., on Railway)
# Optional ABI overrides (either inline JSON or a path to a JSON file)
# MAIN_CONTRACT_ABI_JSON='[ ... ]'
# MAIN_CONTRACT_ABI_PATH="./abi/ABBetting.json"
# Polling intervals (ms)
ETHEREUM_POLLING_INTERVAL="10000" # interval to poll for events
FILTER_REFRESH_INTERVAL="240000" # interval to refresh filters (4 min)
# Committee (MoA) Configuration
# Enable committee mode by default (otherwise single AI mode)
USE_COMMITTEE="true"
# Discussion/voting flow controls
UNANIMOUS_MAX_ROUNDS="10" # max voting rounds to attempt unanimity
DISCUSSION_ROUNDS="2" # per round, peer-aware stance updates per agent
# Consensus method label for visualization/metadata
COMMITTEE_CONSENSUS_METHOD="weighted_voting" # majority | borda | weighted_voting
# Judging weights (used by some ranking/synthesis paths)
JUDGE_RULE_BASED_WEIGHT="0.4"
JUDGE_LLM_WEIGHT="0.6"
JUDGE_PAIRWISE_ROUNDS="3"
# Proposer toggles (created only if API keys exist and not explicitly disabled)
PROPOSER_GPT5_ENABLED="true"
PROPOSER_CLAUDE_ENABLED="true"
PROPOSER_GEMINI_ENABLED="true"
# Alternatively, override enabled proposer list inside the orchestrator
# COMMITTEE_ENABLED_PROPOSERS="gpt4,claude,gemini"
# AI Providers
# OpenAI
OPENAI_API_KEY="sk-..."
OPENAI_MODEL="gpt-5-2025-08-07"
OPENAI_FALLBACK_TO_MOCK="false" # true = return mock outputs when API key is absent
# Anthropic (Claude)
ANTHROPIC_API_KEY="sk-ant-..."
ANTHROPIC_MODEL="claude-sonnet-4-20250514"
# Google (Gemini)
GOOGLE_API_KEY="AIza..."
GOOGLE_MODEL="gemini-2.5-pro"
# Database (optional)
# Enable persistent storage with MongoDB
USE_MONGODB="false"
MONGODB_URI="mongodb://localhost:27017"
MONGODB_DB_NAME="agora_oracle"
# Monitoring / Misc
# Interval for internal monitors (ms)
MONITORING_INTERVAL="10000"
# Public keys for frontends (only if shared build is used)
NEXT_PUBLIC_AGREEMENT_FACTORY_ADDRESS="0x0000000000000000000000000000000000000000"
NEXT_PUBLIC_ONCHAINKIT_API_KEY="public-demo-key"
# Backend secret for OnchainKit integration (if used)
ONCHAINKIT_API_KEY_SECRET="server-side-secret"