11# ─── Stellar / Soroban ────────────────────────────────────────────────────────
2+ # Network to connect to: testnet | mainnet | futurenet
23NEXT_PUBLIC_STELLAR_NETWORK = testnet
3- # Options: testnet | mainnet | futurenet
4+
5+ # Soroban RPC endpoint (Testnet)
46NEXT_PUBLIC_STELLAR_RPC_URL = https://soroban-testnet.stellar.org
7+
8+ # Horizon REST API endpoint (Testnet)
59NEXT_PUBLIC_STELLAR_HORIZON_URL = https://horizon-testnet.stellar.org
10+
11+ # Network passphrase — must match the network selected above exactly.
12+ # Testnet: "Test SDF Network ; September 2015"
13+ # Mainnet: "Public Global Stellar Network ; September 2015"
614NEXT_PUBLIC_STELLAR_NETWORK_PASSPHRASE = " Test SDF Network ; September 2015"
715
8- # ─── Soroban Contract Addresses ───────────────────────────────────────────────
9- NEXT_PUBLIC_INVOICE_CONTRACT_ID = CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4
10- NEXT_PUBLIC_MARKETPLACE_CONTRACT_ID = CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4
11- NEXT_PUBLIC_TOKEN_CONTRACT_ID = CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4
16+ # ─── Soroban Contract Addresses (v0.2 Testnet Deployment) ─────────────────────
17+ #
18+ # Format: 56-character Soroban C-strkey, e.g. CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
19+ # Always starts with 'C', base-32 encoded, exactly 56 chars.
20+ #
21+ # ⚠ When NEXT_PUBLIC_ENABLE_MOCK_DATA=false the app validates these at startup
22+ # and throws a fatal error if any are missing or still set to the zero-address
23+ # placeholder below.
24+ #
25+ # To deploy your own contracts to testnet see docs/DEPLOYMENT.md or the
26+ # "Smart Contract Deployment" section in README.md.
27+ #
28+ # Current v0.2 testnet deployments (Stellar Testnet, deployed 2025-07):
29+ # Invoice NFT contract — https://stellar.expert/explorer/testnet/contract/CBIELTK6YBZJU5UP2WWQEUCYKLPU6AUNZ2BQ4WWFEIE3USCIHMXQDAMA
30+ # Marketplace contract — https://stellar.expert/explorer/testnet/contract/CBWOAOZCOAJQH7HHZRE5BVNL2C4HRP4JCQZF3YQCQYDL5BZJRN4YGK4
31+ # USDC token contract — https://stellar.expert/explorer/testnet/contract/CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC
32+ #
33+ # ── Development (mock mode — no real contracts needed) ────────────────────────
34+ # These are the Soroban zero-address placeholders used when mock data is on.
35+ # Replace with real addresses before setting NEXT_PUBLIC_ENABLE_MOCK_DATA=false.
36+ NEXT_PUBLIC_INVOICE_CONTRACT_ID = CBIELTK6YBZJU5UP2WWQEUCYKLPU6AUNZ2BQ4WWFEIE3USCIHMXQDAMA
37+ NEXT_PUBLIC_MARKETPLACE_CONTRACT_ID = CBWOAOZCOAJQH7HHZRE5BVNL2C4HRP4JCQZF3YQCQYDL5BZJRN4YGK4A
38+ NEXT_PUBLIC_TOKEN_CONTRACT_ID = CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC
1239
1340# ─── IPFS / Pinata ────────────────────────────────────────────────────────────
1441NEXT_PUBLIC_IPFS_GATEWAY = https://gateway.pinata.cloud/ipfs
@@ -22,5 +49,34 @@ NEXT_PUBLIC_APP_NAME=Kora
2249NEXT_PUBLIC_APP_DESCRIPTION = " On-chain Invoice Financing Protocol"
2350
2451# ─── Feature Flags ────────────────────────────────────────────────────────────
52+ # See lib/featureFlags.ts for the full flag reference.
53+ #
54+ # NEXT_PUBLIC_ENABLE_MOCK_DATA=true → browse the UI without a live Soroban node.
55+ # NEXT_PUBLIC_ENABLE_MOCK_DATA=false → real on-chain calls; requires valid contract IDs above.
2556NEXT_PUBLIC_ENABLE_MOCK_DATA = true
2657NEXT_PUBLIC_ENABLE_DEVTOOLS = true
58+ NEXT_PUBLIC_ENABLE_COMPARISON = true
59+ NEXT_PUBLIC_ENABLE_ONBOARDING_TOUR = false
60+ # Batch cancel/repay toolbar in SME dashboard (Issue #382)
61+ NEXT_PUBLIC_ENABLE_BATCH_ACTIONS = true
62+ # Gate invoice minting behind KYB/KYC business verification (Issue #489)
63+ # Set to "true" to require SME KYB verification before reaching step 3 of the mint wizard.
64+ NEXT_PUBLIC_ENABLE_KYB_MINT_GATE = false
65+ # Secondary market P2P trading route (Issue #664)
66+ # When false, hides the navbar link and shows a maintenance empty state on /secondary.
67+ NEXT_PUBLIC_ENABLE_SECONDARY_MARKET = true
68+
69+ # ─── KYC & Compliance ─────────────────────────────────────────────────────────
70+ # Configurable USDC threshold requiring KYC before funding above this limit (e.g. 10000 USDC)
71+ NEXT_PUBLIC_KYC_FUND_THRESHOLD = 10000
72+
73+ # Shared secret used to verify Synaps KYC webhook signatures (Issue #694).
74+ # Server-only — never expose this to the client bundle.
75+ # When unset, POST /api/webhooks/kyc still requires the x-synaps-signature
76+ # header but cannot verify it, which is the mock/dev posture.
77+ # SYNAPS_WEBHOOK_SECRET=your_synaps_webhook_secret
78+
79+ # ─── Event Streaming (optional) ───────────────────────────────────────────────
80+ # Indexer SSE/webhook URL for near-realtime contract events.
81+ # When unset, the client uses a ≤2s RPC stream loop and falls back to 5s polling.
82+ # NEXT_PUBLIC_EVENTS_STREAM_URL=https://indexer.example.com/events/stream
0 commit comments