OpenFund is a cutting-edge decentralized platform designed to revolutionize funding for the open-source ecosystem. By connecting open-source maintainers with donors, OpenFund ensures sustainable growth and development in the community. Donors can discover and support impactful projects, while maintainers receive the financial backing they need to innovate.
- Seamless Project Funding: Effortlessly make donations using cryptocurrency.
- GitHub Integration: Link directly to GitHub repositories and manage issues.
- Secure Smart Contracts: Transparent fund management via blockchain.
- Multi-Wallet Support: Leverage the Okto SDK for smooth wallet management.
- Project Discovery: Explore and search for open-source initiatives.
- Contributor Dashboard: Manage projects and track contributions with ease.
- Donor Dashboard: Discover new projects and monitor donation impact.
- AI Agent Integration: Automate smart contract actions with natural language commands.
- Framework: React with TypeScript
- Build Tool: Vite
- Styling: TailwindCSS
- UI Components: Radix UI
- Routing: React Router
- Wallet Integration: Okto SDK
- Runtime: Node.js with Express
- Language: TypeScript
- Database: MongoDB with Mongoose
- Authentication: JWT and GitHub OAuth (via Passport.js)
- AI Integration: BAML Boundary ML for intent-based smart contract execution
- GitHub Tools: Octokit and Probot for automation
- Language: Solidity
- Local Development: Hardhat
- Scaling: zkSync
- Blockchain Support: Polygon network
- Tooling: Thirdweb for smart contract creation, deployment, and testing
- Libraries: Ethers.js and Chai.js for contract testing
The project is organized into modular components:
web-client/
: React-based frontend applicationweb-server/
: Node.js backend servercontract/
: Smart contract implementationscontract-testing/
: Smart contract test suitegithub-server/
: GitHub integration servicebaml_client/
: BAML client for AI integration for independently interacting with blockchain infrastructureapp_name/
: GitHub bot implementation
- Node.js (v18 or higher)
- MongoDB
- Git
- Okto Wallet
- MetaMask or compatible Web3 wallet
-
Clone the repository:
git clone https://github.com/yourusername/openfund.git cd openfund
-
Set up the web client:
cd web-client npm install cp .env.example .env # Configure your environment variables npm run dev
-
Set up the web server:
cd ../web-server npm install cp .env.example .env # Configure your environment variables npm run start
-
Configure environment variables:
- MongoDB connection string
- GitHub OAuth credentials
- JWT secret
- Okto SDK keys
- Smart contract addresses
Each component can be developed and tested independently:
cd web-client
npm run dev
cd web-server
npm run start
cd contract
npm install
npx thirdweb build
npx thirdweb deploy
We welcome contributions to OpenFund! Here’s how you can get started:
-
Fork the repository
-
Create a feature branch:
git checkout -b feature/amazing-feature
-
Commit your changes:
git commit -m 'Add some amazing feature'
-
Push to the branch:
git push origin feature/amazing-feature
-
Open a Pull Request
For any queries, suggestions, or issues, please open an issue on GitHub. We encourage you to report:
- Bugs
- Feature requests
- General questions
- Support requests
Join us in empowering the open-source community through sustainable funding with OpenFund!