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
cargo build --target wasm32-unknown-unknown --release
# Build specific contract
cd minting
cargo build --target wasm32-unknown-unknown --release# Run all tests
cargo test
# Run tests for specific contract
cd 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
contracts/
├── Cargo.toml # Workspace configuration
├── shared/ # Shared types and utilities
├── minting/ # Minting contract
├── burning/ # Burning contract
├── oracle/ # Oracle contract
├── reserve_tracker/ # Reserve tracker contract
└── scripts/ # Deployment scripts
- 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.