Rust/Soroban smart contracts for the Stellar Raise decentralized crowdfunding platform.
The frontend previously in this repo (
apps/frontend) has been split out. This repo is now contracts-only.
Stellar Raise is a decentralized crowdfunding application built on the Stellar network using Soroban smart contracts. This repository contains:
apps/contracts— Rust/Soroban smart contracts (crowdfund, factory, soroban_sdk_minor)scripts/— Deployment and utility shell scriptsdocs/— Project documentation.env.example— Environment variable template for deployment scripts
| Tool | Version |
|---|---|
| Rust | stable (via rustup) |
| wasm32 target | rustup target add wasm32-unknown-unknown |
| Soroban CLI / Stellar CLI | latest (cargo install stellar-cli) |
cargo build --workspace --target wasm32-unknown-unknown --releaseThe contract WASM lands in target/wasm32-unknown-unknown/release/.
cargo test --workspacecargo clippy --workspace -- -D warningsDeployment is handled via shell scripts in scripts/. Copy .env.example to .env and fill in your values first:
cp .env.example .envDeploy the crowdfund contract:
./scripts/deploy.sh <creator_address> <token_address> <goal> <deadline_unix> <min_contribution>Interact with a deployed contract:
./scripts/interact.shVerify your environment is configured correctly:
./scripts/verify_env.shSee scripts/deployment_shell_script.md for detailed deployment documentation.
stellar-raise-contracts/
├── apps/
│ └── contracts/ # Rust/Soroban contracts (@stellar-raise/contracts)
│ ├── crowdfund/ # Main crowdfunding contract
│ ├── factory/ # Factory contract
│ └── soroban_sdk_minor/
├── scripts/ # Deployment and utility scripts
├── docs/ # Project documentation
└── Cargo.toml # Rust workspace root
Copy .env.example to .env at the repo root and fill in:
| Variable | Description |
|---|---|
STELLAR_RPC_URL |
Soroban RPC endpoint (testnet or mainnet) |
CONTRACT_ID |
Deployed crowdfund contract address |
See CONTRIBUTING.md for commit conventions, branch strategy, and PR guidelines.
Commit messages follow Conventional Commits and are enforced by commitlint on push.