A blockchain-based crowdfunding platform built on the Stellar Network for transparent, borderless, and secure fundraising.
StellarAid enables project creators to raise funds in XLM or any Stellar-based asset (USDC, NGNT, custom tokens), while donors can contribute with full on-chain transparency.
This project uses a Rust Cargo workspace with the following structure:
stellarAid-contract/
βββ Cargo.toml # Workspace configuration
βββ crates/
β βββ contracts/
β β βββ core/ # Core Soroban smart contract
β β βββ Cargo.toml
β β βββ src/
β β βββ lib.rs # Contract implementation
β βββ tools/ # CLI utilities and deployment tools
β βββ Cargo.toml
β βββ src/
β βββ main.rs # CLI entry point
βββ .gitignore
βββ README.md
stellaraid-core: Main Soroban smart contract implementing the crowdfunding logicstellaraid-tools: CLI utilities for contract deployment, configuration, and management
-
Clone the repository
git clone https://github.com/YOUR_USERNAME/stellaraid-contract.git cd stellaraid-contract -
Install Rust toolchain (automatically configured by
rust-toolchain.toml)# Install Rust if not already installed curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # The project will automatically use the correct Rust version and targets rustup show
-
Install Soroban CLI
# Method 1: Install via cargo (recommended for development) cargo install soroban-cli # Method 2: Install via npm (alternative) npm install -g soroban-cli # Verify installation soroban --version
-
Build the project
# Using Make (recommended) make build # Or using cargo directly cargo build -p stellaraid-core --target wasm32-unknown-unknown
- Rust stable toolchain (automatically managed by
rust-toolchain.toml) - wasm32-unknown-unknown target (auto-installed by toolchain)
- Soroban CLI for contract deployment and testing
This project uses rust-toolchain.toml to ensure consistent development environments:
[toolchain]
channel = "stable"
targets = ["wasm32-unknown-unknown"]
components = ["rustfmt", "clippy"]This ensures:
- Consistent Rust version across all contributors
- Required targets are automatically installed
- Essential components (rustfmt, clippy) are included
The project includes a Makefile for common development tasks:
# Build WASM contract
make build
# Run all tests
make test
# Format code
make fmt
# Run linter
make lint
# Clean build artifacts
make clean
# Show all available commands
make help# Build the core contract for WASM
cargo build -p stellaraid-core --target wasm32-unknown-unknown --release
# Build the CLI tools
cargo build -p stellaraid-tools
# Build entire workspace
cargo build --workspace# Run contract tests
cargo test -p stellaraid-core
# Run all tests
cargo test --workspace# Check configuration
cargo run -p stellaraid-tools -- config check
# Deploy contract (placeholder)
cargo run -p stellaraid-tools -- deploy --network testnet- Discover global fundraising campaigns
- Donate in XLM or Stellar assets
- Wallet integration (Freighter, Albedo, Lobstr)
- On-chain transparency: verify all transactions
- Create social impact projects
- Accept multi-asset contributions
- Real-time donation tracking
- Withdraw funds directly on-chain
- Campaign approval workflow
- User & KYC management
- Analytics dashboard
StellarAid Blockchain Layer is built with:
- Stellar Testnet / Mainnet support
- Donation verification
- On-chain withdrawal system
- Assetβagnostic design
Click the βForkβ button in the topβright of the GitHub repo and clone your fork:
git clone https://github.com/YOUR_USERNAME/stellaraid-contract.git
cd stellaraid-contractgit checkout -b feature/add-donation-flowUse conventional commits:
feat: add wallet connection modal
fix: resolve donation API error
docs: update project README
refactor: clean up project creation formPush your branch:
git push origin feature/add-donation-flowOpen a Pull Request from your fork back to the main branch.
MIT License β free to use, modify, and distribute.
This workspace includes a deterministic, strongly-typed Soroban network configuration system.
Add a network (example CLI stub):
soroban config network add <name> \
--rpc-url <url> \
--network-passphrase "<passphrase>"List networks (profiles in soroban.toml):
soroban config network lsSelect a network (this sets the active profile name; loader reads SOROBAN_NETWORK):
soroban config network use <name>Environment variable override behavior
SOROBAN_NETWORKselects a profile (e.g.testnet,mainnet,sandbox).SOROBAN_RPC_URLandSOROBAN_NETWORK_PASSPHRASEoverride profile values when set.
Verify the resolved network with the included CLI tool:
cargo run -p stellaraid-tools -- networkSee .env.example for a safe example of environment variables you can copy to .env.