Before launching Zenith Protocol, verify:
- Rust 1.84.0+ installed (
rustup --version) - Stellar CLI v26+ installed (
stellar --version) - Node.js 20+ installed (
node --version) - Git configured (
git config --list) - WebAssembly target added (
rustup target list | grep wasm32)
- Clone complete: all files present
- Dependencies installable:
cargo buildsucceeds - Tests pass:
make testruns without errors - Frontend builds:
cd frontend && npm install && npm run build - Git initialized:
.gitdirectory exists
git clone https://github.com/zenith-protocol/zenith-stellar.git
cd zenith-stellarrustup target add wasm32-unknown-unknown# Build the smart contract
make build
# Run all tests
make test
# Format verification
make fmtcd frontend
# Install dependencies
npm install
# Create environment config
cat > .env.local << EOF
NEXT_PUBLIC_ZENITH_CONTRACT_ID=to-be-deployed
NEXT_PUBLIC_API_URL=http://localhost:3000
EOF
# Start development server
npm run devVisit http://localhost:3000 to see the dashboard.
# Install Stellar CLI (macOS/Linux/WSL)
curl https://apt.stellar.org/StellarSecureServer.asc | gpg --import
sudo apt-get install stellar-cli
# Or use Homebrew (macOS)
brew install stellar-cli
# Verify installation
stellar --version# Generate a keypair for deployment
stellar keys generate zenith_admin --network testnetVisit the Stellar Testnet Faucet:
# Visit: https://friendbot.stellar.org/?addr=<YOUR_PUBLIC_KEY>Verify funding:
stellar account info --account zenith_admin --network testnet# From repository root
make deployThis will:
- Build the contract
- Optimize WASM
- Deploy to testnet
- Initialize the contract
- Output:
CONTRACT_ID: CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Update frontend/.env.local:
NEXT_PUBLIC_ZENITH_CONTRACT_ID=CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
NEXT_PUBLIC_API_URL=http://localhost:3000# Connect wallet via Freighter browser extension
# Visit http://localhost:3000
# Click "Connect Wallet"
# (Note: won't have points yet - requires admin allocation)After contract deployment, the admin must initialize:
stellar contract invoke \
--id <CONTRACT_ID> \
--source-account zenith_admin \
--network testnet \
-- \
deposit \
--from <SPONSOR_ACCOUNT> \
--amount 50000000000 # 5,000 USDC (in Stroops)stellar contract invoke \
--id <CONTRACT_ID> \
--source-account zenith_admin \
--network testnet \
-- \
award_points \
--contributor <DEVELOPER_ACCOUNT> \
--points 100stellar contract invoke \
--id <CONTRACT_ID> \
--source-account zenith_admin \
--network testnet \
-- \
close_waveAfter closing, developers can claim!
- Contract security audit completed
- Testnet stress testing passed
- All team members trained
- Legal review done (if applicable)
- Mainnet keypairs securely backed up
- Incident response plan documented
Same as testnet but replace --network testnet with --network public.
stellar keys generate zenith_admin_mainnet --network publicContact Stellar Development Foundation or use production exchange.
# Modify deploy.sh temporarily:
# NETWORK="public"
# SOURCE_ACCOUNT="zenith_admin_mainnet"
./scripts/deploy.shstellar contract info \
--id <MAINNET_CONTRACT_ID> \
--network public \
--rpc-url https://soroban-mainnet.stellar.org# Never commit private keys
echo "*.key" >> .gitignore
echo ".env.production" >> .gitignore
# Backup keys securely (encrypted storage)
# Consider hardware wallets for mainnet# Review code before deployment
code contracts/zenith_core/src/lib.rs
# Run comprehensive tests
make test
# Check for vulnerabilities
cargo audit# Update dependencies regularly
cd frontend
npm audit
npm update
# Review environment variables
cat .env.local # Never commit secrets!# Get admin address
stellar contract invoke \
--id <CONTRACT_ID> \
--source-account <ANY_ACCOUNT> \
--network testnet \
-- \
get_admin
# Monitor events
curl -X POST https://soroban-testnet.stellar.org \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getSorobanEvents",
"params": [{
"filters": [{
"contractIds": ["<CONTRACT_ID>"]
}]
}]
}'# View recent transactions
stellar tx fetch <TRANSACTION_HASH> --network testnet# Clean rebuild
make clean
make build
# Verbose output
RUST_BACKTRACE=1 cargo build# Run specific test
cargo test test_successful_flow -- --nocapture
# View full output
RUST_LOG=debug cargo test# Verify CLI configuration
stellar network list
# Check account status
stellar account info --account zenith_admin --network testnet
# Ensure sufficient fees
# Current: ~100 stroops per operation# Clear Next.js cache
cd frontend
rm -rf .next
# Reinstall dependencies
rm -rf node_modules package-lock.json
npm install
# Debug TypeScript
npm run build- README.md: Protocol overview
- ARCHITECTURE.md: System design
- DEVELOPMENT.md: Dev guide
- CONTRIBUTING.md: Contributing guidelines
- SECURITY.md: Security policy
- Search existing GitHub Issues
- Create detailed issue with:
- Steps to reproduce
- Expected vs actual behavior
- Environment (OS, versions)
- Logs/error messages
Do NOT open public issues for security vulnerabilities.
Email: security@zenith-protocol.dev
Status: Ready for Development
Last Updated: July 2026
Maintainers: Zenith Protocol Team