Ethereum Phunks Market is an open source platform for trading ethscriptions on the Ethereum blockchain. The project consists of three main components: a marketplace frontend, smart contracts, and an indexer service.
IMPORTANT: The smart contracts in this repository are experimental and have not been audited. They come with absolutely no security guarantees. The contracts and other parts of the codebase are not guaranteed to be secure and should be considered experimental in nature. The code can change at any time without prior notice. Users interact with this codebase entirely at their own risk.
The repository is organized into three main directories:
An Angular-based frontend application that provides an interface for:
-
Marketplace Features:
- Buy, sell & trade curated ethscription collections
- Advanced filtering and search capabilities
- Real-time price tracking and market data
-
Social Features:
- In-app chat system
- Comments and discussions
- User activity tracking
- Leaderboard system
- Notifications system
-
Technical Features:
- IPFS integration for content storage
- Progressive Web App (PWA) support
- GraphQL integration
- State management system
- Custom pipes and directives
Smart contracts written in Solidity that power the Ethereum Phunks ecosystem:
- Core marketplace functionality
- Bridge contracts for cross-chain operations
- Utility contracts for points and rewards
- Governance and administration features
Built with:
- Hardhat development environment
- OpenZeppelin contracts
- Comprehensive test suite
- Deployment scripts
A NestJS-based backend service that:
- Indexes and processes ethscriptions following the Ethscriptions Protocol
- Tracks marketplace events and activities
- Manages real-time data synchronization
- Provides API endpoints for the marketplace
Key features:
- Protocol-compliant ethscription processing
- Real-time block processing
- Queue-based event handling
- Bridge operation support
- WebSocket notifications
Contains the database schema and configuration for the project's PostgreSQL database:
-
Database Schema:
- Tables for ethscriptions, listings, bids, auctions, and collections
- Separate tables for mainnet and sepolia testnet
- User management and authentication tables
- Event tracking and activity logs
- Leaderboard and points system
-
Stored Procedures:
- Functions for fetching ethscriptions with listings and bids
- Pagination and filtering utilities
- Volume and sales calculations
- User activity tracking
- Address verification and holder checks
-
Configuration:
- Database configuration settings
- Migration scripts
- Data seeding utilities
- Node.js (v20 or higher)
- Yarn package manager
- Redis (for indexer)
- Supabase (for data storage)
- IPFS (for content storage)
-
Clone the repository
-
Install dependencies for each component:
# Marketplace cd marketplace yarn install # Contracts cd ../contracts yarn install # Indexer cd ../indexer yarn install
-
Configure environment variables:
- Copy
.env.exampleto.envin each directory - Update with your specific configuration
- Copy
-
Start development servers:
# Marketplace cd marketplace yarn start:mainnet # or yarn start:sepolia # Indexer cd ../indexer yarn start:dev
Each component has its own deployment process:
cd marketplace
yarn build
# Deploy to your hosting servicecd contracts
yarn hardhat deploy --network <network>cd indexer
yarn build
yarn engage- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the CC0-1.0 license - see the LICENSE file for details.