# PromptHash Stellar environment # Shared runtime STELLAR_SCAFFOLD_ENV=development XDG_CONFIG_HOME=.config # ── Network configuration (#334) ───────────────────────────────────────────── # Switch between Testnet and Mainnet by changing the four variables below. # The UI automatically shows a "Testnet" badge when PUBLIC_STELLAR_NETWORK is # anything other than PUBLIC (mainnet). # # ── Testnet (default for development) ──────────────────────────────────────── PUBLIC_STELLAR_NETWORK=TESTNET PUBLIC_STELLAR_NETWORK_PASSPHRASE="Test SDF Network ; September 2015" PUBLIC_STELLAR_RPC_URL=https://soroban-testnet.stellar.org PUBLIC_STELLAR_HORIZON_URL=https://horizon-testnet.stellar.org # # ── Mainnet ─────────────────────────────────────────────────────────────────── # PUBLIC_STELLAR_NETWORK=PUBLIC # PUBLIC_STELLAR_NETWORK_PASSPHRASE="Public Global Stellar Network ; September 2015" # PUBLIC_STELLAR_RPC_URL=https://mainnet.sorobanrpc.com # PUBLIC_STELLAR_HORIZON_URL=https://horizon.stellar.org # # ── Futurenet ───────────────────────────────────────────────────────────────── # PUBLIC_STELLAR_NETWORK=FUTURENET # PUBLIC_STELLAR_NETWORK_PASSPHRASE="Test SDF Future Network ; October 2022" # PUBLIC_STELLAR_RPC_URL=https://rpc-futurenet.stellar.org # PUBLIC_STELLAR_HORIZON_URL=https://horizon-futurenet.stellar.org # ───────────────────────────────────────────────────────────────────────────── PUBLIC_PROMPT_HASH_CONTRACT_ID=CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA PUBLIC_STELLAR_NATIVE_ASSET_CONTRACT_ID=CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC PUBLIC_STELLAR_SIMULATION_ACCOUNT=GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA PUBLIC_UNLOCK_PUBLIC_KEY=ZHVtbXktcHVibGljLWtleS12YWx1ZS1oZXJl # Optional external chat gateway used by the current UI PUBLIC_CHAT_API_BASE=https://secret-ai-gateway.onrender.com # Optional — IPFS off-chain storage for large encrypted prompt payloads. # When set, the browser uploads ciphertext to IPFS (Pinata) and stores only an # ipfs:// reference on-chain, letting prompts exceed the 4KB on-chain cap. # Use an upload-scoped Pinata JWT (it is exposed to the browser). # PUBLIC_PINATA_JWT= # Serverless unlock runtime CHALLENGE_TOKEN_SECRET=super-secret-challenge-token-string UNLOCK_PUBLIC_KEY=ZHVtbXktcHVibGljLWtleS12YWx1ZS1oZXJl UNLOCK_PRIVATE_KEY=ZHVtbXktcHJpdmF0ZS1rZXktdmFsdWUtaGVyZQ== # Optional — unlock service rotation (see docs/secret-rotation.md) # ADMIN_ROTATION_TOKEN= # CHALLENGE_TOKEN_SECRET_PREVIOUS= # CHALLENGE_TOKEN_ROTATION_TIMESTAMP= # CHALLENGE_TOKEN_GRACE_PERIOD_MS=300000 # Optional — rate limiting (falls back to in-memory when unset) # REDIS_URL= # ── Sentry monitoring (#332) ────────────────────────────────────────────────── # Frontend DSN — set PUBLIC_SENTRY_DSN to enable browser error capture. # PUBLIC_SENTRY_DSN=https://xxxx@oXXX.ingest.sentry.io/YYYYYYY # # Backend DSN — set SENTRY_DSN in the server process environment. # SENTRY_DSN=https://xxxx@oXXX.ingest.sentry.io/YYYYYYY # SENTRY_TRACES_SAMPLE_RATE=0.1 # # Source-map upload (CI only) — set all three to upload maps on `vite build`. # SENTRY_AUTH_TOKEN=sntrys_xxxx # SENTRY_ORG=your-sentry-org # SENTRY_PROJECT=prompt-hash-stellar # # Refund / fulfillment timeout: how long after a delivery attempt before a # purchase is eligible for an auto-refund sweep (milliseconds, default 10 min). # FULFILLMENT_TIMEOUT_MS=600000 # Optional — IPFS gateway used by the unlock service to fetch off-chain # ciphertext (defaults to https://gateway.pinata.cloud/ipfs/ when unset). # PINATA_GATEWAY=https://gateway.pinata.cloud/ipfs/