---
# System prepended metadata

title: Understanding Ethereum Accounts and Contracts

---

Understanding Ethereum Accounts and Contracts

i will be taking you on how i deployed my first smart contract, but firstly we would talk about the two distinct types of accounts ethereum operates on, we have Externally Owned Accounts (EOAs) and Contract Accounts.

EOAs are the type of account that you create in the metamask wallet which makes them more common they also have a private key, anyone with the private key has control over access to funds or contracts.They interact with the blockchain but don't contain smart contract.

while Contract accounts are accounts that have smart contract code they dont have private key hence no control over access to funds but they can react to transactions and they are controlled by the logic defined in the smart contract itself.

We will be working with contract accounts and writing our first smart contract: a faucet. To achieve this, we will use Solidity, the programming language for Ethereum smart contracts.
so instead of using VS code or any other IDEs we would be using Remix IDE for this project, as it is one of the best tools for writing, testing, and deploying smart contracts.

![0543D231-BC38-4BD9-933D-36802CC990F9_4_5005_c](https://hackmd.io/_uploads/ryMluPIDJe.jpg)

The smart contract above is a simple implementation of a faucet contract in Solidity. it purpose is to recieve Ether deposits into the contract, as seen on line 6 above by the receive() function, which is marked as external and payable.

compilation successful!![DA8297EE-64BD-4E04-B916-14B19DFDC7FA_4_5005_c](https://hackmd.io/_uploads/rkJ4KPIDyg.jpg)




Now that we have compiled our smart contract we can now deploy.![3E1DCCC8-3A1F-49E2-BD05-B1DC904621B2](https://hackmd.io/_uploads/HkgUtD8Pke.jpg)


we are deploying on the Sepolia testnet using MetaMask as our provider(This testnet approach saves resources of course we don't need real Ethereum for testing) with a gas limit set to 3000000.

![23151701-1D42-47F7-B110-C2E9B219EF43_4_5005_c](https://hackmd.io/_uploads/HJfqYPIv1e.jpg)




we are ready to interact with our faucet contract and see it in action.