WhiteLotus Contracts are engineered on Stellar's Soroban platform using Rust. These smart contracts manage the end-to-end lifecycle of a grant—from application approval through milestone validation and final payouts.
Designed with clarity, security, and future extensibility in mind, these contracts serve as the foundation of the WhiteLotus ecosystem.
- Grant Rounds: Initialize rounds with comprehensive configurations (title, metadata URI, budget, and administrator).
- Application Management: Secure submission of applications via metadata URIs, complete with administrative approval/rejection workflows.
- Milestone Tracking: Define fixed milestone tranches for approved applications.
- Evidence Verification: Grantees can seamlessly submit evidence URIs for their milestones.
- Native Payouts: Secure release of payouts using Soroban's standard Token interface following milestone approval.
- Events: Clean and structured contract events designed for easy off-chain indexing and UI integration.
- Rust installed.
- Soroban CLI installed.
Install dependencies and build the WebAssembly target:
cargo build --target wasm32-unknown-unknown --releaseExecute the Soroban test suite to verify the logic:
cargo testSolidity reference contracts live in contracts/ with Forge tests in test/foundry/. These provide fast local feedback for core grant lifecycle behavior:
forge install foundry-rs/forge-std --no-git
forge test -vv- Initialization: Admin deploys the contract and configures the round.
- Funding: The round is funded via standard Stellar asset transfers to the contract address.
- Application: Applicants submit proposals using off-chain metadata URIs.
- Approval: Admin reviews and approves the application.
- Milestone Creation: Admin establishes milestones and their respective payout amounts.
- Evidence Submission: Grantee submits proof of work for a milestone.
- Verification: Admin reviews and approves the submitted evidence.
- Payout: Admin triggers the release of the milestone payout to the grantee.
We strongly believe in open-source and welcome contributions from the community!
- Fork the repository.
- Create your feature branch (
git checkout -b feature/amazing-feature). - Commit your changes (
git commit -m 'Add some amazing feature'). - Push to the branch (
git push origin feature/amazing-feature). - Open a Pull Request.
Please review our CONTRIBUTING.md for detailed guidelines.
This repository participates in GrantFox for open-source collaboration. Contributors can:
- Browse and claim issues via the GrantFox Contributor App
- Track PR reviews and campaign participation.
Maintainers manage campaigns and review contributions via the GrantFox Maintainer App.
For security policies and vulnerability reporting, please refer to SECURITY.md.
This project is licensed under the MIT License - see the LICENSE file for details.