Skip to content

CryptoCast Desktop - Multi-chain Batch Airdrop & Reward Distribution Platform with Support for Ethereum, Solana, and 10+ Blockchains. Secure wallet management, real-time campaign tracking, and scalable token distribution for DeFi projects, NFT communities, and Web3 platforms.

Notifications You must be signed in to change notification settings

viaweb3/cryptocast-desktop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

93 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CryptoCast Desktop - Professional Batch Airdrop Tool

πŸš€ Multi-chain Cryptocurrency Batch Reward Distribution Platform - Secure, Efficient, and User-Friendly Desktop Application

🌍 Languages / 语言 / Idiomas / Langues / Sprachen / языки / Ψ§Ω„Ω„ΨΊΨ© / μ–Έμ–΄ / 言θͺž / TiαΊΏng Việt / TΓΌrkΓ§e: πŸ‡ΊπŸ‡Έ English | πŸ‡¨πŸ‡³ δΈ­ζ–‡ | πŸ‡ͺπŸ‡Έ EspaΓ±ol | πŸ‡«πŸ‡· FranΓ§ais | πŸ‡©πŸ‡ͺ Deutsch | πŸ‡΅πŸ‡Ή PortuguΓͺs | πŸ‡·πŸ‡Ί Русский | πŸ‡ΈπŸ‡¦ Ψ§Ω„ΨΉΨ±Ψ¨ΩŠΨ© | πŸ‡°πŸ‡· ν•œκ΅­μ–΄ | πŸ‡―πŸ‡΅ ζ—₯本θͺž | πŸ‡»πŸ‡³ TiαΊΏng Việt | πŸ‡ΉπŸ‡· TΓΌrkΓ§e

License Platform CI/CD


πŸ“– Project Overview

CryptoCast Desktop is a professional cross-platform desktop application built on Electron, designed for marketing campaigns, airdrop distribution, and community rewards, supporting batch token distribution on EVM-compatible chains and Solana.

✨ Core Features

πŸ”— Multi-Chain Support

  • EVM Chains: Ethereum, Polygon, BSC, Arbitrum, Optimism, Base, Avalanche, etc.
  • Solana: Mainnet and devnet support
  • Smart Contracts: Pre-deployed batch transfer contracts, optimized for gas fees

πŸ“¦ Batch Operations

  • Large-Scale Processing: Import addresses and amounts from CSV files
  • Batch Transfers: ERC-20 and Solana (SPL) Token batch sending
  • Real-Time Progress: Visualized distribution progress and status monitoring

πŸ”’ Security and Privacy

  • Local-First: All sensitive data (such as private keys) are encrypted and stored locally, never passing through any server
  • Isolated Wallets: Each campaign uses an independent derived wallet, isolating fund risks
  • Fully Offline: Core functions can operate in offline mode (transaction signing, etc.)

πŸ’‘ User Experience

  • Cross-Platform: Supports Windows and macOS (Intel & Apple Silicon)
  • Intuitive Interface: Modern design with simple and clear interaction
  • Cost Estimation: Real-time gas fee and total cost estimation
  • Transaction History: Complete transaction history and status tracking
  • Structured Logging: Winston logging system for easy debugging and issue tracking

πŸ“š Documentation


πŸ’Ύ Download and Installation

Platform Download Link Description
Windows (x64) πŸ“₯ Download Installer Supports Windows 10 and above
macOS (Intel) πŸ“₯ Download DMG x64 architecture Mac
macOS (Apple Silicon) πŸ“₯ Download DMG M1/M2/M3 chip Mac

πŸ‘‰ Visit the Releases page to view all versions

πŸ“‹ Installation Instructions

Windows:

  1. Download CryptoCast Setup *.exe from the Releases page
  2. Run the installer and follow the prompts to complete installation

macOS:

  1. Download the corresponding architecture .dmg file from the Releases page
    • Intel Mac: Download *-x64.dmg or *-mac.dmg
    • Apple Silicon Mac: Download *-arm64.dmg
  2. Double-click to open the DMG file and drag CryptoCast to the Applications folder
  3. On first run, you need to allow it in System Preferences (System Preferences β†’ Security & Privacy)

Note: The current version is an unsigned build, intended for development and testing purposes only.

Resolving Unsigned Application Launch Issues

As the application is not code-signed, the operating system may block it from running. Please follow these steps according to your operating system:

