-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
173 lines (149 loc) · 8.7 KB
/
Copy path.env.example
File metadata and controls
173 lines (149 loc) · 8.7 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
# ───────────────────────────────────────────────────────────────────
# Arke — environment template
# Copy to .env and fill values. NEVER commit .env.
# ───────────────────────────────────────────────────────────────────
# ── LLM providers ──────────────────────────────────────────────────
# Groq is the primary tweet generator (gpt-oss-120b).
# Get key: https://console.groq.com/keys
GROQ_API_KEY=
GROQ_MODEL=openai/gpt-oss-120b
# ── Gemini (quality filter) ────────────────────────────────────────
# Free tier, no credit card required
# Get key: https://aistudio.google.com → Get API key
GEMINI_API_KEY=
# ── Distribution ───────────────────────────────────────────────────
# OpenTweet posts to @arke_ai on X.
# Get key: https://opentweet.io
OPENTWEET_API_KEY=
# Public dashboard URL (used in tweet attribution).
DASHBOARD_URL=arke.live
# ── Polymarket builder attribution ─────────────────────────────────
# Builder code is the keccak-encoded address pinned by Polymarket.
# Address is the base wallet used to receive builder fees.
# Apply: https://polymarket.com/builders
POLY_BUILDER_CODE=
POLY_BUILDER_ADDRESS=
# ── Trade widget (Phase 4) ─────────────────────────────────────────
# The dashboard's TradeWidget lets a visitor sign their OWN Polymarket order
# (window.ethereum, EIP-712) and submits it via /api/trade for the 0.5% builder
# fee to be attributed to Arke. No server custody. The builder code is part of the
# SIGNED order, so it MUST be available client-side and signed by the visitor — the
# server cannot inject it without invalidating the signature. This is safe: the
# builder code is PUBLIC (a keccak-encoded address, submitted in every order); the
# real secrets are POLY_BUILDER_API_KEY/SECRET/PASSPHRASE below. Set this to the
# SAME value as POLY_BUILDER_CODE (in Vercel). Unset → unattributed (valid) orders.
NEXT_PUBLIC_POLY_BUILDER_CODE= # same value as POLY_BUILDER_CODE; set in Vercel
# The builder ADDRESS is also public (in every ?ref= URL):
NEXT_PUBLIC_POLY_BUILDER_ADDRESS= # same value as POLY_BUILDER_ADDRESS; set in Vercel
# Polymarket CTF Exchange (EIP-712 verifyingContract). Default is the mainnet addr.
POLY_EXCHANGE_ADDRESS=0x4bFb41d5B3570DeFd03C39a9A4D8dE6Bd8B8982E
# Polymarket trading credentials (optional — only needed if posting orders,
# not required for read-only feed + tweet workflow).
POLY_BUILDER_API_KEY=
POLY_BUILDER_SECRET=
POLY_BUILDER_PASSPHRASE=
# ── Signal sources ─────────────────────────────────────────────────
# CryptoPanic free tier: https://cryptopanic.com/developers/api/
CRYPTOPANIC_API_KEY=
# GDELT requires no key.
# Snapshot GraphQL requires no key.
# ── Circle Developer Platform (hackathon rubric) ──────────────────
# https://developers.circle.com
CIRCLE_API_KEY=
CIRCLE_ENTITY_SECRET=
CIRCLE_WALLET_ID=
# ── X (Twitter) API — direct posting via tweepy (OAuth 1.0a) ───────
# Replaces OpenTweet. No token expiry / refresh. Posts as @arke_ai.
# developer.x.com → app with Read+Write → Keys and tokens.
# Code accepts X_API_KEY/X_API_SECRET or the CONSUMER/SECRET_KEY aliases.
X_API_KEY=
X_API_SECRET=
X_ACCESS_TOKEN=
X_ACCESS_TOKEN_SECRET=
# ── Arc testnet oracle ─────────────────────────────────────────────
# RPC resolution order: ARC_RPC_PRIMARY → ARC_RPC_FALLBACK → ARC_RPC_URL →
# built-in default (rpc.testnet.arc.network). Leave all empty to use the default.
ARC_RPC_PRIMARY=
ARC_RPC_FALLBACK=
ARC_RPC_URL=
ARC_PRIVATE_KEY=
ORACLE_CONTRACT_ADDRESS=
CIRCLE_WALLET_ADDRESS=
# ── x402 paid feed ─────────────────────────────────────────────────
X402_RECEIVE_ADDRESS=
X402_FACILITATOR_URL=
X402_PRICE_CALL_USDC=0.001
X402_PRICE_TRACKRECORD_USDC=0.01
INTERNAL_SECRET=
# ── Symbolic stake (local machine only — never on VPS) ─────────────
STAKE_WALLET_PRIVATE_KEY=
STAKE_MAX_USDC=0.60
STAKE_LIFETIME_CAP_USDC=9.0
ENABLE_STAKE=0
# ── ERC-8004 ───────────────────────────────────────────────────────
ERC8004_REGISTRY_ADDRESS=
# Reputation Registry (Phase 5 — deployed on Arc testnet). The resolver writes
# Arke's skill_bps here via giveFeedback() after each run, using ARC_PRIVATE_KEY
# (already set above). Address is hardcoded in agent/integrations/erc8004_reputation.py;
# override here only if it changes.
# ERC8004_REP_REGISTRY=0x8004B663056A597Dffe9eCcC1965A193B7388713
# ── Dashboard ──────────────────────────────────────────────────────
# Set in the Vercel environment, not committed here:
# ARKE_FEED_URL=
# ── Grounded forecasting inputs (intelligence upgrade) ─────────────
# Per-market web search. Brave is tried first, then Tavily.
# Brave: https://brave.com/search/api/
# Tavily: https://tavily.com
# The code reads BRAVE_SEARCH_API_KEY first, then the legacy BRAVE_API_KEY alias.
BRAVE_SEARCH_API_KEY=
BRAVE_API_KEY=
TAVILY_API_KEY=
# FRED macro grounding (fires on macro/rate/economic markets).
# https://fred.stlouisfed.org/docs/api/api_key.html
FRED_API_KEY=
# ACLED conflict grounding (fires on geopolitics markets). Durable
# token-refresh: the access token is cached in .acled_token.json (gitignored)
# and refreshed without re-sending the password for ~13 days.
# https://acleddata.com/register/
ACLED_EMAIL=
ACLED_PASSWORD=
# IPFS — not used (deferred). Provenance stays sha256-on-site.
# IPFS_TOKEN=
# Pipeline feature toggles (default off — live loop unchanged until flipped).
# ENABLE_ENSEMBLE=1 median-of-3 forecaster ensemble
# ENABLE_CALIBRATION=1 calibration hook (extremize <50 resolved, Platt >=50)
ENABLE_ENSEMBLE=0
ENABLE_CALIBRATION=0
# ── MCP server + Circle Nanopayments (agentic uplift) ──────────────
# The MCP server (agent/mcp_server.py, `arke-mcp`) reuses the existing feed /
# DB / oracle config — it needs NO new keys of its own. ARKE_FEED_BASE is the
# advertised base URL only.
ARKE_FEED_BASE=
# Circle Nanopayments via Circle Gateway (x402-compatible). DORMANT until
# CIRCLE_GATEWAY_FACILITATOR_URL is set; the feed + paid MCP tools then verify
# EIP-3009 authorizations through the hosted Arc-testnet facilitator and FALL
# BACK to the existing x402 path if it errors. Nothing to deploy — Circle's
# facilitator + Gateway handle settlement; the oracle is untouched.
# Console: https://developers.circle.com (Gateway / Nanopayments)
# The x402 routes live under /v1/x402 (…/verify, …/settle, …/supported). You can
# set either the bare host (auto-normalized to …/v1/x402) or the full base:
# CIRCLE_GATEWAY_FACILITATOR_URL=https://gateway-api-testnet.circle.com
# CIRCLE_GATEWAY_FACILITATOR_URL=https://gateway-api-testnet.circle.com/v1/x402
CIRCLE_GATEWAY_FACILITATOR_URL=
CIRCLE_GATEWAY_API_KEY=
CIRCLE_GATEWAY_SELLER_WALLET=
# Where withdrawn seller revenue (the Gateway Balance) is paid out to.
ARKE_PAYOUT_WALLET=
# Arc-testnet USDC token contract (the `asset` in the 402 challenge). Verified
# value: 0x3600000000000000000000000000000000000000 (GET /v1/x402/supported).
CIRCLE_GATEWAY_USDC_ASSET=
# Optional override for the GatewayWallet contract — the EIP-712 verifyingContract
# the buyer signs against (scheme extra.name="GatewayWalletBatched", version="1").
# Defaults to Circle's published 0x0077777d7eba4688bdef3e311b846f25870a19b9.
# CIRCLE_GATEWAY_WALLET_CONTRACT=
# Optional: override the Arc chainId used to form the eip155:<id> network tag.
# ARC_CHAIN_ID=5042002
# A2A demo buyer wallet — a Gateway-funded test wallet's private key, used ONLY
# by demo/a2a_buyer.py to sign the demo payment. LOCAL ONLY — NEVER on the VPS,
# NEVER committed.
TEST_BUYER_PRIVATE_KEY=