# ───────────────────────────────────────────────────────────────────────── # NoxConnect — environment template # Copy to `.env` and fill in. `.env` is gitignored — NEVER commit real keys. # Use THROWAWAY keys only. Sepolia testnet ONLY — never mainnet. # cp .env.example .env # ───────────────────────────────────────────────────────────────────────── # ── Deployer EOA ───────────────────────────────────────────────────────── # A throwaway account that deploys the contracts and signs demo txs. # Fund it with ~0.03 Sepolia ETH before running deploy/e2e scripts. # # 1. Generate a fresh private key: # openssl rand -hex 32 # prefix output with 0x below # 2. Derive its address: # node -e "console.log(new (require('ethers').Wallet)('0x').address)" # 3. Fund the address from a Sepolia faucet: # https://sepoliafaucet.com · https://faucet.quicknode.com/ethereum/sepolia # https://www.alchemy.com/faucets/ethereum-sepolia DEPLOYER_ADDRESS=0xYourDeployerAddress DEPLOYER_PRIVATE_KEY=0xYourThrowawayPrivateKey # Scripts read PRIVATE_KEY as the signer — keep it identical to DEPLOYER_PRIVATE_KEY. PRIVATE_KEY=0xYourThrowawayPrivateKey # ── Network (Ethereum Sepolia) ─────────────────────────────────────────── # Any Sepolia JSON-RPC endpoint works. The public node below needs no signup # but is rate-limited; for reliable e2e use a free Alchemy/Infura key: # Alchemy: https://dashboard.alchemy.com → Create App → Ethereum → Sepolia # Infura: https://app.infura.io → API Key → Sepolia endpoint SEPOLIA_RPC_URL=https://ethereum-sepolia-rpc.publicnode.com # Chain id is fixed for Sepolia — do not change. CHAIN_ID=11155111 # ── Nox protocol (NoxCompute — TEE ACL + proof validation on Sepolia) ──── # Fixed, already-deployed protocol contract. Leave as-is unless iExec # redeploys it. Re-verify the current address from the Nox docs /networks # page: https://docs.iex.ec (Nox protocol contract, Sepolia). NOX_PROTOCOL_ADDRESS=0x24ef36ec5b626d7dcd09a98f3083c2758f0f77bf # ── Demo actors (deterministic Alice / Landlord / Auditor / Bob) ───────── # A throwaway BIP-39 mnemonic the e2e derives its demo wallets from, so runs # are reproducible. Generate your own: # node -e "console.log(require('ethers').Wallet.createRandom().mnemonic.phrase)" DEMO_MNEMONIC=twelve throwaway words for local demo actors only never fund with real value # ── Etherscan source verification (optional) ───────────────────────────── # Only needed for `npm run verify:contracts` (publishes contract source so # judges can read it). Free key, ~1 min: # https://etherscan.io/myapikey → Add → copy the ~34-char key (no 0x prefix) ETHERSCAN_API_KEY=