0Pricing
Web3 & DApp Development Fundamentals · Lezione

cast e anvil

CLI e nodo locale

cast e anvil è una lezione Web3 & DApp Development Fundamentals gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Web3 & DApp Development Fundamentals, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Web3 & DApp Development Fundamentals include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

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.

Domande Frequenti

La lezione «cast e anvil» è gratuita?

Sì — il testo completo di «cast e anvil» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Web3 & DApp Development Fundamentals, passa a CoddyKit PRO. Il corso Web3 & DApp Development Fundamentals include 4 lezioni in totale.

Cosa imparerò in «cast e anvil»?

CLI e nodo locale Eserciti Web3 & DApp Development Fundamentals con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Web3 & DApp Development Fundamentals?

Non è richiesta alcuna esperienza precedente. Web3 & DApp Development Fundamentals su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «cast e anvil»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Web3 & DApp Development Fundamentals?

Sì. Ogni lezione Web3 & DApp Development Fundamentals include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Foundry e Hardhat a confronto
  2. Test con forge
  3. Fuzzing e invarianti
  4. cast e anvil
← Torna a Web3 & DApp Development Fundamentals