Congratulations! You now have a complete automation platform for deploying runtime guard wrapper contracts to Soroban testnet. Here's what you can do next:
-
Read Quick Start
- File: QUICK_START.md
- Time: 5 minutes
- Learn the basics and deploy your first contract
-
Set Up Environment
cp .env.example .env.local nano .env.local # Add SOROBAN_SECRET_KEY -
Test Dry Run
chmod +x scripts/deploy-soroban-testnet.sh ./scripts/deploy-soroban-testnet.sh --dry-run --debug
-
Deploy to Testnet
source .env.local ./scripts/deploy-soroban-testnet.sh --network testnet -
Verify Deployment
cat .deployment-manifest.json | jq '.' tail -50 .deployment.log
-
Check Contract Health
CONTRACT_ID=$(jq -r '.deployments[0].contract_id' .deployment-manifest.json) soroban contract invoke \ --id "$CONTRACT_ID" \ --network testnet \ -- health_check
-
Add GitHub Secret
gh secret set SOROBAN_SECRET_KEY --body "YOUR_KEY_HERE"
-
Test GitHub Actions
- Go to Actions tab
- Select "Soroban Runtime Guard Deployment"
- Click "Run workflow"
- Monitor the run
-
Review Deployment Artifacts
- Download
deployment-manifest-* - Download
deployment-log-* - Verify successful deployment
- Download
-
Review Full Documentation
- SOROBAN_DEPLOYMENT.md - Complete guide
- docs/ci-cd-setup.md - CI/CD configuration
- ARCHITECTURE.md - System design
-
Configure Branch Protection
- Settings > Branches > Add rule
- Require status checks before merge
- Enable deployment artifacts retention
-
Set Up Monitoring
- Review logs regularly:
tail -f .deployment.log - Monitor GitHub Actions runs
- Set up alerts/notifications (optional)
- Review logs regularly:
-
Plan for Multiple Networks
- Consider separate keys per network
- Test on futurenet if needed
- Prepare mainnet deployment process
→ QUICK_START.md (5 minutes)
→ ARCHITECTURE.md + SOROBAN_DEPLOYMENT.md
→ contracts/runtime-guard-wrapper/README.md
→ sanctifier deploy --help
Goal: Deploy once, validate
# Setup (one time)
cp .env.example .env.local
# Edit .env.local
# Deploy
source .env.local
./scripts/deploy-soroban-testnet.sh --network testnet
# Done! Contract deployed and validatedGoal: Auto-deploy on every push to main
# Setup (one time)
gh secret set SOROBAN_SECRET_KEY --body "YOUR_KEY"
# Now automatic:
# - Any push to main → GitHub Actions runs
# - Builds, deploys, validates automatically
# - Every 6 hours: continuous validationGoal: Frequent test deployments
# Use dry-run first
./scripts/deploy-soroban-testnet.sh --dry-run
# Deploy for testing
./scripts/deploy-soroban-testnet.sh --network testnet
# Iterate quickly
# Modify contract → test → redeployGoal: Continuous monitoring
# Deploy with monitoring
./scripts/deploy-soroban-testnet.sh --network testnet
# Script runs continuously
# Validates every 5 minutes
# Updates .deployment-manifest.json# Full deployment with validation
./scripts/deploy-soroban-testnet.sh --network testnet
# Dry run (no actual deployment)
./scripts/deploy-soroban-testnet.sh --dry-run
# Without continuous validation
./scripts/deploy-soroban-testnet.sh --no-continuous
# Custom validation interval
./scripts/deploy-soroban-testnet.sh --interval 600
# Debug mode
./scripts/deploy-soroban-testnet.sh --debug# Get deployed contract ID
jq -r '.deployments[0].contract_id' .deployment-manifest.json
# Health check
soroban contract invoke --id $CONTRACT_ID --network testnet -- health_check
# Get stats
soroban contract invoke --id $CONTRACT_ID --network testnet -- get_stats
# Watch logs
tail -f .deployment.log
# Latest deployment summary
head -20 .deployment.log# List recent runs
gh run list --workflow soroban-deploy.yml --limit 10
# View specific run
gh run view <RUN_ID>
# Download artifacts
gh run download <RUN_ID> -n deployment-manifest-<RUN_ID>Your setup is successful when:
✅ Deployment Phase
-
.deployment-manifest.jsoncreated - Contract ID recorded
-
.deployment.logshows success messages
✅ Validation Phase
-
health_check()returnstrue -
get_stats()shows execution data - No guard failures reported
✅ CI/CD Phase (if enabled)
- GitHub Actions workflow completes
- Artifacts uploaded successfully
- Scheduled runs execute on time
✅ Monitoring Phase
- Continuous validation loop running
- Manifest updates every N seconds
- No errors in monitoring logs
| Issue | Solution |
|---|---|
| SOROBAN_SECRET_KEY not found | Setup Guide |
| WASM file not found | Build Guide |
| Deployment failed | Troubleshooting |
| Validation timeout | Options |
| GitHub Actions not running | CI/CD Setup |
-
Check Documentation First
- Relevant guide from Documentation by Use Case
- Search for your error in Troubleshooting
-
Review Examples
- QUICK_START.md examples
- SOROBAN_DEPLOYMENT.md use cases
-
Check Logs
# Detailed logs cat .deployment.log | grep -i error # Recent lines tail -50 .deployment.log
-
Test with Dry-Run
./scripts/deploy-soroban-testnet.sh --dry-run --debug
-
Verify Prerequisites
# Check tools cargo --version soroban --version jq --version
Once you've deployed successfully, explore:
- Modify
GuardConfigin the contract - Add new invariant checks
- Extend metrics collection
- Deploy multiple contracts
- Wrap different contract types
- Coordinate deployments
- Test on futurenet
- Prepare for mainnet
- Manage multiple environments
- Set up webhooks
- Create dashboards
- Configure notifications
- Optimize WASM size
- Reduce validation frequency
- Cache compilation
Planned features:
- Web-based deployment dashboard
- Real-time validation metrics
- Alert notifications
- Historical reporting
- Multi-network overview
Level 1: Beginner (Today) → Read QUICK_START.md → Deploy contract
Level 2: Intermediate (This week) → Set up GitHub Actions → Configure monitoring
Level 3: Advanced (This month) → Multi-network setup → Custom guards
| File | Purpose | Frequency |
|---|---|---|
| QUICK_START.md | Get started quickly | Once |
| .env.local | Your credentials | Setup once |
| scripts/deploy-soroban-testnet.sh | Main deployment | Each deployment |
| .deployment-manifest.json | Deployment records | Auto-updated |
| .deployment.log | Execution logs | Auto-updated |
| .github/workflows/soroban-deploy.yml | CI/CD config | Edit as needed |
| ARCHITECTURE.md | System design | Reference |
✅ Use Dry-Run First
./scripts/deploy-soroban-testnet.sh --dry-run✅ Archive Old Manifests
mv .deployment-manifest.json "manifest-$(date +%s).json"✅ Monitor in Real-Time
watch -n 1 'tail -5 .deployment.log'✅ Check Before Pushing
./scripts/deploy-soroban-testnet.sh --dry-run --debug✅ Keep Logs Organized
tar czf "deployment-$(date +%Y%m%d).tar.gz" .deployment*Day 1
- Read QUICK_START.md
- Set up environment
- Test dry-run
Day 2
- Deploy to testnet
- Verify health check
- Review logs
Week 1
- Set up GitHub Actions
- Test CI/CD
- Archive artifacts
Week 2+
- Monitor production
- Refine settings
- Plan next phases
Track these to measure success:
- Deployments: Number of successful deployments
- Uptime: Contract availability on testnet
- Health: Validation check pass rate
- Performance: Metrics collection efficiency
- Reliability: Error rates and recovery
Before considering setup complete:
- Contract deployed successfully
- Health check passes
- Deployment manifest created
- Logs generated without errors
- GitHub Actions configured (if using)
- Continuous validation running
- Documentation reviewed
- Troubleshooting guide saved
You now have everything needed to:
✅ Deploy runtime guard contracts
✅ Automate validation
✅ Set up CI/CD pipelines
✅ Monitor deployments
✅ Scale to multiple networks
Next Step: Open QUICK_START.md and deploy your first contract! 🚀
Last Updated: February 25, 2026
Status: Ready for Production
Support: Check SOROBAN_DEPLOYMENT.md for detailed help