A modern, multi-chain decentralized app (DApp) to send ETH and tokens, track balances, and view transaction history. Designed with a polished UI, animated visuals, custom gas controls, and seamless wallet integration.
- 🔗 Wallet Connection – Connect MetaMask and other wallets using RainbowKit & wagmi.
- 💰 Send ETH / Tokens – Choose gas presets or set your own Gwei manually.
- ⚡ Custom Gas Limit – Set a custom gas limit for advanced control over transaction execution.
- 👛 Live Balances – View your ETH and token holdings across major EVM chains.
- 📜 Transaction History – With filtering, search, and CSV export.
- 🔔 Modern Notifications – Real-time feedback via Sonner.
- 🌌 Animated Background – Interactive particles when no wallet is connected.
- 📱 Responsive UI – Built with TailwindCSS for mobile and desktop support.
- 🧪 Test Coverage – Core components tested with Jest + React Testing Library.
- Gas is the unit that measures the computational effort required to execute operations on the Ethereum network.
- Gas Price is the amount you are willing to pay per unit of gas, usually denominated in Gwei. Higher gas price = faster confirmation.
- Gas Limit is the maximum amount of gas you allow for a transaction. For simple ETH transfers, the minimum is 21,000, but interacting with contracts or sending tokens requires more.
- By default, the app estimates the required gas limit for your transaction.
- You can manually increase the gas limit if you want to ensure your transaction does not run out of gas (useful for complex contract interactions).
- If you set the gas limit below the estimated minimum, the app will prevent the transaction and show an error.
- For simple ETH transfers, only 21,000 gas is used, even if you set a higher limit (the unused gas is refunded).
Tip: For most users, the estimated gas limit is sufficient. Customizing is for advanced users or special contract interactions.
- Ethereum Mainnet
- Polygon
- Arbitrum
- Optimism
- Base
- Sepolia (testnet)
- Binance Smart Chain (BSC)
- BSC Testnet
⚠️ Sepolia is for testing only. ETH there is not real. To perform actual transactions, switch to Ethereum Mainnet or another production network and ensure your wallet has real funds.
- Go to https://metamask.io
- Install the browser extension
- Create or import a wallet
- Securely back up your secret recovery phrase — never share it
- Open MetaMask
- Click the network dropdown (e.g., “Ethereum Mainnet”)
- Click "Show/hide test networks"
- Enable testnets and select "Sepolia Test Network"
To test the app on the Sepolia testnet, you’ll need some test ETH (not real funds):
-
Copy your wallet address from MetaMask
-
Visit the Google Cloud faucet to claim free Sepolia ETH:
-
Paste your wallet address in the faucet form
-
Follow the instructions to receive test ETH in your wallet
-
Wait a few minutes, then check your wallet balance in MetaMask
⚠️ Sepolia ETH is not real ETH. It is only for testing and development. To send real funds, use Ethereum Mainnet or another mainnet and ensure your wallet is funded.
- No cost for testing: Sepolia ETH is free and available in large quantities, making it perfect for testing and development.
- Realistic environment: The Sepolia testnet is a mirror of the Ethereum Mainnet, allowing you to test real-world scenarios before moving to mainnet.
- React – Framework
- RainbowKit + wagmi – Wallet support & chain switching
- ethers.js – Blockchain interaction
- Alchemy SDK – Balances, tokens, transactions
- axios – REST API calls
- tsParticles – Animated visual background
- TailwindCSS – Utility-first UI
- Sonner – Toast notifications
- Jest + React Testing Library – Testing
git clone https://github.com/casaislabs/send-flow.git
cd send-flow
yarn install
yarn startCreate a .env file in the root folder and fill in the required API keys:
REACT_APP_ETHERSCAN_API_KEY=your_key
REACT_APP_BSCSCAN_API_KEY=your_key
REACT_APP_POLYGONSCAN_API_KEY=your_key
REACT_APP_ARBISCAN_API_KEY=your_key
REACT_APP_OPTIMISM_API_KEY=your_key
REACT_APP_SEPOLIA_API_KEY=your_key
REACT_APP_BSCSCAN_TESTNET_API_KEY=your_key
REACT_APP_ALCHEMY_API_KEY=your_key
REACT_APP_WALLETCONNECT_PROJECT_ID=your_project_idYou can get these keys from:
- Etherscan
- Alchemy
- WalletConnect
- PolygonScan
- Arbiscan
- Optimism
- Sepolia Faucet
- BSCScan (Mainnet & Testnet)
The project includes tests for key components. To run them, simply execute:
yarn testTests are located in src/App.test.js.
The app features a modern and user-friendly design built using TailwindCSS. Animations and real-time notifications enhance the user experience, while the app is fully responsive for both desktop and mobile devices.
src/
├── components/ # Core UI components (e.g., Wallet connecti, Token Balances, Send ETH)
├── context/ # Global state management (e.g., Wallet, Balances)
├── config/ # Wallet connection configuration (e.g., wagmi, RainbowKit)
├── tests/ # Jest tests
public/ # Static files, including index.html
.env # Environment variables (don't commit to GitHub)- Modern UX – Animations, instant feedback, and attractive design
- Multi-chain – Full support for multiple EVM networks
- Transaction History Export – Download transactions as CSV
- Custom Gas – Advanced control for power users
- Modular & Tested Code – Easy to maintain and extend
- Sonner Notifications – Clear, professional user experience
- Visual Effects – Interactive animated particles
We welcome contributions! If you'd like to contribute, follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature-name) - Commit your changes (
git commit -am 'Add new feature') - Push to the branch (
git push origin feature-name) - Open a pull request
Please ensure your code follows the existing style and passes the tests.
This project is licensed under the MIT License – see the LICENSE file for details.