- Install Rust via rustup.rs
- Add WASM target:
rustup target add wasm32-unknown-unknown - Install Soroban CLI:
cargo install --locked soroban-cli - Run
make testto confirm your setup works
- Find or open an issue
- Branch from
main:git checkout -b feat/your-feature - Write tests for any new contract logic
- Ensure
make lintandmake fmtpass before opening a PR - Open a PR with a clear description linking the issue
- All public contract functions need rustdoc comments
- Tests must cover happy path, edge cases, and error conditions
- Never use
unwrap()in production contract code