Platform: Rise In
Track: Stellar Smart Contract Bootcamp
Duration: 4 Hours | 4:00 PM - 8:00 PM
Welcome to the Stellar Philippines UniTourβa university-wide campus bootcamp tour that brings Soroban and Stellar to students across Philippine campuses. In this session, youβll receive an assigned Soroban smart contract, complete it, deploy to Stellar testnet, then submit your work on Rise In for certification.
No prior Web3 experience neededβfollow the steps below.
- Receive your assigned Soroban smart contract
- Complete the contract code as instructed
- Test it locally using
cargo test(with 3+ passing tests) - Deploy it to the Stellar testnet
- Submit your Contract ID + GitHub repo on Rise In
For full installation instructions and troubleshooting, use the local guide:
[ENG] Pre-Workshop Setup Guide.pdf
Install the following before or at the start of the session:
-
Add WASM target:
-
macOS (Terminal):
rustup target add wasm32-unknown-unknown- Windows (PowerShell):
rustup target add wasm32-unknown-unknown-
macOS (Terminal):
cargo install --locked stellar-cli- Windows (PowerShell):
cargo install --locked stellar-cli- Freighter Wallet (browser extension), set to Testnet
Open src/lib.rs and complete the contract logic as instructed.
Make sure you have at least 3 passing unit tests in src/test.rs.
- macOS (Terminal):
cargo test- Windows (PowerShell):
cargo testCreate an identity (first time only):
- macOS (Terminal):
stellar keys generate --global my-key --network testnet
stellar keys address my-key- Windows (PowerShell):
stellar keys generate --global my-key --network testnet
stellar keys address my-keyFund your testnet account:
- macOS (Terminal):
stellar keys fund my-key --network testnet- Windows (PowerShell):
stellar keys fund my-key --network testnetFund XLM to your Freighter Testnet wallet (macOS + Windows):
- Open Freighter and switch network to Testnet.
- Copy your wallet public address (starts with
G...). - Open Friendbot and fund your address:
- Paste your
G...address and submit. - Wait a few seconds, then refresh Freighter to see test XLM.
If Friendbot UI is unavailable, use this CLI fallback:
- macOS (Terminal):
curl "https://friendbot.stellar.org?addr=<YOUR_FREIGHTER_TESTNET_ADDRESS>"- Windows (PowerShell):
Invoke-WebRequest "https://friendbot.stellar.org?addr=<YOUR_FREIGHTER_TESTNET_ADDRESS>"Build your contract:
- macOS (Terminal):
cargo build --target wasm32-unknown-unknown --release
ls target/wasm32-unknown-unknown/release/*.wasm- Windows (PowerShell):
cargo build --target wasm32-unknown-unknown --release
Get-ChildItem target\wasm32-unknown-unknown\release\*.wasmIf you do not see a .wasm file, confirm your contract crate name and retry the build command.
Deploy to testnet:
- macOS (Terminal):
stellar contract deploy \
--wasm target/wasm32-unknown-unknown/release/soroban_community_treasury.wasm \
--source my-key \
--network testnet- Windows (PowerShell):
stellar contract deploy `
--wasm target/wasm32-unknown-unknown/release/soroban_community_treasury.wasm `
--source my-key `
--network testnetCopy the Contract ID from the output (starts with C...).
Verify on Stellar Expert:
https://stellar.expert/explorer/testnet/contract/<YOUR_CONTRACT_ID>
Submit the following on your Rise In program page:
| Field | What to Submit |
|---|---|
| GitHub Repository | Public repo link with your contract source code |
| Contract ID | Your deployed testnet contract address |
| Stellar Expert Link | https://stellar.expert/explorer/testnet/contract/<CONTRACT_ID> |
| Short Description | 2-3 sentences on what your contract does |
Submit on the Rise In program page your facilitator shares for your campus stop, or browse programs at risein.com/programs.
Use this Git workflow during the bootcamp, including .gitignore setup.
Submit using your own GitHub repository (not this bootcamp/facilitator repository).
- macOS (Terminal):
git clone <facilitator-provided-repo-link>
cd <contract-folder>- Windows (PowerShell):
git clone <facilitator-provided-repo-link>
Set-Location <contract-folder>Create a new empty repository in your GitHub account first, then update origin to your own repo URL:
- macOS (Terminal):
git remote -v
git remote set-url origin <your-github-repo-url>
git remote -v- Windows (PowerShell):
git remote -v
git remote set-url origin <your-github-repo-url>
git remote -vMake sure origin points to your GitHub username/repo before pushing.
Create .gitignore to avoid committing build artifacts and secrets.
Recommended .gitignore content:
/target/
Cargo.lock
.DS_Store
.env
*.log- macOS (Terminal):
touch .gitignore
nano .gitignore- Windows (PowerShell):
New-Item -Path .gitignore -ItemType File -Force
notepad .gitignoreTrack .gitignore in Git:
git add .gitignore
git commit -m "Add gitignore for Soroban project"git checkout -b <your-name>-contract-submissionor
git checkout -b <your-name>-contract-submissiongit add .
git commit -m "Complete assigned Soroban contract"or
git add .
git commit -m "Complete assigned Soroban contract"git push -u origin <your-name>-contract-submissionor
git push -u origin <your-name>-contract-submissiongit status
git log --oneline -n 5
git branch -vvFor EC Contract Certificate:
contract/
βββ src/
βββ lib.rs
βββ test.rs
For Prize Pool Joiner Submission:
<project-root>/
βββ contract/
βββ frontend/
βββ backend/ (optional)
βββ scripts/
β βββ build-contract.sh
β βββ build-contract.ps1
β βββ deploy-testnet.sh
β βββ deploy-testnet.ps1
βββ codes/
β βββ contract-snippets/
β βββ frontend-snippets/
β βββ backend-snippets/
βββ learning/
β βββ hello-world/
β β βββ src/
β β βββ lib.rs
β β βββ test.rs
β βββ rust-syntax/
β β βββ src/
β β βββ lib.rs
β β βββ test.rs
β βββ variables-and-types/
β β βββ src/
β β βββ lib.rs
β β βββ test.rs
β βββ conditionals-and-loops/
β β βββ src/
β β βββ lib.rs
β β βββ test.rs
β βββ functions-and-errors/
β β βββ src/
β β βββ lib.rs
β β βββ test.rs
β βββ state-storage/
β β βββ src/
β β βββ lib.rs
β β βββ test.rs
β βββ events/
β β βββ src/
β β βββ lib.rs
β β βββ test.rs
β βββ auth-and-admin/
β β βββ src/
β β βββ lib.rs
β β βββ test.rs
β βββ maps-and-keys/
β β βββ src/
β β βββ lib.rs
β β βββ test.rs
β βββ token-ledger-basics/
β β βββ src/
β β βββ lib.rs
β β βββ test.rs
β βββ enums-and-matches/
β β βββ src/
β β βββ lib.rs
β β βββ test.rs
β βββ structs-and-methods/
β β βββ src/
β β βββ lib.rs
β β βββ test.rs
β βββ storage-ttl/
β β βββ src/
β β βββ lib.rs
β β βββ test.rs
β βββ scripts/
β βββ run-tests.sh
β βββ run-tests.ps1
βββ soroban-examples/
βββ hello-soroban/
β βββ Cargo.toml
β βββ src/
β βββ lib.rs
β βββ test.rs
βββ counter-storage/
β βββ Cargo.toml
β βββ src/
β βββ lib.rs
β βββ test.rs
βββ auth-check/
β βββ Cargo.toml
β βββ src/
β βββ lib.rs
β βββ test.rs
βββ events-demo/
β βββ Cargo.toml
β βββ src/
β βββ lib.rs
β βββ test.rs
βββ simple-voting/
β βββ Cargo.toml
β βββ src/
β βββ lib.rs
β βββ test.rs
βββ scripts/
βββ run-tests.sh
βββ run-tests.ps1
Each module under learning/ and soroban-examples/ should include its own Cargo.toml, src/lib.rs, and src/test.rs.
| Requirement | Status |
|---|---|
| β Attend the bootcamp session | Required |
| β Complete the assigned smart contract | Required |
β
Pass cargo test with 3+ tests |
Required |
| β Deploy contract to Stellar testnet | Required |
| β Submit on Rise In (repo + contract ID) | Required |
Certificates are typically issued within 3-5 business days after review.
| Resource | Link |
|---|---|
| Rise In Programs | risein.com/programs |
| Stellar Docs | developers.stellar.org |
| Soroban SDK | docs.rs/soroban-sdk |
| Stellar CLI Docs | developers.stellar.org/docs/tools/stellar-cli |
| Freighter Wallet | freighter.app |
| Stellar Expert (Testnet) | stellar.expert/explorer/testnet |
| Stellar Lab | lab.stellar.org |
The Stellar UniTour is a multi-campus roadshow: the same Stellar Smart Contract Bootcamp format travels to universities across the Philippines so more students can build and deploy on testnet with guided support. It is run in partnership with Rise In.
Questions? Ask your facilitator during the session or reach out via the Rise In platform.