Soroban (Stellar) smart contracts for the ACBU (African Currency Basket Unit) stablecoin platform.
- Minting Contract - Handles USDC → ACBU conversions
- Burning Contract - Handles ACBU → Fiat redemptions
- Oracle Contract - Aggregates exchange rates from multiple validators
- Reserve Tracker Contract - Tracks and verifies reserve balances
- Rust 1.70 or higher
- Soroban CLI (
cargo install --locked soroban-cli) - Stellar account with XLM for deployment fees
# Build all contracts in the workspace
cargo build --target wasm32-unknown-unknown --release
# Build specific contract
cd acbu_minting
cargo build --target wasm32-unknown-unknown --release# Run all tests in the workspace
cargo test
# Run tests for specific contract
cd acbu_minting
cargo testexport STELLAR_SECRET_KEY="your-secret-key"
./scripts/deploy_testnet.shexport STELLAR_SECRET_KEY="your-secret-key"
./scripts/deploy_mainnet.shWarning: Only deploy to mainnet after:
- Testing on testnet
- Security audit completion
- Backup of secret keys
After deployment, contract addresses are saved to .soroban/deployment_{network}.json
.
├── acbu_minting/ # Minting contract
├── acbu_burning/ # Burning contract
├── acbu_oracle/ # Oracle contract
├── acbu_reserve_tracker/ # Reserve tracker contract
├── acbu_savings_vault/ # Savings vault contract
├── acbu_lending_pool/ # Lending pool contract
├── acbu_escrow/ # Escrow contract
├── acbu_multisig/ # Multisig shared contract
├── shared/ # Shared types and utilities
├── scripts/ # Deployment scripts
├── docs/ # Documentation
└── tests/ # Integration tests
- Create contract directory:
mkdir new_contract - Add to workspace
Cargo.tomlmembers - Create
Cargo.tomlandsrc/lib.rs - Update deployment scripts
- All admin functions require multisig (3 of 5)
- Rate limits on transactions
- Circuit breakers for anomalies
- Time locks for critical operations
See individual contract README files for detailed documentation.