Skip to content

Environment Registry

This page records the environment constants the team needs during development, deployment, and incident response.

WARNING

This page intentionally avoids raw secrets. It records secret names, expected locations, and ownership. Never paste private keys, API keys, webhook secrets, database tokens, or seed phrases into the wiki.

Solana Environments

Devnet

ItemValue
ClusterSolana devnet
Default RPChttps://api.devnet.solana.com
Vela Protocol programCVM6UqbwKgHckZzm8R2qbN3BWhCTdk1PsSeEQLchkwKT
Vela Transfer Hook program3agVoFp4NZFuKbVqCV8HbjSZn1xW4Utk4U1Wir3TKjZ9
Current upgrade authorityEkyMDqChwLDyx8XUxEFB7Ngvk9Yfp2DGEJ6VzqqbgErD
Program keypair directory~/.config/velapay/keys/devnet/
Protocol manifestvela-protocol/config/program-ids.json
Commerce releasev1.9.0-devnet.3
Commerce SDK@velapay/sdk@0.5.0
Default Commerce USDC mint4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU

Commerce cluster selection is server-side. Checkout query parameters and API request bodies must never override devnet. Only public Payment Intents execute.

Expected devnet keypair files:

text
~/.config/velapay/keys/devnet/vela_protocol-keypair.json
~/.config/velapay/keys/devnet/vela_transfer_hook-keypair.json

Mainnet

ItemValue
ClusterMainnet beta
Program IDsNot frozen
Program keypair directory~/.config/velapay/keys/mainnet/
Upgrade authorityNot frozen
StatusPre-launch

Mainnet keypairs must be generated once, backed up, restored, and verified before launch. See Protocol Deployment Runbook.

Domains

SurfaceDomainRepo
Marketing sitevelapay.iovela-web
Developer docsdocs.velapay.iovela-docs
Merchant dashboardDashboard domain, Railway + Cloudflarevela-dashboard
Hosted checkoutpay.velapay.iovela-checkout
Subscriber portalportal.velapay.iovela-portal
Widget loaderwidget.velapay.iovela-widget
Admin consoleInternal-only domainvela-admin

If a domain changes, update:

  • Cloudflare DNS
  • Worker routes
  • app environment variables
  • public docs
  • dashboard links
  • internal wiki environment registry

Runtime Services

ServiceUsed byPurpose
Solana RPC / HeliusProtocol consumers, keepers, dashboard, admin, SDKOn-chain reads, transaction submission, webhooks
Cloudflare WorkersDashboard worker, admin, checkout, portal, docs/web hostingEdge runtime
Cloudflare D1Dashboard, admin via service binding, checkout, portalApp data and sessions
Cloudflare KVSession/cache paths where configuredLow-latency key-value storage
Cloudflare QueuesDashboard webhook fanout and async processingRetryable event delivery
Cloudflare R2Dashboard exports and receiptsObject storage
RailwayMerchant dashboard runtime where configuredApp hosting
ResendInvoice and transactional emailEmail delivery
TurnstileCheckout/auth surfacesBot protection

v1.9 canonical devnet commerce resources

ResourceCanonical development name
D1vela-dashboard-v19-devnet
KVvela-dashboard-kv-v19-devnet
R2vela-invoices-v19-devnet
Backend Workervela-dashboard-worker-dev
Dashboard API/UI Workervela-dashboard-api-dev
Checkout Workervela-checkout-dev
Webhook queuesvela-webhook-events-v19-devnet, vela-webhook-dispatch-v19-devnet, vela-webhook-dispatch-dlq-v19-devnet
Document/mail queuesvela-invoice-queue-v19-devnet, vela-mail-queue-v19-devnet and their DLQs

The legacy vela-dashboard-dev database is rollback-only and must not receive v1.9 migrations in place. Resource IDs, version IDs, checksums, and rollback bookmarks live in the dashboard rollout report rather than this registry.

Secret Registry

SecretWhere it livesUsed byNotes
Devnet program keypairsOperator secret storage and local key dirvela-protocol deploy scriptsDefines program addresses
Mainnet program keypairsNot yet finalizedFuture mainnet deployGenerate once and back up three ways
Solana wallet keypairOperator machine or hardware walletDeploy/upgrade authority operationsDefines authority, not program address
Helius API keyWorker/app envDashboard, SDK helpers, synthetic checksRotate if leaked
Webhook HMAC secretsDashboard D1/env depending on endpointWebhook delivery consumersSupport dual-secret rotation
D1 credentials/bindingsCloudflare configDashboard, admin, checkout, portalDo not copy between envs blindly
Resend API keyWorker envEmail/invoice deliveryLeast privilege sender domain
Turnstile secretWorker envPublic checkout/authNever expose client-side

Local Workspace Paths

RepoPath
Workspace root/Users/laitsky/Developments/vela-labs
Protocol/Users/laitsky/Developments/vela-labs/vela-protocol
SDK/Users/laitsky/Developments/vela-labs/vela-sdk
Dashboard/Users/laitsky/Developments/vela-labs/vela-dashboard
Webhook package/Users/laitsky/Developments/vela-labs/vela-webhook
Docs/Users/laitsky/Developments/vela-labs/vela-docs
Internal wiki/Users/laitsky/Developments/vela-labs/internal-wiki

Environment Drift Checks

Run these before a protocol deploy:

sh
cd /Users/laitsky/Developments/vela-labs/vela-protocol

solana config get
solana-keygen pubkey
bun run program-ids:check
bun run verify:rollout

Run these after a protocol deploy:

sh
bun run verify:deployed

Search for stale program IDs across the workspace:

sh
cd /Users/laitsky/Developments/vela-labs

rg -n "CVM6UqbwKgHckZzm8R2qbN3BWhCTdk1PsSeEQLchkwKT|3agVoFp4NZFuKbVqCV8HbjSZn1xW4Utk4U1Wir3TKjZ9" \
  vela-* internal-wiki \
  -g '!node_modules' -g '!dist' -g '!build' -g '!target'

Internal knowledge base for the Vela Labs workspace.