VerbaChain is a next-generation blockchain application built on the Celo network that revolutionizes how users interact with cryptocurrency through natural language. Send crypto, schedule transfers, stake tokens, and manage your portfolio using simple, conversational commands.
Transform everyday language into blockchain transactions:
- "Send 10 CELO to Alice tomorrow at 3pm" - Automatically parses and schedules the transfer
- "Swap 50 cUSD for CELO" - Instant token swaps with minimal friction
- "Stake 100 CELO for rewards" - Easy staking with natural commands
- Instant Transfers: Send CELO, cUSD, cEUR, and custom tokens
- Scheduled Transfers: Set up future payments with date and time
- Recurring Payments: Automate regular transactions
- Contact Management: Save and send to contacts by name
- Multi-Token Support: Handle various Celo ecosystem tokens
- Decentralized Exchange Integration: Swap tokens using Uniswap V3 on Celo
- Real-time Price Quotes: Get accurate exchange rates
- Slippage Protection: Secure trades with configurable slippage
- Natural Language Swaps: "Swap X for Y" - it just works
- Native CELO Staking: Earn rewards by staking CELO tokens
- Smart Contract Integration: Secure, audited staking contracts
- Flexible Unstaking: Withdraw your stakes anytime
- Rewards Tracking: Monitor your earnings in real-time
- APY Display: View current staking rates
- Portfolio Overview: Track all your assets in one place
- Transaction History: Detailed logs of all activities
- Pending Transactions: Monitor scheduled transfers
- Staking Statistics: View staking performance and rewards
- Real-time Balance Updates: Stay informed with live data
- Transaction Alerts: Get notified on successful transfers
- Staking Updates: Notifications for staking rewards
- Scheduled Transfer Reminders: Never miss a payment
- Error Alerts: Immediate notification of any issues
- Bot Notifications: Receive updates directly on Telegram
- Secure Setup: Easy bot token configuration
- Custom Chat IDs: Personal notification channels
- Real-time Updates: Instant transaction confirmations
VerbaChain/
βββ apps/
β βββ web/ # Next.js frontend application
β β βββ src/
β β β βββ app/ # App router pages
β β β β βββ dashboard/ # Main dashboard
β β β β βββ nlte/ # Natural language interface
β β β β βββ staking/ # Staking interface
β β β β βββ history/ # Transaction history
β β β β βββ scheduled/ # Scheduled transfers
β β β β βββ contacts/ # Contact management
β β β β βββ telegram/ # Telegram settings
β β β β βββ api/ # API routes
β β β βββ components/ # React components
β β β βββ lib/ # Utilities and helpers
β β β βββ types/ # TypeScript definitions
β β β βββ utils/ # Blockchain utilities
β β βββ public/ # Static assets
β β
β βββ contracts/ # Hardhat smart contracts
β βββ contracts/ # Solidity contracts
β β βββ CeloStaking.sol
β β βββ CeloRewards.sol
β βββ scripts/ # Deployment scripts
β βββ test/ # Contract tests
β βββ ignition/ # Hardhat Ignition modules
β
βββ Documentation/ # Project documentation
βββ README.md # This file
βββ NLTE_README.md # NLTE detailed docs
βββ STAKING_DEPLOYMENT.md # Staking guide
βββ NETWORK_SETUP.md # Network configuration
- Node.js: v18.0.0 or higher
- pnpm: v8.0.0 or higher (recommended) or npm
- MetaMask: Browser extension installed
- Celo Wallet: Some testnet CELO tokens for testing
-
Clone the repository
git clone https://github.com/yourusername/VerbaChain.git cd VerbaChain -
Install dependencies
pnpm install
-
Set up environment variables
Create a
.env.localfile inapps/web/:# Network Configuration NEXT_PUBLIC_NETWORK=sepolia # Contract Addresses (Sepolia Testnet) NEXT_PUBLIC_STAKING_CONTRACT=0x... NEXT_PUBLIC_REWARDS_CONTRACT=0x... # Telegram (Optional) NEXT_PUBLIC_TELEGRAM_BOT_TOKEN=your_bot_token NEXT_PUBLIC_TELEGRAM_CHAT_ID=your_chat_id
-
Start the development server
pnpm dev
-
Open your browser
Navigate to http://localhost:3000
- Visit Celo Faucet
- Connect your MetaMask wallet
- Request testnet CELO and cUSD tokens
- Wait for the transaction to confirm
- Click "Connect Wallet" in the navigation bar
- Select MetaMask from the wallet options
- Approve the connection request
- Ensure you're on the Celo Sepolia testnet
- Navigate to the NLTE page
- Type your command in plain English:
"Send 5 CELO to 0x123...""Transfer 10 cUSD to John""Send 2 CELO tomorrow at 2pm"
- Review the parsed transaction details
- Click "Execute" to confirm
- Approve the transaction in MetaMask
- Go to the Dashboard
- Use the swap interface or type:
"Swap 10 cUSD for CELO"
- Review the exchange rate
- Confirm the swap
- Approve in MetaMask
- Navigate to the Staking page
- Enter the amount to stake or use natural language:
"Stake 50 CELO"
- Review the estimated rewards
- Click "Stake"
- Approve the transaction
- View your active stakes and rewards
- Go to Contacts page
- Click "Add Contact"
- Enter name and wallet address
- Save the contact
- Use contact names in transfers:
"Send 5 CELO to Alice"
- Visit Scheduled Transfers
- Create a new scheduled transfer
- Set date and time
- The system will automatically execute at the specified time
- View pending and completed schedules
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: shadcn/ui
- State Management: React Hooks & Context
- Web3 Integration: Viem, Wagmi
- Blockchain: Celo (Ethereum-compatible)
- Smart Contracts: Solidity
- Development: Hardhat
- Testing: Hardhat Test Suite
- Deployment: Hardhat Ignition
- Monorepo: Turborepo
- Package Manager: pnpm
- Type Checking: TypeScript
- Linting: ESLint
- Formatting: Prettier
- NLP Parser: Custom natural language processor
- Telegram Bot: Node.js Telegram Bot API
- Uniswap V3: DEX integration for swaps
- Celo SDK: Native Celo integrations
The main staking contract that handles:
- Staking CELO tokens
- Tracking user stakes
- Calculating rewards
- Unstaking functionality
- Emergency withdrawals
Key Functions:
function stake() external payable
function unstake(uint256 amount) external
function claimRewards() external
function getStakedBalance(address user) external view returns (uint256)
function getRewards(address user) external view returns (uint256)Manages reward distribution and calculations:
- Time-based reward accrual
- APY calculations
- Reward pool management
- Distribution logic
Deployed Contracts (Sepolia Testnet):
- Staking:
0x...(See STAKING_DEPLOYMENT.md) - Rewards:
0x...(See STAKING_DEPLOYMENT.md)
# Development
pnpm dev # Start all development servers
pnpm build # Build all packages
pnpm lint # Lint all packages
pnpm type-check # Type check all packages
pnpm clean # Clean all build artifacts
# Smart Contracts
pnpm contracts:compile # Compile contracts
pnpm contracts:test # Run contract tests
pnpm contracts:deploy # Deploy to local network
pnpm contracts:deploy:sepolia # Deploy to Sepolia testnet
pnpm contracts:deploy:celo # Deploy to Celo mainnet
# Web App (from apps/web/)
cd apps/web
pnpm dev # Start Next.js dev server
pnpm build # Build for production
pnpm start # Start production server
pnpm lint # Lint web appcd apps/contracts
pnpm testcd apps/web
pnpm test- Configure network in hardhat.config.ts
- Set up your deployer wallet private key
- Run deployment:
pnpm contracts:deploy:sepolia
- Update contract addresses in .env.local
- Verify contracts on Sepolia Etherscan (optional)
| Network | Chain ID | RPC URL | Block Explorer |
|---|---|---|---|
| Sepolia (Testnet) | 11155111 | https://sepolia.infura.io/v3/YOUR_KEY | https://sepolia.etherscan.io |
| Celo Mainnet | 42220 | https://forno.celo.org | https://celoscan.io |
Sepolia Testnet:
- Network Name: Sepolia
- RPC URL: https://sepolia.infura.io/v3/YOUR_KEY
- Chain ID: 11155111
- Currency Symbol: ETH
- Block Explorer: https://sepolia.etherscan.io
- Never commit private keys or sensitive data
- Use environment variables for configuration
- Always test on testnet before mainnet
- Audit smart contracts before deployment
- Use hardware wallets for production funds
- Implement proper access controls
- Validate all user inputs
- Contracts use OpenZeppelin libraries
- ReentrancyGuard on all state-changing functions
- Proper access control with Ownable
- Events for all critical operations
- Comprehensive test coverage
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow TypeScript/Solidity best practices
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
- Use ESLint and Prettier configurations
- NLTE Documentation - Detailed NLTE implementation guide
- Staking Guide - Complete staking system documentation
- Network Setup - Network configuration and setup
- API Documentation - API endpoints and usage
- Smart Contract Docs - Contract specifications
MetaMask not connecting?
- Ensure you're on the correct network (Alfajores)
- Try refreshing the page
- Clear browser cache and reconnect
Transaction failing?
- Check you have enough CELO for gas
- Verify token balances
- Check if you approved token spending
Staking not working?
- Verify contract addresses in .env.local
- Ensure contracts are deployed on the network
- Check you have sufficient CELO balance
NLTE parsing errors?
- Use clear, simple language
- Include necessary details (amount, recipient, token)
- Check example commands for format
This project is licensed under the MIT License - see the LICENSE file for details.
- Celo Foundation - For the amazing blockchain platform
- Next.js Team - For the incredible framework
- shadcn/ui - For the beautiful UI components
- OpenZeppelin - For secure smart contract libraries
- Uniswap - For DEX integration capabilities
- Website: https://verbachain.com
- Email: support@verbachain.com
- Twitter: @VerbaChain
- Discord: Join our community
- GitHub: github.com/verbachain
- β Natural Language Transaction Engine
- β Basic staking functionality
- β Token swap integration
- β Telegram notifications
- π Advanced scheduling features
- π Multi-signature wallet support
- π Mobile app development
- π Additional language support
- π DeFi protocol integrations
- π NFT support
- π Cross-chain bridges
- π Advanced analytics dashboard
- π Mainnet launch
- π Governance token
- π DAO implementation
- π Enterprise solutions
Built with β€οΈ on Celo | Making blockchain accessible through natural language
VerbaChain - Where Words Meet Blockchain