What problem does it solve? Writing Hardhat tests with untyped contract calls lets wrong arguments, wrong types, and invalid transactions slip through until runtime. This Skill shows how to use the viem integration from @nomicfoundation/hardhat-toolbox-viem so contract interactions are type-checked against the ABI at compile time and Ethereum-specific assertions are available out of the box. ## Core Features & Use Cases - Typed contract interaction: Deploy contracts with viem.deployContract, attach to existing ones with viem.getContractAt, and call read/write methods with full ABI type inference. - Ethereum-specific assertions: Verify reverts, custom errors, emitted events, and ETH balance changes via viem.assertions, including predicate-based argument matching and the anyValue helper. - Client access: Obtain public, wallet, and test clients from network.create() for reading chain state, sending transactions from different accounts, and dev-only operations. - Use Case: While testing a Counter contract, deploy it inside a loadFixture setup, assert that unauthorized callers revert with a custom error, and confirm the Increment event emits the expected argument. ## Quick Start Load the hardhat skill first, then ask the AI to write a Hardhat test that deploys a contract with viem.deployContract and asserts a revert using viem.assertions.