Environment Variables
3. Environment Variables
This section explains how to set up environment variables for AI API keys and Multi-Chain Web3 providers.
AI API Keys
Set the AI provider API keys for your chosen AI service(s).
Basic Configuration
Windows CMD:
set OPENAI_API_KEY="your_openai_key_here"
set ANTHROPIC_API_KEY="your_anthropic_key_here"
set LLAMA_API_KEY="your_llama_key_here"Windows PowerShell:
$env:OPENAI_API_KEY="your_openai_key_here"
$env:ANTHROPIC_API_KEY="your_anthropic_key_here"
$env:LLAMA_API_KEY="your_llama_key_here"Mac/Linux:
export OPENAI_API_KEY="your_openai_key_here"
export ANTHROPIC_API_KEY="your_anthropic_key_here"
export LLAMA_API_KEY="your_llama_key_here"Web3 Provider Configuration
Ethereum Settings
Windows CMD:
set ETH_PROVIDER_URL="https://mainnet.infura.io/v3/your_infura_key"
set ETH_NETWORK="mainnet"
set ETH_CHAIN_ID="1"
set ETH_GAS_PRICE_STRATEGY="medium"
set ETH_PRIVATE_KEY="your_private_key"Windows PowerShell:
$env:ETH_PROVIDER_URL="https://mainnet.infura.io/v3/your_infura_key"
$env:ETH_NETWORK="mainnet"
$env:ETH_CHAIN_ID="1"
$env:ETH_GAS_PRICE_STRATEGY="medium"
$env:ETH_PRIVATE_KEY="your_private_key"Mac/Linux:
export ETH_PROVIDER_URL="https://mainnet.infura.io/v3/your_infura_key"
export ETH_NETWORK="mainnet"
export ETH_CHAIN_ID="1"
export ETH_GAS_PRICE_STRATEGY="medium"
export ETH_PRIVATE_KEY="your_private_key"Solana Settings
Windows CMD:
set SOL_PROVIDER_URL="https://api.mainnet-beta.solana.com"
set SOL_NETWORK="mainnet-beta"
set SOL_COMMITMENT="confirmed"
set SOL_WALLET_KEY="your_wallet_key"
set SOL_RATE_LIMIT="30"Windows PowerShell:
$env:SOL_PROVIDER_URL="https://api.mainnet-beta.solana.com"
$env:SOL_NETWORK="mainnet-beta"
$env:SOL_COMMITMENT="confirmed"
$env:SOL_WALLET_KEY="your_wallet_key"
$env:SOL_RATE_LIMIT="30"Mac/Linux:
export SOL_PROVIDER_URL="https://api.mainnet-beta.solana.com"
export SOL_NETWORK="mainnet-beta"
export SOL_COMMITMENT="confirmed"
export SOL_WALLET_KEY="your_wallet_key"
export SOL_RATE_LIMIT="30"CI/CD Configuration
GitHub Actions
name: NAREON Multi-Chain Deployment
env:
# Network configurations
ETH_NETWORK: mainnet
SOL_NETWORK: mainnet-beta
SOL_COMMITMENT: confirmed
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Configure Environment
env:
# AI API Keys
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
# Ethereum Configuration
ETH_PROVIDER_URL: ${{ secrets.ETH_PROVIDER_URL }}
ETH_PRIVATE_KEY: ${{ secrets.ETH_PRIVATE_KEY }}
# Solana Configuration
SOL_PROVIDER_URL: ${{ secrets.SOL_PROVIDER_URL }}
SOL_WALLET_KEY: ${{ secrets.SOL_WALLET_KEY }}
run: |
echo "Setting up environment variables..."Jenkins Pipeline
pipeline {
agent any
environment {
// AI API Keys
OPENAI_API_KEY = credentials('openai-api-key')
ANTHROPIC_API_KEY = credentials('anthropic-api-key')
// Ethereum Settings
ETH_PROVIDER_URL = credentials('eth-provider-url')
ETH_PRIVATE_KEY = credentials('eth-private-key')
ETH_NETWORK = 'mainnet'
// Solana Settings
SOL_PROVIDER_URL = credentials('sol-provider-url')
SOL_WALLET_KEY = credentials('sol-wallet-key')
SOL_NETWORK = 'mainnet-beta'
}
stages {
stage('Deploy') {
steps {
echo 'Deploying with configured environments...'
}
}
}
}Configuration Manager Implementation
using UnityEngine;
using System;
namespace NAREON.Config
{
public static class EnvironmentManager
{
public static class AI
{
public static string OpenAIKey => GetRequiredEnvVar("OPENAI_API_KEY");
public static string AnthropicKey => GetRequiredEnvVar("ANTHROPIC_API_KEY");
public static string LlamaKey => GetRequiredEnvVar("LLAMA_API_KEY");
}
public static class Ethereum
{
public static string ProviderUrl => GetRequiredEnvVar("ETH_PROVIDER_URL");
public static string Network => GetEnvVar("ETH_NETWORK", "mainnet");
public static int ChainId => int.Parse(GetEnvVar("ETH_CHAIN_ID", "1"));
public static string PrivateKey => GetRequiredEnvVar("ETH_PRIVATE_KEY");
}
public static class Solana
{
public static string ProviderUrl => GetRequiredEnvVar("SOL_PROVIDER_URL");
public static string Network => GetEnvVar("SOL_NETWORK", "mainnet-beta");
public static string Commitment => GetEnvVar("SOL_COMMITMENT", "confirmed");
public static string WalletKey => GetRequiredEnvVar("SOL_WALLET_KEY");
}
private static string GetRequiredEnvVar(string key)
{
string value = Environment.GetEnvironmentVariable(key);
if (string.IsNullOrEmpty(value))
{
throw new InvalidOperationException($"Required environment variable {key} not set");
}
return value;
}
private static string GetEnvVar(string key, string defaultValue)
{
return Environment.GetEnvironmentVariable(key) ?? defaultValue;
}
}
}Important Notes
Security Considerations
Never commit API keys or private keys to version control
Use secure secret management in CI/CD pipelines
Rotate keys regularly
Use different keys for development and production
Network Selection
ETH_NETWORK options: mainnet, goerli, sepolia
SOL_NETWORK options: mainnet-beta, devnet, testnet
Use appropriate networks for development and testing
Provider Selection
Ethereum providers: Infura, Alchemy, self-hosted nodes
Solana providers: Public RPC, private RPC endpoints
Consider using multiple providers for redundancy
Usage in NAREON
These variables are used by:
NAREONAIclass for AI service interactionsNAREONTokenManagerfor Ethereum transactionsNAREONSolanaManagerfor Solana transactionsVarious utility classes for network interactions
Error Handling
Implement proper error handling for missing variables
Validate environment variables at startup
Provide clear error messages for configuration issues
Last updated