Windows:

  1. If you encounter the "Windows protected your PC" prompt when running the installer, click "More info" in the popup.
  2. Then click "Run anyway".

macOS:

Method 1: Shortcut (Recommended)

  1. Find the CryptoCast application in Finder.
  2. Right-click (or hold Control and click) on the application icon.
  3. Select "Open" from the menu.
  4. In the warning dialog, click "Open".

Method 2: System Settings

  1. If you encounter the "Cannot open..." warning when double-clicking, click "Cancel".
  2. Open "System Settings" > "Privacy & Security".
  3. Find the blocking prompt at the bottom of the page and click "Open Anyway".

❓ If prompted "App is damaged": This is a common blocking mechanism by macOS for unsigned applications. There are two solutions:

Method 1: Local Installation without root permissions (Recommended)

  1. Drag CryptoCast.app to the user home directory Applications folder (~/Applications)
  2. Open Terminal and execute the following command (no sudo required):
    xattr -cr ~/Applications/CryptoCast.app
  3. Now you can launch the application normally from the ~/Applications folder
  4. It's recommended to create a Dock icon for the application: drag the application to the Dock bar

Method 2: System-level Installation (requires administrator privileges)

  1. Drag the application to the /Applications folder
  2. Open Terminal and execute the following command:
    sudo xattr -cr /Applications/CryptoCast.app
  3. Enter the administrator password to open normally

πŸ› οΈ Development Environment Setup

Prerequisites

  • Node.js 24+
  • npm (or yarn/pnpm)
  • Git

1. Clone the Project

git clone https://github.com/viaweb3/cryptocast-desktop.git
cd cryptocast-desktop

2. Install Dependencies

npm install

3. Run in Development Mode

npm run dev

4. Build the Application

# Build application for current platform
npm run build

# Build for specific platforms
npm run build:win              # Windows x64
npm run build:mac-intel        # macOS Intel (x64)
npm run build:mac-arm          # macOS Apple Silicon (arm64)

Build artifacts are located in the release/ directory.

5. Testing Tool Scripts

# Generate EVM test airdrop list (333 addresses)
node scripts/generate-evm-airdrop.js

# Generate Solana test airdrop list (333 addresses)
node scripts/generate-solana-airdrop.js

πŸ“ Project Structure

cryptocast-desktop/
β”œβ”€β”€ πŸ“‚ src/
β”‚   β”œβ”€β”€ πŸ“‚ main/                     # Electron main process (Node.js backend)
β”‚   β”‚   β”œβ”€β”€ πŸ“„ index.ts              # Application entry point
β”‚   β”‚   β”œβ”€β”€ πŸ“„ preload.ts            # Preload script (IPC security bridge)
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ database/             # SQLite database
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ db-adapter.ts     # Database adapter
β”‚   β”‚   β”‚   └── πŸ“„ sqlite-schema.ts  # Database structure and migrations
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ ipc/                  # IPC communication handlers
β”‚   β”‚   β”‚   └── πŸ“„ handlers.ts       # Implementation of all IPC channels
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ services/             # Core business logic
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ CampaignService.ts   # Campaign management
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ WalletService.ts     # Wallet management
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ BlockchainService.ts # Generic blockchain service
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ SolanaService.ts     # Solana-specific service
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ GasService.ts        # Gas estimation service
β”‚   β”‚   β”‚   └── πŸ“„ ...                # Other services
β”‚   β”‚   └── πŸ“‚ utils/                # Utility functions
β”‚   β”‚
β”‚   └── πŸ“‚ renderer/                 # Electron renderer process (React frontend)
β”‚       └── πŸ“‚ src/
β”‚           β”œβ”€β”€ πŸ“„ App.tsx           # Application root component
β”‚           β”œβ”€β”€ πŸ“„ main.tsx          # React entry point
β”‚           β”œβ”€β”€ πŸ“‚ components/       # UI components
β”‚           β”œβ”€β”€ πŸ“‚ pages/            # Page-level components
β”‚           β”œβ”€β”€ πŸ“‚ hooks/            # Custom React Hooks
β”‚           β”œβ”€β”€ πŸ“‚ contexts/         # React Context
β”‚           └── πŸ“‚ utils/            # Frontend utility functions
β”‚
β”œβ”€β”€ πŸ“‚ contracts/                    # Smart contracts (Solidity)
β”‚   β”œβ”€β”€ πŸ“‚ src/
β”‚   β”‚   └── πŸ“„ BatchAirdropContract.sol # EVM batch airdrop contract
β”‚   └── πŸ“„ foundry.toml              # Foundry configuration
β”‚
β”œβ”€β”€ πŸ“„ package.json                  # Project configuration and dependencies
β”œβ”€β”€ πŸ“„ vite.config.ts                # Vite configuration
β”œβ”€β”€ πŸ“„ electron-builder.json         # Electron Builder packaging configuration
β”œβ”€β”€ πŸ“„ jest.config.mjs               # Jest testing configuration

