https://github.com/0xsamgreen/base-hackathon

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
Last synced: 6 months ago · JSON representation

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
Created about 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme License

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

  1. Start bot (@basehackathon)
  2. Complete KYC process
  3. Admin approves & wallet generated
  4. 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

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

backend/node_modules/@adraffy/ens-normalize/package.json npm
  • @rollup/plugin-alias ^5.1.0 development
  • @rollup/plugin-terser ^0.4.4 development
  • rollup ^3.24.1 development
backend/node_modules/@noble/curves/esm/package.json npm
backend/node_modules/@noble/curves/package.json npm
  • @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
backend/node_modules/@noble/curves/src/package.json npm
backend/node_modules/@noble/hashes/esm/package.json npm
backend/node_modules/@noble/hashes/package.json npm
  • @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
backend/node_modules/@scure/base/lib/esm/package.json npm
backend/node_modules/@scure/base/package.json npm
  • @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
backend/node_modules/@scure/bip32/lib/esm/package.json npm
backend/node_modules/@scure/bip32/package.json npm
  • @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
backend/node_modules/@scure/bip39/esm/package.json npm
backend/node_modules/@scure/bip39/package.json npm
  • @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
backend/node_modules/@types/node/package.json npm
  • undici-types ~6.19.2
backend/node_modules/abitype/abis/package.json npm
backend/node_modules/abitype/package.json npm
backend/node_modules/abitype/zod/package.json npm
backend/node_modules/agentkit/package.json npm
  • @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
backend/node_modules/agentkit/typescript/agentkit/package.json npm
  • @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
backend/node_modules/agentkit/typescript/examples/langchain-cdp-chatbot/package.json npm
  • 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
backend/node_modules/agentkit/typescript/examples/langchain-farcaster-chatbot/package.json npm
  • 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
backend/node_modules/agentkit/typescript/examples/langchain-twitter-chatbot/package.json npm
  • 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
backend/node_modules/agentkit/typescript/framework-extensions/langchain/package.json npm
  • @coinbase/agentkit ^0.1.0
  • @coinbase/coinbase-sdk ^0.15.0
  • @langchain/core ^0.3.19
  • zod ^3.22.4
backend/node_modules/eventemitter3/package.json npm
  • @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
backend/node_modules/isows/_cjs/package.json npm
backend/node_modules/isows/_esm/package.json npm
backend/node_modules/isows/package.json npm
backend/node_modules/ox/Abi/package.json npm
backend/node_modules/ox/AbiConstructor/package.json npm
backend/node_modules/ox/AbiError/package.json npm
backend/node_modules/ox/AbiEvent/package.json npm
backend/node_modules/ox/AbiFunction/package.json npm
backend/node_modules/ox/AbiItem/package.json npm
backend/node_modules/ox/AbiParameters/package.json npm
backend/node_modules/ox/AccessList/package.json npm
backend/node_modules/ox/AccountProof/package.json npm
backend/node_modules/ox/Address/package.json npm
backend/node_modules/ox/AesGcm/package.json npm
backend/node_modules/ox/Authorization/package.json npm
backend/node_modules/ox/Base58/package.json npm
backend/node_modules/ox/Base64/package.json npm
backend/node_modules/ox/Blobs/package.json npm
backend/node_modules/ox/Block/package.json npm
backend/node_modules/ox/BlockOverrides/package.json npm
backend/node_modules/ox/Bloom/package.json npm
backend/node_modules/ox/Bls/package.json npm
backend/node_modules/ox/BlsPoint/package.json npm
backend/node_modules/ox/Bytes/package.json npm
backend/node_modules/ox/Caches/package.json npm
backend/node_modules/ox/ContractAddress/package.json npm
backend/node_modules/ox/Ens/package.json npm
backend/node_modules/ox/Errors/package.json npm
backend/node_modules/ox/Fee/package.json npm
backend/node_modules/ox/Filter/package.json npm
backend/node_modules/ox/Hash/package.json npm
backend/node_modules/ox/HdKey/package.json npm
backend/node_modules/ox/Hex/package.json npm
backend/node_modules/ox/Json/package.json npm
backend/node_modules/ox/Kzg/package.json npm
backend/node_modules/ox/Log/package.json npm
backend/node_modules/ox/Mnemonic/package.json npm
backend/node_modules/ox/P256/package.json npm
backend/node_modules/ox/PersonalMessage/package.json npm
backend/node_modules/ox/Provider/package.json npm
backend/node_modules/ox/PublicKey/package.json npm
backend/node_modules/ox/Rlp/package.json npm
backend/node_modules/ox/RpcRequest/package.json npm
backend/node_modules/ox/RpcResponse/package.json npm
backend/node_modules/ox/RpcSchema/package.json npm
backend/node_modules/ox/RpcTransport/package.json npm
backend/node_modules/ox/Secp256k1/package.json npm
backend/node_modules/ox/Signature/package.json npm
backend/node_modules/ox/Siwe/package.json npm
backend/node_modules/ox/Solidity/package.json npm
backend/node_modules/ox/StateOverrides/package.json npm
backend/node_modules/ox/Transaction/package.json npm
backend/node_modules/ox/TransactionEnvelope/package.json npm
backend/node_modules/ox/TransactionEnvelopeEip1559/package.json npm
backend/node_modules/ox/TransactionEnvelopeEip2930/package.json npm
backend/node_modules/ox/TransactionEnvelopeEip4844/package.json npm
backend/node_modules/ox/TransactionEnvelopeEip7702/package.json npm
backend/node_modules/ox/TransactionEnvelopeLegacy/package.json npm
backend/node_modules/ox/TransactionReceipt/package.json npm
backend/node_modules/ox/TransactionRequest/package.json npm
backend/node_modules/ox/TypedData/package.json npm
backend/node_modules/ox/ValidatorData/package.json npm
backend/node_modules/ox/Value/package.json npm
backend/node_modules/ox/WebAuthnP256/package.json npm
backend/node_modules/ox/WebCryptoP256/package.json npm
backend/node_modules/ox/Withdrawal/package.json npm
backend/node_modules/ox/_cjs/package.json npm
backend/node_modules/ox/_esm/package.json npm
backend/node_modules/ox/erc4337/EntryPoint/package.json npm
backend/node_modules/ox/erc4337/RpcSchema/package.json npm
backend/node_modules/ox/erc4337/UserOperation/package.json npm
backend/node_modules/ox/erc4337/UserOperationGas/package.json npm
backend/node_modules/ox/erc4337/UserOperationReceipt/package.json npm
backend/node_modules/ox/erc4337/package.json npm
backend/node_modules/ox/erc6492/WrappedSignature/package.json npm
backend/node_modules/ox/erc6492/package.json npm
backend/node_modules/ox/index.docs/package.json npm