A decentralized VR asset marketplace built on the Internet Computer blockchain, featuring React frontend and Rust backend canisters.
- Decentralized Asset Trading: Buy and sell VR assets with smart contracts
- Immersive VR Viewing: WebXR-powered 3D asset preview using A-Frame
- Blockchain Authentication: Internet Identity and Plug Wallet integration
- Asset Management: Upload, manage, and showcase your VR creations
- Smart Contract Logic: All transactions handled by Rust canisters on ICP
- Authentication: Internet Identity & Plug Wallet support
- VR Viewer: A-Frame integration for immersive 3D experiences
- Responsive Design: Mobile-first approach with TailwindCSS
- State Management: React Context for authentication and data
- Auth Canister: User registration and identity management
- Asset Canister: Asset storage, metadata, and ownership tracking
- Marketplace Canister: Listing management, transactions, and marketplace logic
git clone <repository-url>
cd vr-marketplacecd frontend
npm install
cd ..# Start the local Internet Computer replica
dfx start --background# Deploy all canisters to local network
dfx deployAfter deployment, update the canister IDs in the frontend:
- Copy the canister IDs from the deployment output
- Create a
.envfile in thefrontenddirectory:
REACT_APP_AUTH_CANISTER_ID=your_auth_canister_id
REACT_APP_ASSET_CANISTER_ID=your_asset_canister_id
REACT_APP_MARKETPLACE_CANISTER_ID=your_marketplace_canister_id
REACT_APP_INTERNET_IDENTITY_CANISTER_ID=rdmx6-jaaaa-aaaah-qdrpq-caicd frontend
npm startThe application will be available at http://localhost:3000
# Build all canisters
dfx build
# Deploy specific canister
dfx deploy auth_canister
dfx deploy asset_canister
dfx deploy marketplace_canister
# Check canister status
dfx canister status --all
# View canister logs
dfx canister logs auth_canistercd frontend
# Start development server
npm start
# Build for production
npm run build
# Run linting
npm run lintvr-marketplace/
โโโ backend/
โ โโโ auth_canister/ # User authentication & profiles
โ โ โโโ src/lib.rs
โ โ โโโ Cargo.toml
โ โ โโโ auth_canister.did
โ โโโ asset_canister/ # Asset storage & management
โ โ โโโ src/lib.rs
โ โ โโโ Cargo.toml
โ โ โโโ asset_canister.did
โ โโโ marketplace_canister/ # Marketplace logic & transactions
โ โโโ src/lib.rs
โ โโโ Cargo.toml
โ โโโ marketplace_canister.did
โโโ frontend/
โ โโโ src/
โ โ โโโ components/ # Reusable React components
โ โ โโโ pages/ # Page components
โ โ โโโ services/ # API & authentication services
โ โ โโโ utils/ # Helper functions
โ โโโ public/
โ โโโ package.json
โ โโโ tailwind.config.js
โโโ dfx.json # DFX configuration
โโโ Cargo.toml # Workspace configuration
โโโ README.md
- Connect Wallet: Use Internet Identity or Plug Wallet to authenticate
- Upload Assets: Navigate to Upload page and submit your VR models (.glb, .gltf, .obj, .fbx)
- Set Pricing: Define your asset price in ICP tokens
- List for Sale: Make your assets available in the marketplace
- Browse Marketplace: Explore available VR assets by category
- Preview in VR: Use the immersive VR viewer to experience assets
- Purchase Assets: Buy assets using ICP tokens
- Manage Collection: View and manage your owned assets
- GLB (recommended): Binary glTF format
- GLTF: Text-based glTF format
- OBJ: Wavefront OBJ format
- FBX: Autodesk FBX format
- Decentralized Authentication: No central authentication server
- Smart Contract Ownership: Asset ownership verified on-chain
- Secure Transactions: All payments handled by Internet Computer
- Principal-based Identity: Each user identified by their IC principal
# Add cycles to your wallet (requires real ICP)
dfx wallet --network ic balance
# Deploy to mainnet
dfx deploy --network icUpdate the frontend environment variables to use mainnet canister IDs and set production URLs.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the GitHub repository
- Join the Internet Computer Developer Community
- Check the Internet Computer Documentation
- Internet Computer for the blockchain infrastructure
- A-Frame for VR/AR experiences
- React for the frontend framework
- TailwindCSS for styling
- Rust for backend canister development
Built with โค๏ธ on the Internet Computer