The on-chain marketplace for authenticated African art.
# Afristore
> Decentralized marketplace for African art, built on Stellar + Soroban smart contracts.
## Architecture
```
Freighter/Magic Wallet ──► Next.js Frontend ──► Soroban Contracts (Stellar)
│ │
│ ▼
│ Pinata IPFS
│ (Images + Metadata)
│
▼
Indexer (Node.js)
│
▼
PostgreSQL (events, listings, offers, auctions)
│
▼
Redis Cache + Prometheus Metrics
```
## Monorepo Structure
```
afristore/
├── contracts/
│ ├── soroban-marketplace/ # Main marketplace contract (Rust/Soroban)
│ │ ├── src/
│ │ │ ├── lib.rs # Contract entry point
│ │ │ ├── types.rs # Listing, Auction, Offer, Status, Error types
│ │ │ ├── storage.rs # Persistent/temporary storage key helpers
│ │ │ ├── contract.rs # Core marketplace logic
│ │ │ ├── events.rs # Event structs and publish helpers
│ │ │ └── test.rs # Comprehensive tests
│ │ └── docs/
│ │ ├── PAUSE_MECHANISM.md
│ │ └── event_schema.md
│ ├── launchpad/ # Collection factory contract
│ ├── collection_nft_erc721/ # Standard ERC-721 NFT contract
│ ├── collection_nft_erc1155/ # Standard ERC-1155 NFT contract
│ ├── lazy_mint_erc721/ # Gas-efficient lazy-mint ERC-721
│ ├── lazy_mint_erc1155/ # Gas-efficient lazy-mint ERC-1155
│ └── CONTRIBUTING.md
├── frontend/
│ └── afristore-app/ # Next.js 14 App Router frontend
│ ├── src/
│ │ ├── app/ # App Router pages (listings, auctions, offers, launchpad, profile, admin, settings)
│ │ ├── components/ # Reusable UI components
│ │ ├── lib/ # Stellar SDK, IPFS, contract helpers, indexer client
│ │ ├── hooks/ # React hooks (wallet, marketplace, auctions, offers, admin)
│ │ ├── context/ # WalletContext (unified Freighter + Magic)
│ │ ├── providers/ # PostHog analytics provider
│ │ └── config/ # …