Roadmap › Blockchain & Web3 Fundamentals › Module: Building dApps
Lessons in this course (15)

11. dApp architecture

Intermediate★ Must knowLesson 11 of 15
Browser (React/Next.js + wagmi/viem or ethers.js)
   │  connect wallet (EIP-1193 provider: MetaMask, WalletConnect)
   │  read: eth_call via RPC provider   write: user signs tx in wallet
   ▼
RPC node (Alchemy/Infura/own node) ─────► Ethereum / L2 (smart contracts)
   ▲                                                │ events
   │                                                ▼
Backend (ASP.NET Core + Nethereum, optional) ◄── indexer / The Graph → SQL DB for fast queries
   │ off-chain data, auth (Sign-In with Ethereum), notifications
   ▼
IPFS / Arweave (NFT metadata, files)

Principles: the frontend never holds users' private keys — the wallet signs; keep business-critical logic on-chain only when trustlessness is needed; use a backend for indexing, search, notifications and anything private; handle chain IDs, network switching, pending/failed transactions and re-orgs (wait for confirmations).