0Pricing
Web3 & DApp Development Fundamentals · Lesson

cast and anvil

CLI and local node.

cast and anvil is a free Web3 & DApp Development Fundamentals lesson on CoddyKit — lesson 4 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Web3 & DApp Development Fundamentals learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

Two CLI Workhorses

Beyond forge, Foundry ships cast and anvil. cast is a Swiss-army knife for interacting with chains and contracts from the terminal. anvil is a fast local Ethereum node for development.

Together they let you deploy, call, and inspect contracts without writing any application code.

Starting Anvil

Running anvil spins up a local chain at http://127.0.0.1:8545. It prints ten pre-funded accounts with their private keys, ready for testing.

By default it mines a block for every transaction instantly, so there is no waiting.

$ anvil
Listening on 127.0.0.1:8545
Available Accounts
(0) 0xf39F...2266 (10000 ETH)
Private Keys
(0) 0xac09...ff80

Anvil Options

Anvil is highly configurable:

  • --fork-url — fork a live network's state
  • --block-time — mine on a fixed interval instead of per-transaction
  • --accounts / --balance — control test accounts
  • --chain-id — set the chain id
$ anvil --fork-url https://eth.example.com --block-time 5

Reading Chain Data with Cast

cast queries chain state directly. Common read commands:

  • cast block-number — current block
  • cast balance <addr> — ETH balance
  • cast nonce <addr> — account nonce
$ cast block-number --rpc-url http://127.0.0.1:8545
$ cast balance 0xf39F...2266

Calling View Functions

cast call performs a read-only call to a contract function, returning the result without sending a transaction or spending gas.

$ cast call 0xToken "balanceOf(address)(uint256)" 0xUser \
    --rpc-url http://127.0.0.1:8545

Sending Transactions

cast send signs and broadcasts a state-changing transaction. You supply the contract address, the function signature, arguments, and a private key.

$ cast send 0xToken "transfer(address,uint256)" 0xBob 100 \
    --private-key $PK --rpc-url http://127.0.0.1:8545

Encoding and Decoding

Cast handles ABI and data conversions:

  • cast abi-encode / cast calldata — build calldata
  • cast 4byte — look up a function selector
  • cast --to-dec / --to-hex — number base conversion
  • cast keccak — hash a value
$ cast calldata "transfer(address,uint256)" 0xBob 100
$ cast keccak "Transfer(address,address,uint256)"

Inspecting Transactions

After sending, inspect results:

  • cast tx <hash> — transaction details
  • cast receipt <hash> — receipt including gasUsed and logs
  • cast run <hash> — replay with a full trace

cast run is invaluable for debugging why a transaction reverted.

$ cast receipt 0xabc...123
$ cast run 0xabc...123 --rpc-url http://127.0.0.1:8545

Cheats on Anvil

Anvil exposes special RPC methods for testing, mirroring Foundry cheatcodes:

  • anvil_setBalance — set any account's balance
  • anvil_impersonateAccount — send as any address
  • anvil_mine — mine blocks on demand
  • evm_increaseTime — advance the clock

Call them through cast rpc.

$ cast rpc anvil_setBalance 0xUser 0xDE0B6B3A7640000
$ cast rpc evm_increaseTime 3600

A Local Workflow

A typical local loop:

  • Start anvil in one terminal
  • Deploy with forge script or forge create against it
  • Use cast send and cast call to exercise the contract
  • Debug failures with cast run

All without leaving the command line.

$ forge create src/Counter.sol:Counter \
    --private-key $PK --rpc-url http://127.0.0.1:8545

Forking for Realistic Tests

Combining anvil --fork-url with cast lets you experiment against a snapshot of mainnet locally: impersonate a whale, call a live protocol, and see real behavior without spending real funds.

This is the safest way to prototype interactions with deployed contracts.

Quick Check

Which command performs a read-only call to a contract function without sending a transaction or spending gas?

Recap

You learned the cast and anvil tools:

  • anvil runs a fast local node with pre-funded accounts and forking
  • cast call reads state; cast send writes it
  • Cast encodes/decodes calldata, hashes, and inspects receipts and traces
  • cast run replays transactions for debugging
  • Anvil RPC cheats manipulate balances, time, and mining

This completes the Foundry Toolkit course.

Frequently asked questions

Is the “cast and anvil” lesson free?

Yes — the full text of “cast and anvil” is free to read here on the web, and the Web3 & DApp Development Fundamentals course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Web3 & DApp Development Fundamentals course, upgrade to CoddyKit PRO.

What will I learn in “cast and anvil”?

CLI and local node. You practise Web3 & DApp Development Fundamentals with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Web3 & DApp Development Fundamentals?

No prior experience is required. Web3 & DApp Development Fundamentals on CoddyKit is structured for beginners through advanced learners; this is — lesson 4 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “cast and anvil” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Web3 & DApp Development Fundamentals lesson?

Yes. Every Web3 & DApp Development Fundamentals lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Foundry vs Hardhat
  2. forge Testing
  3. Fuzzing and Invariants
  4. cast and anvil
← Back to Web3 & DApp Development Fundamentals