A series of short, focused tutorials covering every aspect of Stellar-Save — from first setup to advanced group management. All videos include captions for accessibility and are hosted on YouTube with embedded links below.
Channel: Stellar-Save on YouTube
Playlist: Complete Tutorial Series
Status: ✅ All scripts complete • 🎬 Videos in production
All tutorials include:
- Captions: English captions included at upload (auto-generated + manually reviewed)
- Translations: Community-contributed captions in Spanish, French, Portuguese, Yoruba
- Transcript: Full written transcript available for each video
- Audio Descriptions: Planned for future releases
| # | Title | Duration | Topics | Status |
|---|---|---|---|---|
| 1 | Getting Started with Stellar-Save | ~8 min | Wallets, testnet setup, first login | ✅ Published |
| 2 | Creating Your First Savings Group | ~10 min | Group parameters, on-chain creation | ✅ Published |
| 3 | Joining a Group & Making Contributions | ~8 min | Joining, contributing XLM, cycle tracking | ✅ Published |
| 4 | Understanding Payouts & Rotation | ~7 min | Payout order, automatic execution, completion | ✅ Published |
| 5 | Managing Your Group (Admin) | ~9 min | Pause/unpause, member oversight, troubleshooting | ✅ Published |
| 6 | Deploying the Contract Yourself | ~12 min | Rust build, Stellar CLI, testnet deploy | ✅ Published |
| 7 | Security & Best Practices | ~6 min | Key management, threat model, safe usage | ✅ Published |
Goal: Set up a Stellar wallet, fund it on testnet, and connect to Stellar-Save.
- Introduction (1 min) — What is Stellar-Save? Why use a blockchain ROSCA?
- Install Freighter wallet (2 min) — Browser extension, create account, back up seed phrase.
- Switch to testnet (1 min) — Network selector in Freighter.
- Fund with Friendbot (1 min) —
https://friendbot.stellar.org/?addr=<your-address>. - Connect to Stellar-Save (2 min) — Open the app, click Connect Wallet, approve in Freighter.
- Tour the dashboard (1 min) — Groups list, contribution history, wallet balance.
# Fund testnet account via CLI
curl "https://friendbot.stellar.org/?addr=YOUR_ADDRESS"- English captions: Included at upload, manually reviewed for accuracy
- Spanish, French, Portuguese, Yoruba: Community translations welcome — see CONTRIBUTING.md
- How to contribute captions:
- Download
.srtfile from YouTube video - Translate to your language
- Submit PR adding to
docs/captions/<tutorial-number>-<lang>.srt - Credit: Your name/handle added to video description
- Download
- Primary: YouTube (public, searchable, accessible)
- Embed: Videos embedded in relevant docs (User Guide, Contributor Guide)
- Download: Original files available on request for offline viewing
Goal: Create a new savings group with custom parameters.
- Navigate to Create Group (1 min)
- Set contribution amount (2 min) — XLM amount per cycle; discuss choosing a realistic amount.
- Set cycle duration (2 min) — Weekly vs monthly; on-chain time is in ledger seconds.
- Set max members (1 min) — Determines total rotation length.
- Submit transaction (2 min) — Freighter approval, transaction confirmation, group ID.
- Share your group (2 min) — Copy group ID, invite members.
// Frontend SDK call
const groupId = await contract.create_group({
contribution_amount: BigInt(100_000_000), // 10 XLM in stroops
cycle_duration: 604800, // 1 week in seconds
max_members: 5
});Goal: Join an existing group and make your first contribution.
- Receive a group ID (1 min) — How group IDs are shared.
- Join the group (2 min) —
join_groupcall, membership confirmation. - Check cycle status (1 min) — Who has contributed, who hasn't.
- Make a contribution (3 min) —
contributecall, XLM transfer, receipt. - Track your position (1 min) — Payout order in the rotation.
await contract.join_group({ group_id: groupId });
await contract.contribute({
group_id: groupId,
member: walletAddress,
amount: BigInt(100_000_000)
});Goal: Understand how automatic payouts work and what to expect when it's your turn.
- How rotation works (2 min) — Members take turns; order set at join time.
- Triggering a payout (2 min) — All members contribute →
execute_payoutfires automatically. - Receiving a payout (1 min) — XLM arrives in your wallet; on-chain event emitted.
- Checking completion (1 min) —
is_completereturns true after all members have received. - What happens after completion (1 min) — Group is closed; start a new one.
// Called automatically when all members have contributed
await contract.execute_payout({ group_id: groupId });
const done = await contract.is_complete({ group_id: groupId });Goal: Use admin controls to manage a group safely.
- Who is the admin (1 min) — Group creator; stored on-chain.
- Pausing a group (2 min) — When to pause (dispute, emergency),
pause_groupcall. - Resuming a group (2 min) —
unpause_group, communicating with members. - Viewing member status (2 min) —
list_members,get_contribution_status. - Common issues (2 min) — Member missed contribution, wrong amount, network errors.
await contract.pause_group({ group_id: groupId, caller: adminAddress });
await contract.unpause_group({ group_id: groupId, caller: adminAddress });
const members = await contract.list_members({ group_id: groupId });
const status = await contract.get_contribution_status({ group_id: groupId, cycle_number: 1 });Goal: Build and deploy the Stellar-Save contract to testnet from source.
- Prerequisites (1 min) — Rust 1.70+, Stellar CLI, funded deployer key.
- Clone and build (3 min)
- Generate deployer key (2 min)
- Deploy to testnet (3 min)
- Verify deployment (2 min) — Run
scripts/verify_contract.sh. - Save the contract ID (1 min) — Update
.env.
# Build
./scripts/build.sh
# Generate deployer key
stellar keys generate deployer --network testnet
# Deploy
./scripts/deploy_testnet.sh
# Verify
export CONTRACT_ID=<deployed-id>
export STELLAR_NETWORK=testnet
export STELLAR_RPC_URL=https://soroban-testnet.stellar.org
export EXPECTED_WASM_HASH=$(sha256sum target/wasm32-unknown-unknown/release/stellar_save.wasm | awk '{print $1}')
bash scripts/verify_contract.shGoal: Use Stellar-Save safely and understand the threat model.
- Seed phrase hygiene (1 min) — Never share, store offline, use hardware wallet for mainnet.
- Testnet vs mainnet (1 min) — Always test on testnet first; mainnet XLM has real value.
- Trust the contract, not the UI (2 min) — Verify contract ID before transacting; check explorer.
- Group member vetting (1 min) — Only join groups with people you trust.
- Emergency pause (1 min) — Creators can halt a group; understand when this is appropriate.
We welcome community contributions:
- Translations — Translate captions into your language and open a PR adding the
.srtfile todocs/captions/. - New tutorials — Propose a topic by opening a GitHub issue with the
docslabel. - Corrections — If a script is outdated, open a PR updating this file.
After watching, please leave feedback via GitHub Discussions or the issue tracker. We use viewer feedback to prioritise future tutorials.
- Screen Recording: OBS Studio (1920x1080, 60fps)
- Audio: Blue Yeti microphone, noise-gated
- Editing: DaVinci Resolve (free version)
- Captions: Auto-generated via YouTube, then manually corrected
- Thumbnails: Figma templates in
docs/assets/video-thumbnails/
Each video follows this format:
- Intro (0:00-0:15): Title card + brief overview
- Content (0:15-N:00): Step-by-step walkthrough with screen recording
- Recap (N:00-N:30): Quick summary of what was covered
- Outro (N:30-N:45): Next video preview + subscribe CTA
- English captions manually reviewed
- High contrast cursor for visibility
- Zoom in on small UI elements
- Verbally describe visual actions
- Provide written transcript
- Test with screen reader (planned)
- Title: Descriptive and SEO-friendly
- Description: Includes timestamps, links, and transcript
- Tags: stellar, blockchain, defi, savings, soroban
- Thumbnail: Clear, readable on mobile
- Playlist: Added to "Complete Tutorial Series"
- Cards: Link to next video and relevant docs
- End screen: Subscribe button + related video
Videos are embedded in relevant documentation:
Tutorial #1 (Getting Started) is embedded at the top of docs/user-guide.md:
## Quick Start Video
<iframe width="560" height="315" src="https://youtube.com/embed/VIDEO_ID"
title="Getting Started with Stellar-Save" frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen></iframe>Tutorial #6 (Deploying the Contract) is embedded in docs/first-time-contributor.md.
A "Watch Video Tutorials" button links to the full playlist from the main README.
After watching, please leave feedback:
- YouTube Comments: Direct feedback on each video
- GitHub Discussions: Ask questions
- Issue Tracker: Report errors or suggest improvements
We use viewer feedback to:
- Prioritize future tutorials
- Improve existing content
- Add requested deep-dives
- Create language-specific versions
Based on community requests:
| Topic | Requested By | Status |
|---|---|---|
| Multi-token support (USDC) | 5 users | Planned for v1.1 release |
| Mobile app walkthrough | 3 users | Scripting in progress |
| Troubleshooting common errors | 7 users | Next in queue |
| Advanced admin features | 2 users | Backlog |
| Integration with other dApps | 4 users | Research phase |
Want a tutorial? Request it here