Paradigm

Introducing Rivet

Aug 26, 2023 | Georgios Konstantopoulos, Achal Srinivasan, Tom Meagher, Jake Moxey

Contents

We are excited to announce the alpha release of Rivet, a free, open-source developer wallet & tools for EVM-based chains. We built Rivet to improve the frontend development experience, and to unlock new productivity frontiers for developers. Find out more below.

What is Rivet?

Rivet is a developer-focused wallet & DevTools for Ethereum - a browser extension that enables developers to inspect, debug, modify, and manipulate the state of a local Ethereum node. Centered around common workflows of frontend Ethereum development, it is compatible with any Ethereum DApp, and comes with many advanced features out-of-the-box. Rivet is MIT-licensed, and free for anyone to contribute, use, or fork. We are excited for the community to build Rivet with us, so feel free to reach out if you’re interested in contributing!

Rivet is a browser extension that allows users to connect to any Ethereum app and has all the table-stakes features one would expect in a wallet, i.e. manage multiple addresses, sign and submit transactions or messages, and view your transaction history.

Why build a developer wallet?

We built Rivet for 2 core reasons:

  • Developing against a local Ethereum node is a pain with consumer wallets as they simply aren’t designed for it. Constant state changes (and restarts) on a local Ethereum node cause these wallets to become out-of-sync and generally have poor reactivity (e.g. on some consumer wallets, you have to remove and re-add your account to reset the nonce, as most wallets do not react to nonce resets)
  • Other developers debug against testnets or even worse, mainnet. Developing against a testnet can work as you can easily fund yourself with a faucet and test transaction flows easily; however comes with the trade-off of not being able to replicate mainnet network conditions & state. Developing against mainnet can also work as you can develop against live network conditions & state; however comes with the obvious trade-off that you are spending real money on fees. Both of these methods are not an ideal approach to debugging & testing end-to-end flows.

By building a developer-first wallet, we can encourage developers to follow the best practice of introspection, testing, debugging against a local (forked) Ethereum node. Rivet is an enabler to working with a local node end-to-end, tapping on functionality not accessible by widespread consumer wallets.

What makes Rivet special?

Rivet is special because of its tight integration with Foundry’s Anvil. This allows for deep testing, debugging, and modifications in DApps. Rivet is “DevTools for Ethereum”; to put it as an analogy, it is similar to “React DevTools” or “Developer Tools (⌥⌘I) for the browser”.

Here are some of Rivet’s differentiators to other wallets:

  • Large real estate on the side of the browser instead of a small popup, allowing rich information display about the state of Ethereum.
  • Automatic node sync & auto-adjusting nonces/accounts depending on the network you are connected to (no more reset nonces on every network change!)
  • Forking mainnet, allowing “sandbox” interactions on the live network, is especially useful when testing your DApp’s integration against live applications.
  • Configurable interval for block production, click-to-mine, and overriding block fees.
  • Account Impersonation allows you to browse and interact with any DApp as any address!
  • Account Overriding allows you to edit the nonce or balance of any account. Storage Slot overriding coming soon!
  • Listing all blocks, drilling into mined transactions, viewing pending transactions in the mempool in between blocks / when block mining is paused – almost like a mini-block explorer.

What is next for Rivet?

Rivet is still in early development, and we are looking for contributors both in the implementation, but also in idea space. If you are a frontend developer who is excited about building this with us, please reach out.

Some things we are excited about:

  1. Improving the UI/UX of using Rivet
  2. Time Travel for undoing 1 or more actions (instead of resetting!)
  3. Reading & writing token (ERC20/721 etc.) balances, or other storage slots
  4. ABI-decoded calldata, logs, state changes and traces
  5. Tighter integration with Forge build artifacts
  6. Keyboard shortcuts
  7. ..and more!

If all of this sounds exciting, please reach out to georgios@paradigm.xyz or achal@paradigm.xyz, reach out to Tom & Jake, and read the Contributing Guidelines!

See you on Github.

Disclaimer: This post is for general information purposes only. It does not constitute investment advice or a recommendation or solicitation to buy or sell any investment and should not be used in the evaluation of the merits of making any investment decision. It should not be relied upon for accounting, legal or tax advice or investment recommendations. This post reflects the current opinions of the authors and is not made on behalf of Paradigm or its affiliates and does not necessarily reflect the opinions of Paradigm, its affiliates or individuals associated with Paradigm. The opinions reflected herein are subject to change without being updated.