-
Notifications
You must be signed in to change notification settings - Fork 51
Expand file tree
/
Copy path.env.example
More file actions
149 lines (120 loc) · 5.41 KB
/
.env.example
File metadata and controls
149 lines (120 loc) · 5.41 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
# Noblocks Environment Variables
# Copy this file to .env.local and fill in your values
# See: docs/environment-variables.md for detailed info about each env. variable
# =============================================================================
# Core Application
# =============================================================================
# Aggregator API
NEXT_PUBLIC_AGGREGATOR_URL=https://api.paycrest.io/v1
# Sender API key UUID (aggregator dashboard): server proxy + client on-chain messageHash
NEXT_PUBLIC_AGGREGATOR_SENDER_API_KEY_ID=
# Local transfer fee (e.g. cNGN -> NGN)
NEXT_PUBLIC_LOCAL_TRANSFER_FEE_PERCENT=0.1
NEXT_PUBLIC_LOCAL_TRANSFER_FEE_CAP=10000
# Authentication Services
NEXT_PUBLIC_PRIVY_APP_ID=
NEXT_PUBLIC_RPC_URL_KEY=
# Client error reporting (Sentry-compatible DSN, e.g. GlitchTip)
# Leave empty to disable. Optional: NEXT_PUBLIC_SENTRY_ENVIRONMENT, NEXT_PUBLIC_SENTRY_RELEASE
# Set NEXT_PUBLIC_SENTRY_ENABLE_IN_DEV=true to send events from local dev
NEXT_PUBLIC_SENTRY_DSN=
# =============================================================================
# Database & Authentication
# =============================================================================
# Supabase Database
# Get these from: Supabase Dashboard → Project Settings → API
SUPABASE_URL=https://your-project.supabase.co
# ⚠️ CRITICAL: Use the SERVICE ROLE key, NOT the anon/public key!
#
# Common mistake: Using the "anon public" key instead of "service_role" secret
# This will cause: "new row violates row-level security policy" errors
#
# How to get the correct key:
# 1. Go to Supabase Dashboard → Project Settings → API
# 2. Scroll to "Project API keys"
# 3. Copy the "service_role" secret key (NOT the "anon public" key)
# 4. The service_role key bypasses RLS policies (required for API operations)
#
# To verify you have the right key:
# - Decode it at jwt.io - should contain "role":"service_role"
# - Length: ~200+ characters (anon key is similar length, check role!)
SUPABASE_SERVICE_ROLE_KEY=
# Privy Authentication
PRIVY_APP_SECRET=
PRIVY_JWKS_URL=https://auth.privy.io/api/v1/apps/<your-privy-app-id>/jwks.json
PRIVY_ISSUER=privy.io
# =============================================================================
# Analytics
# =============================================================================
# Client-side Analytics
NEXT_PUBLIC_MIXPANEL_TOKEN=
NEXT_PUBLIC_HOTJAR_SITE_ID=
# Server-side Analytics
MIXPANEL_TOKEN=
MIXPANEL_PRIVACY_MODE=strict
MIXPANEL_INCLUDE_IP=false
MIXPANEL_INCLUDE_ERROR_STACKS=false
NEXT_PUBLIC_ENABLE_EMAIL_IN_ANALYTICS=false
# =============================================================================
# Security
# =============================================================================
# Internal API Security
# Generate with: openssl rand -hex 32
INTERNAL_API_KEY=
# =============================================================================
# Feature Flags
# =============================================================================
# Enable wallet context sync in middleware
ENABLE_WALLET_CONTEXT_SYNC=false
# =============================================================================
# External Services
# =============================================================================
# SEO
NEXT_PUBLIC_GOOGLE_VERIFICATION_CODE=
# Notice Banner
# See docs/notice-banner.md
NEXT_PUBLIC_NOTICE_BANNER_TEXT=
# Maintenance Notice Modal
# Set to any truthy value (e.g. "1") to show the maintenance notice overlay.
# SCHEDULE is the bold date/time string shown in the notice body.
# Changing the schedule auto-resets dismissals so users see the new notice.
NEXT_PUBLIC_MAINTENANCE_NOTICE_ENABLED=true
NEXT_PUBLIC_MAINTENANCE_SCHEDULE=Friday, February 13th, from 7:00 PM to 11:00 PM WAT
# Brevo Email Marketing
# Get from: Brevo Dashboard → Settings → API Keys
BREVO_API_KEY=
# List ID from: Brevo Dashboard → Contacts → Lists (numeric ID)
BREVO_LIST_ID=
BREVO_LIST_ID=
# Brevo Conversations (Chat Widget)
# Get from: Brevo Dashboard → Conversations → Settings
NEXT_PUBLIC_BREVO_CONVERSATIONS_ID=
NEXT_PUBLIC_BREVO_CONVERSATIONS_GROUP_ID=
# =============================================================================
# Campaign Management (BlockFest)
# =============================================================================
# BlockFest Campaign End Date
# Format: ISO 8601 with timezone (YYYY-MM-DDTHH:mm:ss±HH:mm)
# Example: 2025-10-11T23:59:00+01:00 (October 11th, 2025 at 11:59 PM UTC+1)
NEXT_PUBLIC_BLOCKFEST_END_DATE=2025-10-11T23:59:00+01:00
# BlockFest Cashback Wallet
# ⚠️ WARNING: These credentials control funds and must be kept secure
# - Never commit these values to version control
# - Use secure secret management in production (AWS Secrets Manager, Vault, etc.)
# - Rotate keys regularly
# - Restrict access to authorized personnel only
# - Private key must be in format: 0x followed by 64 hex characters (66 chars total)
CASHBACK_WALLET_ADDRESS=
CASHBACK_WALLET_PRIVATE_KEY=
# =============================================================================
# Content Management (Sanity)
# =============================================================================
# Sanity Studio (server-side)
SANITY_STUDIO_DATASET=production
SANITY_STUDIO_PROJECT_ID=your_project_id_here
# Next.js App (client-side)
NEXT_PUBLIC_SANITY_DATASET=production
NEXT_PUBLIC_SANITY_PROJECT_ID=your_project_id_here
# Bundler / EIP-7702 sponsor
NEXT_PUBLIC_BUNDLER_SERVER_URL=
SPONSOR_EVM_WALLET_PRIVATE_KEY=0x...