.claude/skills/tevm-account-management/SKILL.md
Get and set account state including balances, nonces, and storage. Use when manipulating EVM state for testing.
npx skillsauth add cyotee/crane tevm-account-managementInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Get current account state:
import { getAccountHandler } from 'tevm/actions'
const account = await getAccountHandler(node)({
address: '0x...',
blockTag: 'latest',
returnStorage: true
})
Returns:
{
address: Address
nonce: bigint
balance: bigint
deployedBytecode: Hex
storageRoot: Hex
codeHash: Hex
isContract: boolean
isEmpty: boolean
storage?: { [key: Hex]: Hex }
}
Modify account state:
import { setAccountHandler } from 'tevm/actions'
// Set balance
await setAccountHandler(node)({
address: '0x...',
balance: parseEther('100')
})
// Deploy contract code
await setAccountHandler(node)({
address: contractAddress,
deployedBytecode: '0x...',
state: { '0x0': '0x1' }
})
// Multiple properties
await setAccountHandler(node)({
address: '0x...',
nonce: 5n,
balance: parseEther('10'),
state: { [slot]: value }
})
// Impersonate an account
node.setImpersonatedAccount('0x123...')
// Now JSON-RPC calls execute as that account
const result = await node.request({
method: 'eth_sendTransaction',
params: [{ from: '0x123...', to: '0x456...', ... }]
})
// Stop impersonating
node.setImpersonatedAccount(undefined)
// Take snapshot
const snapshotId = await client.snapshot()
// Make changes
await setAccountHandler(node)({ address: '0x...', balance: 0n })
// Revert to snapshot
await client.revert({ id: snapshotId })
development
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
documentation
Write to contracts and send transactions. Use when executing state-changing contract functions.
development
HTTP and WebSocket transports for blockchain connectivity. Use when configuring network connections.
data-ai
Read contract data with type-safe ABI. Use when querying smart contract view/pure functions.