New: AI Agent SDK is live — integrate Claude-powered wallet actions into your app. Read the docs
GuidesChoosing a Network

Choosing a Network

Stellar offers three networks for development and production. This guide helps you choose the right one for your needs.

Network Comparison Table

AspectFuturenetTestnetMainnet
PurposeLatest featuresDevelopment/TestingProduction
Reset PolicyMonthlyMonthlyNever
Uptime~95%~99%99.95%+
Real XLMNo (free)No (free)Yes (real money)
Use CaseExperimental featuresApp development & QAProduction dApps
FriendbotYesYesNo (must buy XLM)
RPC Endpointsoroban-futurenet.stellar.orgsoroban-testnet.stellar.orgsoroban-mainnet.stellar.org
Horizon APIhorizon-futurenet.stellar.orghorizon-testnet.stellar.orghorizon.stellar.org
Network IDStellarFuturenetNetworkTest SDF NetworkPublic Global Stellar
Fee Rate~100 stroops/tx~100 stroops/tx~100 stroops/tx

Futurenet

For: Testing new Soroban features, experimenting with upcoming protocol changes

When to Use Futurenet

  • ✅ Testing cutting-edge Soroban features not yet on Testnet
  • ✅ Experimenting with protocol changes before they reach Testnet
  • ✅ Rapid iteration on contracts
  • ❌ NOT for production
  • ❌ NOT for user-facing features (data resets monthly)

Futurenet Setup

# Environment variables for Futurenet
export STELLAR_NETWORK="futurenet"
export SOROBAN_RPC_HOST="https://soroban-futurenet.stellar.org"
export SOROBAN_RPC_PORT="443"
export HORIZON_URL="https://horizon-futurenet.stellar.org"
export FRIENDBOT_URL="https://friendbot-futurenet.stellar.org"
export NETWORK_PASSPHRASE="StellarFuturenetNetwork"

Get Free Futurenet XLM

# Get XLM via Friendbot
curl "https://friendbot-futurenet.stellar.org/?addr=GBBD47XCZVNQWMFE2IWHHT4AFYK6QKM3ZDMK5GVLL5IXacelași5QNTUVA"

Veil Futurenet Deployment

# Deploy Veil contract to Futurenet
soroban contract deploy \
  --wasm target/wasm32-unknown-unknown/release/veil_wallet.wasm \
  --rpc-url https://soroban-futurenet.stellar.org \
  --network-passphrase "StellarFuturenetNetwork"
⚠️

Futurenet data resets monthly. Never store production data or user funds here. All accounts and contracts are wiped.

Testnet

For: Active development, integration testing, QA before production

When to Use Testnet

  • ✅ Normal app development
  • ✅ Testing wallet features
  • ✅ Integration testing
  • ✅ User acceptance testing (before mainnet)
  • ❌ NOT for production
  • ❌ NOT for long-term data storage (data resets monthly)

Testnet Setup

# Environment variables for Testnet
export STELLAR_NETWORK="testnet"
export SOROBAN_RPC_HOST="https://soroban-testnet.stellar.org"
export SOROBAN_RPC_PORT="443"
export HORIZON_URL="https://horizon-testnet.stellar.org"
export FRIENDBOT_URL="https://friendbot-testnet.stellar.org"
export NETWORK_PASSPHRASE="Test SDF Network ; September 2015"

Get Free Testnet XLM

# Get XLM via Friendbot
curl "https://friendbot-testnet.stellar.org/?addr=GBBD47XCZVNQWMFE2IWHHT4AFYK6QKM3ZDMK5GVLL5IXSAMQ5QNTUVA"
 
# Or use the Stellar Laboratory
# https://laboratory.stellar.org/#account-creator

Testnet Explorer

Veil Testnet Deployment

# Deploy Veil contract to Testnet
soroban contract deploy \
  --wasm target/wasm32-unknown-unknown/release/veil_wallet.wasm \
  --rpc-url https://soroban-testnet.stellar.org \
  --network-passphrase "Test SDF Network ; September 2015"
 
# Initialize wallet
soroban contract invoke \
  --contract-id CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUFC \
  --function init \
  --arg-xdr-base64 "AAAAQQAAAAACc4fQYlzfXGqoHUZRXlzfXGqoHUZRXlzfXGqoHUZRXlzfXGqoHUZRXl=" \
  --rpc-url https://soroban-testnet.stellar.org \
  --network-passphrase "Test SDF Network ; September 2015"

Most Veil development happens on Testnet. It has stable features and monthly resets are acceptable.

Mainnet

For: Production deployments, real user wallets, actual XLM transactions

When to Use Mainnet

  • ✅ Production dApps
  • ✅ Real user wallets
  • ✅ Live payments
  • ✅ Real XLM settlement
  • ❌ NOT for testing (uses real money)
  • ❌ NOT for unaudited code

Mainnet Setup

# Environment variables for Mainnet
export STELLAR_NETWORK="mainnet"
export SOROBAN_RPC_HOST="https://soroban-mainnet.stellar.org"
export SOROBAN_RPC_PORT="443"
export HORIZON_URL="https://horizon.stellar.org"
export NETWORK_PASSPHRASE="Public Global Stellar Network ; September 2015"

