https://github.com/0xsamgreen/base-hackathon
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.8%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: 0xsamgreen
- License: mit
- Language: Python
- Default Branch: main
- Size: 15.1 MB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Base Hackathon Project
WARNING: This is a hackathon project and should not be used in production. Private keys are stored in the database for demonstration purposes only.
A Telegram bot-based KYC system with wallet generation for Base blockchain, built during a hackathon. Users can complete KYC, receive a Base wallet, take educational quizzes, and earn ETH rewards.
Quick Start
```bash
Setup
git clone git@github.com:0xsamgreen/base-hackathon.git cd base-hackathon cp .env.example .env # Add your Telegram bot token
Install dependencies
cd backend python -m venv venv source venv/bin/activate pip install -r requirements.txt npm install
cd ../admin python -m venv venv source venv/bin/activate pip install -r requirements.txt cd ..
Initialize database
python init_db.py
Start services (in separate terminals)
./dev.sh start # Backend API ./dev.sh bot # Telegram bot ./dev.sh admin # Admin interface ```
Features
KYC System
- Simple user information collection via Telegram
- Full name
- Birthday
- Phone number
- Email address
- Admin review and approval
- Automatic Base wallet generation
Quiz System
- Educational content about solar panel cleaning
- Multiple choice questions
- Automatic ETH rewards for passing
- NFT badges for quiz completion
- Tracking of quiz completions and rewards
Wallet Features
- Base Sepolia testnet integration
- View wallet address and ETH balance
- Send/receive ETH
- Backend wallet for reward distribution
- NFT minting capability
Dependencies
- Python 3.x
- Node.js
- SQLite3
System Architecture
```
Telegram Bot Backend API Admin CLI
SQLite
Database
```
User Flow
- Start bot (@basehackathon)
- Complete KYC process
- Admin approves & wallet generated
- Access features:
- View wallet address and balance
- Take quiz to earn ETH and NFT badges
- Send ETH to other users
Development Commands
./dev.sh start- Start all services./dev.sh backend- Run backend API./dev.sh bot- Run Telegram bot./dev.sh admin- Launch admin CLI
Project Structure
.
admin/ # Admin CLI tool
backend/
app/
api/ # REST API endpoints
bot/ # Telegram bot
models/ # Database models
services/ # Business logic
requirements.txt
db/ # Database migrations
Current Status
Working Features: - Streamlined KYC system with admin approval - Base wallet generation and balance tracking - Educational quiz with ETH rewards and NFT badges - Quiz completion tracking with cascade deletion - Direct ETH transfers with improved user selection - Admin management tools with enhanced user info display
Coming Soon: - AI training opportunity - Additional quiz topics
Security Notice
This project was built for a hackathon and includes several security compromises that make it unsuitable for production use:
- Private keys are stored in the SQLite database
- No encryption for sensitive user data
- Basic KYC implementation
- Simple authentication model
For a production system, consider: - Using a proper key management system - Implementing encryption for sensitive data - Following security best practices for wallet management - Using a production-grade database
Owner
- Name: Sam Green
- Login: 0xsamgreen
- Kind: user
- Location: San Francisco Bay Area
- Company: Semiotic Labs
- Website: https://www.semiotic.ai
- Twitter: 0xsamgreen
- Repositories: 9
- Profile: https://github.com/0xsamgreen
GitHub Events
Total
- Watch event: 1
- Public event: 1
- Push event: 6
- Create event: 2
Last Year
- Watch event: 1
- Public event: 1
- Push event: 6
- Create event: 2
Dependencies
- @rollup/plugin-alias ^5.1.0 development
- @rollup/plugin-terser ^0.4.4 development
- rollup ^3.24.1 development
- @paulmillr/jsbt 0.3.1 development
- fast-check 3.0.0 development
- micro-bmark 0.4.0 development
- micro-should 0.5.1 development
- prettier 3.3.2 development
- typescript 5.5.2 development
- @noble/hashes 1.7.1
- @paulmillr/jsbt 0.3.1 development
- fast-check 3.0.0 development
- micro-bmark 0.4.0 development
- micro-should 0.5.1 development
- prettier 3.3.2 development
- typescript 5.5.2 development
- @noble/hashes 1.7.1 development
- @paulmillr/jsbt 0.3.1 development
- fast-check 3.0.0 development
- micro-bmark 0.4.0 development
- micro-should 0.5.1 development
- prettier 3.3.2 development
- typescript 5.5.2 development
- @paulmillr/jsbt 0.3.1 development
- micro-should 0.5.1 development
- prettier 3.3.2 development
- typescript 5.5.2 development
- @noble/curves ~1.8.1
- @noble/hashes ~1.7.1
- @scure/base ~1.2.2
- @paulmillr/jsbt 0.3.1 development
- micro-bmark 0.4.0 development
- micro-should 0.5.1 development
- prettier 3.3.2 development
- typescript 5.5.2 development
- @noble/hashes ~1.7.1
- @scure/base ~1.2.4
- undici-types ~6.19.2
- @types/jest ^29.5.14 development
- @types/node ^20.12.11 development
- @typescript-eslint/eslint-plugin ^8.22.0 development
- @typescript-eslint/parser ^8.22.0 development
- eslint ^8.57.0 development
- eslint-config-prettier ^9.1.0 development
- eslint-plugin-import ^2.31.0 development
- eslint-plugin-jsdoc ^48.2.5 development
- eslint-plugin-prettier ^5.1.3 development
- jest ^29.7.0 development
- prettier ^3.2.5 development
- ts-jest ^29.2.5 development
- turbo ^2.3.3 development
- typedoc ^0.27.2 development
- typescript ^5.4.5 development
- @types/jest ^29.5.14 development
- @types/secp256k1 ^4.0.6 development
- http-server ^14.1.1 development
- jest ^29.7.0 development
- mock-fs ^5.2.0 development
- ts-jest ^29.2.5 development
- tsd ^0.31.2 development
- typescript ^5.7.2 development
- @coinbase/coinbase-sdk ^0.17.0
- md5 ^2.3.0
- reflect-metadata ^0.2.2
- twitter-api-v2 ^1.18.2
- viem ^2.22.16
- zod ^3.23.8
- nodemon ^3.1.0 development
- ts-node ^10.9.2 development
- @coinbase/agentkit ^0.1.0
- @coinbase/agentkit-langchain ^0.1.0
- @langchain/core ^0.3.19
- @langchain/langgraph ^0.2.21
- @langchain/openai ^0.3.14
- dotenv ^16.4.5
- zod ^3.22.4
- nodemon ^3.1.0 development
- ts-node ^10.9.2 development
- @coinbase/agentkit ^0.1.0
- @coinbase/agentkit-langchain ^0.1.0
- @langchain/core 0.3.30
- @langchain/langgraph ^0.2.39
- @langchain/openai ^0.3.16
- dotenv ^16.4.5
- zod ^3.22.4
- nodemon ^3.1.0 development
- ts-node ^10.9.2 development
- @coinbase/agentkit ^0.1.0
- @coinbase/agentkit-langchain ^0.1.0
- @langchain/core ^0.3.19
- @langchain/langgraph ^0.2.21
- @langchain/openai ^0.3.14
- dotenv ^16.4.5
- zod ^3.22.4
- @coinbase/agentkit ^0.1.0
- @coinbase/coinbase-sdk ^0.15.0
- @langchain/core ^0.3.19
- zod ^3.22.4
- @rollup/plugin-commonjs ^24.0.0 development
- @rollup/plugin-terser ^0.4.0 development
- assume ^2.2.0 development
- c8 ^7.3.1 development
- mocha ^10.0.0 development
- pre-commit ^1.2.0 development
- rimraf ^4.1.2 development
- rollup ^3.4.0 development
- sauce-browsers ^3.0.0 development
- sauce-test ^1.3.3 development