.env.example
Set these on your host before deploying. Each platform has an “Environment Variables” section in the deploy flow. (showing first 20, more exist in .env.example)
KEEPERHUB_API_KEY
secret
── KeeperHub ───────────────────────────────── app.keeperhub.com → Settings → API Keys → Organisation tab. Organisation keys carry the kh_…
KEEPERHUB_MCP_URL
KEEPERHUB_WEBHOOK_API_KEY
secret
User-scoped webhook key created for the heartbeat and panic workflows.
KEEPERHUB_PLAN_WORKFLOW_ID
KEEPERHUB_CONFIGURATION_WORKFLOW_ID
KEEPERHUB_HEARTBEAT_WORKFLOW_ID
KEEPERHUB_PANIC_WORKFLOW_ID
SEPOLIA_RPC_URL
── Chain ───────────────────────────────────── Any Sepolia endpoint: Alchemy, Infura, or a public RPC.
CHAIN_ID
NEXT_PUBLIC_LEGACY_KEEPER_FACTORY_ADDRESS
Current wallet-scoped registry. The deploy script prints this value.
LEGACY_KEEPER_ADDRESS
Legacy single-plan tools only; the production dashboard resolves through the factory above rather than this environment-wide address.
DEPLOYER_PRIVATE_KEY
secret
── Deployer ────────────────────────────────── Burner only — this key deploys the contract via Hardhat. Generate one: npx hardhat console…
OWNER_ADDRESS
RECOVERY_KEY_ADDRESS
── Recovery key ────────────────────────────── A SECOND, separate key. The whole point of Mode B is that this one still works when the…
SAFE_VAULT_ADDRESS
ETHERSCAN_API_KEY
secret
── Etherscan (optional, for contract verification) ──
TELEGRAM_BOT_TOKEN
secret
── Production Telegram identity ────────────── Telegram: message @BotFather → /newbot, then configure its HTTPS webhook to…
TELEGRAM_BOT_USERNAME
secret
TELEGRAM_WEBHOOK_SECRET
secret
TELEGRAM_ACTION_SECRET
secret
Independent HMAC secret for short-lived unlink and evacuation entry tokens.
brew install flyctl && fly launch --from https://github.com/ajanaku1/legacy-keeper
curl -L https://fly.io/install.sh | sh && fly launch --from https://github.com/ajanaku1/legacy-keeper
iwr https://fly.io/install.ps1 -useb | iex; fly launch --from https://github.com/ajanaku1/legacy-keeper