Viem Playground started from the need to quickly call arbitrary EVM contract functions on historic blocks. It features the ability to call arbitrary slots and access non-public variables, as well as call 'write' functions in read-only mode while impersonating any user. It currently supports 97 different mainnet chains, and 55 testnet chains, and custom RPC's.