BACK_TO_LOGS
1/15/2024
1 min
24
INTERACTIVE

Building with Viem: A Web3 Developer's Journey

frontendblockchainlearning
💡

Type Safety

✅

Migration Complete

typescript
client.ts
import { createPublicClient, http } from 'viem'
import { mainnet } from 'viem/chains'
const client = createPublicClient({
chain: mainnet,
transport: http()
})
typescript
balance.ts
import { formatUnits } from 'viem'
async function getTokenBalance(address: string, tokenAddress: string) {
const balance = await client.readContract({
address: tokenAddress,
abi: erc20Abi,
functionName: 'balanceOf',
args: [address]
})
return formatUnits(balance, 18)
}

Building with Viem: A Web3 Developer's Journey

Web3 development has evolved rapidly, and with it, the tools we use to build decentralized applications. Today, I want to share my experience with viem, a TypeScript interface for Ethereum that's changing how we interact with the blockchain.

Why Viem?

Coming from ethers.js, I was initially skeptical about switching to a new library. However, viem's approach to type safety and developer experience quickly won me over.

> Viem provides excellent TypeScript support out of the box. No more guessing what parameters a function expects.

Key Benefits

  • Type Safety - Full TypeScript support
  • Tree Shaking - Smaller bundle sizes
  • Modern API - Intuitive design patterns

> The migration wasn't without challenges, but the improved developer experience made it worthwhile.

LAST_UPDATED: 1/15/2024

MORE_LOGS

Explore more field notes