The core Soroban smart contract for the Afristore Marketplace — extracted from the monorepo into its own dedicated repository.
This contract implements:
create_listing— List an NFT for sale with price and expirybuy_item— Purchase a listed NFT and distribute fundsplace_bid— Place a bid on an auction listingfinalize_auction— Settle an auction and transfer the NFT to the highest biddercancel_listing— Cancel an active listing (creator only)- Protocol fee management, pause/unpause, and TTL bump logic
# Build the contract WASM
cargo build --target wasm32-unknown-unknown --release
# Run all tests
cargo test --features testutils
# Optimize the WASM binary
stellar contract optimize --wasm target/wasm32-unknown-unknown/release/soroban_marketplace.wasm
# Deploy to testnet
stellar contract deploy --wasm target/wasm32-unknown-unknown/release/soroban_marketplace.optimized.wasm --network testnet- Rust (stable)
wasm32-unknown-unknowntarget:rustup target add wasm32-unknown-unknown- Stellar CLI:
cargo install --locked stellar-cli
This repository is being extracted from afristore/contracts/soroban-marketplace/ in the main monorepo.
Tracked in: ui-ux-issues.md — Issue 122
- Fork this repository
- Create a feature branch:
git checkout -b feat/your-feature - Make your changes and ensure all CI checks pass:
cargo fmt --check— must exit 0cargo clippy -- -D warnings— zero warningscargo test --features testutils— all tests must passcargo build --target wasm32-unknown-unknown --release— must produce a valid WASM
- Open a PR — all CI must pass before a PR is eligible for review and merge
- Rust +
soroban-sdk v25.3.0 - Stellar / Soroban smart contract platform
MIT — see LICENSE