Get Mainnet XLM

Mainnet has no Friendbot. You must buy XLM from an exchange:

  1. Krakenhttps://www.kraken.com
  2. Binancehttps://www.binance.com
  3. Coinbasehttps://www.coinbase.com
  4. CoinMarketCaphttps://coinmarketcap.com/currencies/stellar/

Mainnet Explorer

Veil Mainnet Deployment

# Deploy Veil contract to Mainnet (REAL XLM WILL BE CHARGED)
soroban contract deploy \
  --wasm target/wasm32-unknown-unknown/release/veil_wallet.wasm \
  --rpc-url https://soroban-mainnet.stellar.org \
  --network-passphrase "Public Global Stellar Network ; September 2015"
 
# Initialize wallet on Mainnet
soroban contract invoke \
  --contract-id CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUFC \
  --function init \
  --arg-xdr-base64 "AAAAQQAAAAACc4fQYlzfXGqoHUZRXlzfXGqoHUZRXlzfXGqoHUZRXlzfXGqoHUZRXlzfXGqoHUZRXl=" \
  --rpc-url https://soroban-mainnet.stellar.org \
  --network-passphrase "Public Global Stellar Network ; September 2015"
⚠️

BE CAREFUL ON MAINNET. Every transaction costs real XLM. Test thoroughly on Testnet first. Never deploy unaudited code to Mainnet.

Stage 1: Local Development

# Start local Soroban simulator
soroban network start local
 
# Test contracts locally
soroban contract test --network local

Stage 2: Futurenet (Optional)

# Test experimental features
export STELLAR_NETWORK="futurenet"
export SOROBAN_RPC_HOST="https://soroban-futurenet.stellar.org"
 
# Deploy and test
soroban contract deploy --network-passphrase "StellarFuturenetNetwork"

Stage 3: Testnet (Required)

# Full integration testing
export STELLAR_NETWORK="testnet"
export SOROBAN_RPC_HOST="https://soroban-testnet.stellar.org"
 
# Test with realistic conditions
soroban contract deploy --network-passphrase "Test SDF Network ; September 2015"
 
# Load test with multiple transactions
npm run test:integration

Stage 4: Mainnet (Production)

# Only after:
# - Security audit ✓
# - Testnet validation ✓
# - Mainnet simulation ✓
 
export STELLAR_NETWORK="mainnet"
export SOROBAN_RPC_HOST="https://soroban-mainnet.stellar.org"
 
# Deploy with caution
soroban contract deploy --network-passphrase "Public Global Stellar Network ; September 2015"

Network Passphrase Reference

Keep these handy:

# Futurenet
StellarFuturenetNetwork
 
# Testnet
Test SDF Network ; September 2015
 
# Mainnet
Public Global Stellar Network ; September 2015

Quick Network Switcher

Create a shell script to switch networks quickly:

#!/bin/bash
 
# ~/.stellar-network
 
case "$1" in
  futurenet)
    export STELLAR_NETWORK="futurenet"
    export SOROBAN_RPC_HOST="https://soroban-futurenet.stellar.org"
    export NETWORK_PASSPHRASE="StellarFuturenetNetwork"
    ;;
  testnet)
    export STELLAR_NETWORK="testnet"
    export SOROBAN_RPC_HOST="https://soroban-testnet.stellar.org"
    export NETWORK_PASSPHRASE="Test SDF Network ; September 2015"
    ;;
  mainnet)
    export STELLAR_NETWORK="mainnet"
    export SOROBAN_RPC_HOST="https://soroban-mainnet.stellar.org"
    export NETWORK_PASSPHRASE="Public Global Stellar Network ; September 2015"
    ;;
  *)
    echo "Usage: source ~/.stellar-network {futurenet|testnet|mainnet}"
    exit 1
    ;;
esac
 
echo "✓ Network set to: $STELLAR_NETWORK"
echo "✓ RPC: $SOROBAN_RPC_HOST"

Usage:

source ~/.stellar-network testnet
# ✓ Network set to: testnet
# ✓ RPC: https://soroban-testnet.stellar.org
 
source ~/.stellar-network mainnet
# ✓ Network set to: mainnet
# ✓ RPC: https://soroban-mainnet.stellar.org

Network Status & Monitoring

Troubleshooting Network Issues

”Cannot connect to RPC"

# Check network connectivity
curl https://soroban-testnet.stellar.org
 
# Verify firewall isn't blocking port 443
telnet soroban-testnet.stellar.org 443

"Invalid network passphrase"

# Double-check your passphrase (exact spelling matters)
# Testnet: "Test SDF Network ; September 2015"  ← note the semicolon
# Mainnet: "Public Global Stellar Network ; September 2015"

"Insufficient balance"

# Check your account balance
soroban contract invoke \
  --contract-id native \
  --function balance \
  --account YOUR_ACCOUNT

"Contract not found”

# Verify contract is deployed on the right network
# Use the network's block explorer
# Testnet: https://testnet.steexp.com
# Mainnet: https://steexp.com

Still stuck? Ask in the Stellar Discord #soroban-support channel. The community is very helpful!