Memahami identitas di Ethereum: perbedaan EOA dan smart wallet, hubungan private key, seed phrase, dan address, cara membuat akun dengan viem, memilih wallet aplikasi (MetaMask/Phantom/Trust) serta hardware wallet, dan menggunakan ENS sebagai nama yang mudah dibaca

Setelah di episode 2 kita memetakan arsitektur Web3, pada episode ini kita membedah komponen paling dekat dengan user: wallet. Di Web2, akun adalah username + password yang disimpan server; di Web3, identitas adalah pasangan kunci kriptografi yang dipegang kalian sendiri.
Mengapa episode ini penting? Karena kesalahan memahami wallet adalah penyebab nomor satu kehilangan aset: menyimpan private key di tempat yang salah, salah menyalin address, atau phishing signature. Di sisi developer, memahami cara kerja wallet menentukan bagaimana kita merancang login, siapa msg.sender di contract, dan bagaimana UX on-boarding DApp kalian.
Dua jenis utama akun di EVM:
| Aspek | EOA | Smart Wallet (EIP-4337) |
|---|---|---|
| Siapa yang mengontrol | Private key tunggal | Smart contract / logika program |
| Recovery | Tidak ada — key hilang berarti aset hilang | Bisa social recovery |
| Login | Private key / seed phrase | Passkey, email, biometrik |
| Spending limit | Tidak ada (semua atau tidak sama sekali) | Bisa dibatasi |
| Kompatibilitas | Semua aplikasi | Sebagian aplikasi (mulai menyebar) |
EOA adalah default saat kalian membuat akun MetaMask. Smart wallet dibahas tuntas di episode 17 — untuk sekarang, pahami bahwa address-nya sama-sama 40 karakter hex, hanya pengontrolnya yang berbeda.
Ketiganya berasal dari satu sumber:
Kalian tidak perlu MetaMask untuk sekadar membuat address — viem bisa melakukannya di Node:
import { createWalletClient, http, publicActions } from "viem"
import { privateKeyToAccount } from "viem/accounts"
import { mainnet } from "viem/chains"
const account = privateKeyToAccount(
"0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80",
)
console.log(account.address)Perhatikan: private key di atas adalah key development standar yang dikenal publik — hanya untuk contoh. Jangan pernah memakai key nyata seperti ini dalam kode.
Address Ethereum sebenarnya adalah lowercase hex, tetapi standar EIP-55 menambahkan huruf kapital sebagai checksum: 0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed. Wallet dan explorer memvalidasi checksum ini untuk menangkap typo sebelum transaksi disiarkan.
| Wallet | Platform | Karakter |
|---|---|---|
| MetaMask | Browser (Chrome/Firefox), mobile | Standar EVM, paling banyak dipakai |
| Trust Wallet | Mobile | Multi-chain, banyak dipakai untuk BNB Chain |
| Phantom | Browser, mobile | Fokus Solana, kini mendukung EVM |
| Coinbase Smart Wallet | Browser, mobile | Smart wallet EIP-4337, login passkey |
Untuk series ini, MetaMask adalah pilihan utama — ekstensi browser dengan integrasi lengkap ke wagmi.
Untuk aset bernilai besar, hardware wallet (Ledger/Trezor) menyimpan private key di chip fisik yang tidak pernah mengekspos key ke komputer:
Hardware wallet berguna saat kalian mengelola dana produksi. Untuk development dan testnet, MetaMask cukup.
Warning
Aturan emas wallet: private key dan seed phrase tidak boleh pernah disimpan di file proyek, repositori, screenshot, chat, atau cloud sync. Tulis di media fisik yang aman, atau gunakan password manager terenkripsi. Kehilangan key = kehilangan aset secara permanen, tanpa banding.
Address sepanjang 42 karakter sulit diingat dan rawan typo. Ethereum Name Service (ENS) memetakan nama seperti vitalik.eth ke address — mirip DNS untuk Ethereum.
cast resolve vitalik.eth --rpc-url $RPC_URLKelebihan ENS:
vitalik.eth lebih jelas daripada 0xd8dA....Untuk development, kalian tidak wajib punya ENS — tetapi memahami cara kerja dan cara me-resolve-nya penting saat menampilkan identitas user di UI.
Rangkuman yang sudah kalian pelajari di episode 3:
Inti yang harus dibawa pulang:
Di episode 4 selanjutnya, kita membahas transaksi, gas & networks — struktur transaksi (from/to/value/nonce/gas), signing ECDSA dan mempool, model fee EIP-1559, perbedaan mainnet vs testnet (Sepolia/Holesky), serta cara mendapatkan token testnet dari faucet. Siapkan MetaMask kalian, karena praktik menandatangani transaksi akan segera dimulai!