Send crypto to multiple recipients in ONE transaction.
VoidTx lets you pay up to 100 people in a single transaction instead of sending 100 separate transactions. If any payment fails, it continues with the rest and refunds you automatically.
Use Cases: Payroll, airdrops, prize distributions, DAO payments
FlashPay.-demo.mp4
- 🛡️ Fault Tolerant - Failed payments don't stop the batch
- 💰 Auto Refunds - Failed amounts returned automatically
- 📊 Production Ready - 20+ tests passing, REST API included
- 🔗 Multi-chain Support - Monad Testnet, Sepolia, Ethereum, Polygon, Arbitrum, etc.
- 🆕 Gasless Transactions - ERC-4337 Account Abstraction for zero gas fees
voidtx/
├── contracts/
│ ├── VoidTx.sol # Main batch payment contract
│ └── test/
│ └── RejectPayment.sol # Test helper contract
├── scripts/
│ ├── deploy.js # Deployment script for Monad Testnet
│ └── testTransaction.js # Test batch payments with sample data
├── backend/
│ ├── server.js # Express API server
│ ├── aaRoutes.js # ERC-4337 Account Abstraction endpoints
│ ├── accountAbstractionService.js # Gasless transaction service
│ └── eventReader.js # Event monitoring utility
├── frontend-utils/
│ ├── VoidTxApp.jsx # Main React application
│ ├── BatchPaymentForm.jsx # Payment form component
│ ├── WalletConnector.jsx # Wallet connection utilities
│ ├── csvParser.js # CSV upload processor
│ ├── templates.js # Payment templates
│ └── dashboard.js # Analytics dashboard (removed)
├── deployments/ # Deployment artifacts (auto-generated)
├── hardhat.config.js # Hardhat configuration
├── package.json # Dependencies
└── .env.example # Environment variables template
# Install dependencies
npm install
# Setup environment
cp .env.example .env
# Edit .env with your private key and RPC URL
# Deploy to Monad Testnet
npm run deploy-monad
# Test with sample transactions
npm run test-transaction-monad
# Start API server
npm run backend
# Start frontend (in a new terminal)
npm run devFeatures:
- Validates inputs (max 100 recipients, min 0.0001 ETH per payment)
- Continues processing even if individual payments fail
- Auto-refunds failed amounts
- Emits detailed events for tracking
GET /health- Health checkGET /api/stats- Contract statisticsGET /api/events/:type- Query payment eventsPOST /api/estimate- Estimate batch costGET /api/transaction/:hash- Transaction statusPOST /api/qr- Generate QR code
GET /api/aa/health- AA service health checkPOST /api/aa/account/create- Create Smart AccountGET /api/aa/account/:userId- Get Smart Account addressGET /api/aa/account/:userId/balance- Check balancePOST /api/aa/transaction/gasless-batch- Execute gasless paymentPOST /api/aa/demo/gasless-payment- Demo full flow
Example:
curl http://localhost:3001/api/statsnpm test # Run all testsTests cover:
- Batch payments (5-10 recipients)
- Error handling
- Event emission
- Gas estimation
- Edge cases
Create .env file:
# Monad Testnet Configuration
MONAD_RPC_URL=https://testnet.monadvision.com/rpc
PRIVATE_KEY=your_wallet_private_key
# ERC-4337 Account Abstraction (for gasless transactions)
PIMLICO_API_KEY=your_pimlico_api_key
BUNDLER_OWNER_PRIVATE_KEY=private_key_for_bundler
# Backend Server Configuration
PORT=3001
CONTRACT_ADDRESS=deployed_contract_address
NETWORK=monadTestnetGet free Monad Testnet setup:
- RPC URL: https://testnet.monad.xyz/rpc
- Test ETH: Request from Monad Discord
For Gasless Transactions:
- Get Pimlico API key: https://dashboard.pimlico.io/
- Generate a new private key for BUNDLER_OWNER_PRIVATE_KEY
npm install # Install dependencies
npm run compile # Compile contract
npm run deploy-monad # Deploy to Monad Testnet
npm run deploy # Deploy to Sepolia
npm test # Run tests
npm run backend # Start API server
npm run dev # Start frontend
npm run check-balance # Check wallet balance
npm run test-transaction # Send test batchVoidTx supports gasless transactions using Account Abstraction:
- Users create Smart Accounts (ERC-4337 compatible)
- Transactions are sponsored by a Paymaster (Pimlico)
- No gas fees for end users
- Fully decentralized and secure
Benefits:
- Zero gas fees for users
- Improved UX for onboarding
- Enterprise-grade security
- Compatible with all EVM chains
Import recipient lists from CSV files for easy bulk payments.
Predefined templates for common scenarios:
- Split Equally
- Fixed Amount
| Network | Chain ID | RPC URL | Explorer |
|---|---|---|---|
| Monad Testnet | 10143 | https://testnet.monad.xyz/rpc | https://testnet.monadvision.com |
| Sepolia | 11155111 | https://rpc.sepolia.org | https://sepolia.etherscan.io |
MIT