🚨 Introducing viem – a TypeScript Interface for Ethereum with a focus on stability, developer experience, bundle size, and performance.
An alternative to Ethers.js & web3.js.
↳ http://viem.sh
http://viem.sh attempts to make errors as human readable & comprehensible as possible, here is a comparison of a `sendTransaction` error message if the account has insufficient funds:
We are excited to announce our sponsorship of the products and teams of @wagmi_sh, a #Web3 front-end development library, to collaboratively explore better wallet services and development tools with #wagmi!
Should I use wagmi or viem?
wagmi is for dapps & wallets – a high-level and stateful interface for Ethereum (React Hooks, Vanilla JS, etc)
viem is for libraries, tooling, server-side dev, scripting, etc – a low-level and stateless interface for Ethereum
We, the authors of wagmi, built viem because we knew a stable, predictable implementation with a tiny bundle size and performant modules was paramount to interacting the world's largest blockchain ecosystem.
You can learn more about our rationale here:
viem further tunes performance with optimized encoding/parsing algorithms, and by only executing heavy asynchronous tasks when required.
See more: http://viem.sh/docs/benchmarks.html…
viem is 27kB.
End users should not be required to download over 100kB in order to interact with Ethereum.
viem is also tree-shakable, meaning only the modules you use are included in your final bundle.
http://bundlephobia.com/package/viem@0.1.0…
Stability is a fundamental principle for viem.
- We run our test suite against a forked Ethereum node
- We aim for complete test coverage and test all potential behavioral cases
- We build deterministic and pure APIs
Learn more: http://viem.sh/docs/introduction.html#stability…
viem delivers a great developer experience through:
- Modular and flexible building blocks to build Ethereum apps with speed & stability
- Strongly typed APIs for autocompletion, type inference & static validation
- Fully documented APIs
Learn more: http://viem.sh/docs/introduction.html#developer-experience…
viem will help developers build with a higher level of accuracy and correctness through type safety and developer experience.
It will also integrate extremely well with wagmi so folks can start using it without much upfront switching cost.
Human readable ABI is one of the most loved features of ethers js, which we also Reimplemented in ethers-rs with full abi v2 support.
Now also available in the
ABIType now supports Human-Readable ABIs
- Parsing works at the type-level and runtime
- Supports top-level `Structs`
- `parseAbi`, `parseAbiItem`, and more!
ABIType now supports Human-Readable ABIs
- Parsing works at the type-level and runtime
- Supports top-level `Structs`
- `parseAbi`, `parseAbiItem`, and more!
will become the default web3 full stack development stack.
If you're building on either and are in Denver this week, hmu, have some ideas for the hackathon, also happy to provide support
npm i @wagmi/cli
Automatically manage ABIs, generate code, and much more!
No more copying pasting ABIs from Etherscan
Remove boilerplate code with generated React Hooks
Connect Foundry/Hardhat projects to your apps
Create and publish your own CLI plugins
A quick introduction on how to use @wagmi_sh CLI and TurboETH so you never have to write smart contract react hooks again.
Personally I'm so done with actual coding. Can't wait for the day where all the focus is on problem => solution => product.
https://youtube.com/watch?v=sBX79sPjRss&t=216s&ab_channel=KamesGeraghty…