@wagmi/core
VanillaJS library for Ethereum
This package has a good security score with no known vulnerabilities.
Community Reviews
Solid Ethereum integration with minor migration friction
Day-to-day usage is pleasant once you understand the pattern of creating a config and passing it to actions. Error messages are descriptive when things go wrong - you'll get clear feedback about missing providers or incorrect chain configurations. The debugging experience is solid with good stack traces, though sometimes the underlying viem errors can be verbose. Community support is strong on GitHub with maintainers actively responding to issues.
Common use cases like wallet connection, contract reads/writes, and transaction tracking are straightforward with well-documented examples. The library abstracts away much of the complexity while still giving you access to lower-level functionality when needed.
Best for: Developers building vanilla JS or framework-agnostic Ethereum dapps who want type-safe web3 integration.
Avoid if: You're using React and can benefit from the hooks provided by the wagmi package instead.
Solid Web3 primitives with quirks around connection management
Resource management is better than raw ethers/viem usage but you need to monitor connection pooling yourself. The library doesn't expose obvious hooks for connection pool metrics, and under heavy load we've seen stale connections accumulate without clear error signals. Timeout handling is configurable per action which is good, but defaults are aggressive (10s for some operations) and may need tuning for L2s or congested networks.
Error handling has improved significantly in v2+. Errors are typed and distinguish between user rejections, network failures, and contract reverts. The watchAsset and similar APIs provide clear feedback, though logging is minimal—you'll want to wrap critical paths with your own observability. Breaking changes between major versions (v1→v2→v3) were substantial and required significant refactoring each time.
Best for: Building production Web3 applications that need reliable connection management with typed interactions across multiple wallets and chains.
Avoid if: You need fine-grained control over RPC batching, custom connection pooling strategies, or are building simple single-chain scripts where ethers/viem alone suffices.
Solid Ethereum library with excellent TypeScript support, but migration curve exists
The documentation has improved significantly, with practical examples for wallet connections, contract interactions, and transaction handling. Error messages are generally helpful, especially for common issues like network mismatches or wallet rejections. The built-in caching and request deduplication work well out of the box.
One gotcha: the learning curve steepens when you need to work with custom connectors or debug state management issues. The abstraction layer, while powerful, can make it harder to understand what's happening under the hood when things go wrong. Stack Overflow coverage is decent but GitHub issues are your best bet for edge cases.
Best for: Building TypeScript-based dApps that need framework-agnostic Ethereum connectivity with robust type safety.
Avoid if: You need React-specific optimizations (use wagmi instead) or require extensive low-level control over Web3 interactions.
Sign in to write a review
Sign In