πŸ› οΈ Technology Stack

🎨 Frontend

  • React: UI framework
  • TypeScript: Type system
  • Vite: Build tool
  • TailwindCSS: CSS framework
  • DaisyUI: TailwindCSS component library
  • React Router: Routing

βš™οΈ Backend & Application Core

  • Node.js 24+: Runtime environment
  • Electron 39.2.2: Cross-platform desktop application framework
  • SQLite: Local database
  • TypeScript 5.7.3: Type system
  • Winston 3.18.3: Structured logging system

πŸ”— Blockchain

  • ethers.js: EVM chain interaction library
  • @solana/web3.js: Solana chain interaction library
  • Foundry: Solidity development and testing framework

πŸ§ͺ Testing

  • Jest: Unit/integration testing
  • @testing-library/react: React component testing

πŸ—οΈ Architecture Design

Core Services

The application backend logic is split into multiple services located in src/main/services/, including:

  • CampaignService: Responsible for creating, managing, and executing airdrop campaigns
  • WalletManagementService / WalletService: Manages user wallets, including creation, import, and secure storage
  • ChainManagementService / ChainService: Manages and connects to different blockchain networks (EVM & Solana)
  • ContractService: Responsible for deploying and interacting with smart contracts
  • GasService / PriceService: Estimates transaction fees and retrieves token prices
  • SolanaService: Handles all Solana-specific logic
  • CampaignEstimator / CampaignExecutor: Responsible for campaign cost estimation and execution, respectively

Data Storage

The application uses SQLite as the local database, with table structures defined in src/main/database/sqlite-schema.ts.

Main Data Tables

-- Campaigns Table
CREATE TABLE campaigns (
  id TEXT PRIMARY KEY,
  name TEXT NOT NULL,
  chain_type TEXT NOT NULL CHECK (chain_type IN ('evm', 'solana')),
  chain_id INTEGER,
  token_address TEXT NOT NULL,
  status TEXT NOT NULL,
  total_recipients INTEGER NOT NULL,
  wallet_address TEXT,
  contract_address TEXT,
  ...
);

-- Recipients Table
CREATE TABLE recipients (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  campaign_id TEXT NOT NULL,
  address TEXT NOT NULL,
  amount TEXT NOT NULL,
  status TEXT NOT NULL CHECK (status IN ('PENDING', 'PROCESSING', 'SENT', 'FAILED')),
  tx_hash TEXT,
  FOREIGN KEY (campaign_id) REFERENCES campaigns (id) ON DELETE CASCADE
);

-- Transactions Table
CREATE TABLE transactions (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  campaign_id TEXT NOT NULL,
  tx_hash TEXT NOT NULL UNIQUE,
  tx_type TEXT NOT NULL,
  status TEXT NOT NULL,
  ...
  FOREIGN KEY (campaign_id) REFERENCES campaigns (id) ON DELETE CASCADE
);

-- Blockchain Networks Table
CREATE TABLE chains (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  type TEXT NOT NULL CHECK (type IN ('evm', 'solana')),
  name TEXT NOT NULL UNIQUE,
  rpc_url TEXT NOT NULL,
  ...
);

Data Storage Location

  • Windows: %APPDATA%\\cryptocast\\
  • macOS: ~/Library/Application Support/cryptocast/
  • Linux: ~/.config/cryptocast/

πŸ§ͺ Testing

Run Tests

# Run all unit and integration tests
npm test

# Generate coverage report
npm run test:coverage

🀝 Contributing

We welcome all forms of contribution! Please read the CONTRIBUTING.md file for details.


πŸ“„ License

This project is licensed under the MIT License.

About

CryptoCast Desktop - Multi-chain Batch Airdrop & Reward Distribution Platform with Support for Ethereum, Solana, and 10+ Blockchains. Secure wallet management, real-time campaign tracking, and scalable token distribution for DeFi projects, NFT communities, and Web3 platforms.

Topics

Resources

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •