An interactive curriculum that takes you from zero to deploying Soroban contracts on testnet — and then mainnet. Six gamified challenges. On-chain XLM rewards. Open source. Built natively for Stellar.
Every challenge follows the same flow. Once you've shipped one, the others click into place.
One make setup installs Rust, soroban-cli, and configures testnet. Zero environment friction.
A guided Soroban contract scaffold + tutorial. You fill in the blanks, run tests locally, and learn by writing.
soroban contract deploy ships your code to Stellar testnet. Verifier reads on-chain state to confirm correctness.
On verification, the platform mints you a Speedrun NFT and sends a small XLM reward to your wallet.
From a one-line NFT mint to a multi-sig vault. Each challenge ships with a tutorial, a working scaffold, and an on-chain verifier.
Deploy your first Soroban contract: a minimal NFT with mint + read functions. Connect Freighter, sign your first tx, and see your token on-chain.
Start challenge →Build a contract that accepts XLM and dispenses a custom Stellar asset. Teaches contract-to-account flows, custom token issuance, and pricing logic.
Coming soon →Wrap Stellar's native multisig features in a learner-friendly Soroban contract. Approve a 2-of-3 transaction across multiple Freighter accounts.
Coming soon →Time-locked staking with on-chain reward calculation. Teaches state, time logic, and basic financial primitives.
Coming soon →Verifiable governance: ballot creation, weighted voting by token balance, quorum logic, and transparent tally — all on-chain.
Coming soon →Privacy-preserving credential check using Soroban's emerging crypto primitives. Optional capstone challenge.
Coming soon →Each challenge is a working Rust project that compiles to WASM and deploys to real Stellar testnet. The scaffolds are minimal, the gaps are intentional, and the tutorials walk you through the why — not just the what.
soroban-sdk, no toy framework// Mint a new NFT to `owner` with `name`. Returns the NFT id. pub fn mint(env: Env, owner: Address, name: String) -> u32 { owner.require_auth(); let next_id: u32 = env.storage().instance() .get(&Symbol::new(&env, "next")) .unwrap_or(1); let nft = NFT { id: next_id, owner: owner.clone(), name }; env.storage().persistent().set(&next_id, &nft); env.events().publish( (Symbol::new(&env, "mint"), owner), next_id, ); next_id }
Speedrun Stellar is being built by a team with deep ties to the Vietnamese builder community and a track record of shipping developer education at scale.
Sample feedback from alpha conversations. Real testimonials will be collected during M1 and published to the platform.