Welcome to aribaBank, a beginner-friendly Solidity smart contract project that demonstrates how a decentralized on-chain banking system can work transparently and securely on the blockchain.
aribaBank is a simple yet powerful example of a transparent, decentralized banking system built entirely on the blockchain.
It allows users to deposit, withdraw, and transfer ETH securely — all actions are recorded on-chain for full transparency.
This project aims to teach Solidity beginners how to handle Ether transactions, modifiers, events, and security mechanisms such as reentrancy protection.
- 💸 Deposits — Users can deposit ETH directly into the contract.
- 💰 Withdrawals — Withdraw your balance anytime securely.
- 🔁 Transfers — Instantly send ETH (within the system) to other users.
- 🧾 Track Balances — Check your balance and view others’ balances transparently.
- 🧑💼 Owner Controls — The contract owner can perform emergency withdrawals.
- 🔒 Security Features — Built-in protection against reentrancy attacks.
All transactions are stored on the blockchain, ensuring transparency and immutability.
✅ Fully decentralized ETH banking
✅ Transparent balance tracking on-chain
✅ Deposit / Withdraw / Transfer functions
✅ Owner-only emergency withdrawal
✅ Built-in nonReentrant security
✅ Beginner-friendly and easy to deploy
✅ Clean code with comments and NatSpec documentation
Network: Celo Sepolia Testnet
Explorer: View on Blockscout
0xa154E530a5E589721A46ea41F59A4e525F364D35
//paste your code-
Remix IDE (no setup needed!)
-
Or local setup with:
- Node.js & npm
- Hardhat or Foundry
- MetaMask (for deployment/testing)
-
Open Remix and paste the contract code into a new file named
aribaBank.sol. -
Compile the contract with Solidity version ^0.8.19.
-
Deploy on any testnet (like Celo Sepolia, Goerli, or Sepolia).
-
Interact using the Remix interface:
- Call
deposit()and send ETH. - View your balance with
myBalance(). - Withdraw using
withdraw(amount). - Transfer to other users via
transferTo(address, amount).
- Call
| Action | Description | Function |
|---|---|---|
| Deposit ETH | Add funds to your on-chain account | deposit() |
| Withdraw ETH | Retrieve your funds | withdraw(uint256 amount) |
| Transfer ETH | Send ETH to another user | transferTo(address to, uint256 amount) |
| View My Balance | Check your own balance | myBalance() |
| Check Any User | View others’ balances | balanceOf(address) |
This project is for educational purposes only. It’s not audited and should not be used with real funds on the mainnet. Always test thoroughly before deployment.
👩💻 Ariba — Blockchain & DevOps Enthusiast 🔗 GitHub: XXX 💬 “Building transparent systems, one block at a time.”
If you find this project helpful:
- Give it a ⭐ on GitHub
- Share your feedback
- Fork and build something even better!