Overview
The original article showed how a Windows user could create a simple Ethereum-based cryptocurrency project using Visual Studio Code, Git, Node.js, Truffle, the MetaCoin sample project, Web3, the Truffle development console and Ganache.
This refreshed version keeps the learning flow because MetaCoin is still useful for understanding basic token-like smart contract behavior. However, it also adds important modern notes because some tools and testnets used in older Ethereum tutorials have changed.
Install Tools
Set up VS Code, Git, Node.js and Solidity development support.
Create Project
Use the classic MetaCoin sample to learn contract structure and testing.
Deploy and Test
Run the project on a local development blockchain before trying public testnets.
Important Update for Modern Readers
The original tutorial used Truffle, Ganache, Ropsten and Rinkeby. These names are historically important, but modern Ethereum development has moved on.
| Older Tutorial Item | Status Today | Recommended Modern Direction |
|---|---|---|
| Truffle | Legacy / archived tooling | Hardhat or Foundry for most new smart contract projects |
| Ganache | Legacy / archived local blockchain | Hardhat Network, Anvil, or modern local EVM tools |
| Ropsten | Deprecated and shut down | Sepolia for smart contract and dApp testing |
| Rinkeby | Deprecated and shut down | Sepolia for app testing; Hoodi for validator/protocol testing |
| MetaCoin | Good learning sample | Use ERC-20 standards for production tokens |
On mobile, swipe the table horizontally if needed.
Windows Development Setup
A Windows Ethereum development environment normally needs a code editor, source control, Node.js, a package manager and smart contract tooling.
Visual Studio Code
A lightweight editor that works well with Solidity extensions, Git and terminal workflows.
Git
Used for source control, version history and collaboration.
Node.js and npm
Used by many JavaScript-based Ethereum tools and development frameworks.
PowerShell or Windows Terminal
Used to run project commands, install packages and compile contracts.
Option A: Install with Chocolatey
The original tutorial used Chocolatey. Run PowerShell as administrator, then install the tools:
choco install visualstudiocode -y
choco install git -y
choco install nodejs -y
Option B: Install with Windows Package Manager
Many modern Windows users may prefer winget:
winget install Microsoft.VisualStudioCode
winget install Git.Git
winget install OpenJS.NodeJS.LTS
After installing, close and reopen PowerShell or Windows Terminal, then check:
node -v
npm -v
git --version
Configuring VS Code for Ethereum Development
Create a project folder and open it in VS Code:
mkdir TruffleTest
cd TruffleTest
code .
Then install useful VS Code extensions:
- ✓Solidity extension for syntax highlighting and smart contract support.
- ✓Material Icon Theme or similar icon theme for easier project navigation.
- ✓Git integration for source control.
- ✓Optional: Ethereum, Hardhat or Foundry-related extensions if using modern frameworks.
Creating the MetaCoin Project
MetaCoin is the classic Truffle sample project. It demonstrates a simple coin-like smart contract with transfer and balance functions. It is useful for learning, but it is not a production-ready ERC-20 token.
Install Truffle for Legacy Learning
For educational purposes, you can still install Truffle if you want to reproduce the original tutorial:
npm install -g truffle
truffle --version
Unbox MetaCoin
truffle unbox metacoin
After unboxing, the project includes smart contract files such as MetaCoin.sol and
ConvertLib.sol. These can be compiled and deployed to a local development blockchain.
Compiling, Migrating and Testing
Compile the contracts:
truffle compile
Start the Truffle development console:
truffle develop
Inside the Truffle console, deploy and test:
migrate
test
Interacting with the Contract Using Web3
The original tutorial used Web3 inside the Truffle development console. The console automatically provides test accounts with local test ETH.
web3.eth.accounts
web3.eth.accounts[0]
web3.eth.accounts[1]
In newer Web3.js versions, many APIs are promise-based and may use slightly different syntax. If a command from an older tutorial does not work, check the Web3.js version used by your toolchain.
const accounts = await web3.eth.getAccounts();
console.log(accounts[0]);
Checking Balances and Sending MetaCoin
MetaCoin includes functions for checking balances, converting MetaCoin to an ETH-equivalent value, and sending MetaCoin from one address to another.
MetaCoin
The constructor called when the contract is deployed.
sendCoin
Transfers MetaCoin from one account to another.
getBalance
Returns the MetaCoin balance of an address.
getBalanceInEth
Shows the balance using the conversion logic in the sample project.
Check ETH Balance
web3.eth.getBalance(web3.eth.accounts[0]).toNumber()
web3.fromWei(web3.eth.getBalance(web3.eth.accounts[0]), 'ether').toNumber()
Check MetaCoin Balance
MetaCoin.deployed()
.then(function(instance) {
return instance.getBalance.call(web3.eth.accounts[0]);
})
.then(function(value) {
return value.toNumber();
});
Send MetaCoin
MetaCoin.deployed()
.then(function(instance) {
return instance.sendCoin(web3.eth.accounts[1], 1000, {
from: web3.eth.accounts[0]
});
});
Debugging Transactions
The Truffle debugger can step through a transaction using its transaction hash. This helps learners inspect variables and understand what happened during contract execution.
debug '0xYOUR_TRANSACTION_HASH'
In the debugger, you can step through execution and watch variables such as receiver and amount.
+: receiver
+: amount
Deploying to Ganache
Ganache was a popular personal Ethereum blockchain used for local testing. It allowed developers to view accounts, transactions, logs and gas usage through a convenient interface.
For legacy MetaCoin learning, a Ganache network configuration looks like this:
module.exports = {
networks: {
ganache: {
host: "127.0.0.1",
port: 7545,
network_id: "*"
}
}
};
truffle migrate --network ganache
Public Testnets: Update for Ropsten and Rinkeby
The original tutorial included Ropsten and Rinkeby. Those testnets are now deprecated and should not be used for new tutorials or new smart contract deployments.
| Old Testnet | Status | Use Instead |
|---|---|---|
| Ropsten | Deprecated and shut down | Sepolia for smart contract and dApp testing |
| Rinkeby | Deprecated and shut down | Sepolia for app testing |
| Goerli | Deprecated | Sepolia for most application developers |
| Holesky | Deprecated as of September 2025 | Hoodi for validator/protocol testing; Sepolia for apps |
On mobile, swipe the table horizontally if needed.
Recommended Modern Learning Path
The classic Truffle MetaCoin tutorial is still useful for understanding basic smart contract ideas, but a modern learner should gradually move toward current tooling and standards.
Start with Remix
Good for beginners who want to write and deploy a simple Solidity contract quickly.
Use Hardhat or Foundry
Better for modern professional testing, scripting and deployment workflows.
Use ERC-20 Standards
For real tokens, use standard audited libraries instead of learning-only examples.
Modern Token Development Checklist
- ✓Use a current Solidity compiler version.
- ✓Use tested ERC-20 implementations for real token behavior.
- ✓Write unit tests and deployment scripts.
- ✓Test on local network before Sepolia.
- ✓Verify contract source code after deployment.
- ✓Never deploy production contracts without review and security testing.
Summary
- ✓The original tutorial teaches a Windows-based Ethereum development workflow using MetaCoin.
- ✓VS Code, Git, Node.js and Solidity support remain useful for smart contract development.
- ✓Truffle and Ganache are now legacy tools, but still useful historically and educationally.
- ✓Ropsten and Rinkeby should be replaced with modern active testnets such as Sepolia.
- ✓For new projects, learn Hardhat, Foundry, Remix and ERC-20 standards.