Home

Awesome

cover

<p align="center"><strong>Developer wallet & DevTools for Anvil</strong></p> <div align="center"> <a href="https://chrome.google.com/webstore/detail/rivet/mobmnpcacgadhkjfelhpemphmmnggnod"> <img alt="Chrome Web Store Version" src="https://img.shields.io/chrome-web-store/v/mobmnpcacgadhkjfelhpemphmmnggnod"> </a> <a href="https://github.com/paradigmxyz/rivet/actions/workflows/on-push-to-main.yml"> <img alt="GitHub Workflow Status" src="https://img.shields.io/github/actions/workflow/status/paradigmxyz/rivet/on-push-to-main.yml"> </a> <a href="https://github.com/paradigmxyz/rivet/blob/main/LICENSE"> <img alt="GitHub" src="https://img.shields.io/github/license/paradigmxyz/rivet"> </a> </div>

What is Rivet?

Rivet is a developer Wallet & DevTools for Anvil (akin to Browser DevTools or React DevTools). It is a browser extension that enables developers to inspect, debug, modify, and manipulate the state of Ethereum: accounts, blocks, contracts & the node itself. Rivet is also compatible with any production dApp, meaning you can simulate any type of action from either an Account attached on the Anvil instance, or by "impersonating" another Account on the network.

By integrating EIP-6963: Multi Injected Provider Discovery, Rivet is designed to be used alongside and with other consumer browser wallets like MetaMask or Rainbow to provide more engrained developer tooling and workflows for Ethereum.

Rivet is aimed to be contributor first & friendly. If you would like to contribute, check out the Contributing Guide and good first issues.

screenshots

Download

Nightly Release

Rivet is currently in active development. If you would like to try out the latest features, you can download the latest nightly build below:

<details> <summary>Setup Instructions</summary> <ol> <li>Download the asset `extension.zip` from the link above</li> <li>Unzip the downloaded file</li> <li>Open your chromium browser and navigate to <code>chrome://extensions</code></li> <li>Enable <code>Developer Mode</code> in the top right corner</li> <li>Click <code>Load Unpacked</code> in the top left corner</li> <li>Select the unzipped folder</li> <li>Done! You should now see the Rivet extension in your browser</li> <ol> </details>

Features

* = Planned feature

Getting Started

1. Clone the repository

Clone the repo to your local machine using git:

git clone https://github.com/paradigmxyz/rivet.git

2. Install Bun

Rivet uses Bun. You need to install Bun v1 or higher.

You can run the following commands in your terminal to check your local Bun version:

bun -v

If the versions are not correct or you don't have Bun installed, download and follow their setup instructions:

3. Install dependencies

Once in the project's root directory, run the following command to install the project's dependencies:

bun i

4. Run the dev server

After you have installed dependencies, you are ready to run the dev server for the Extension. To do so, run the following:

bun run dev 

This will run a script that will build the Web Extension, start a dev server for the Test Dapp, and automatically open Chrome with a fresh profile and the extension installed.

Known Issues

Rivet uses the window.ethereum interface, which means it has some known conflicts with other wallets which also rely on window.ethereum. Once Dapps start to integrate EIP-6963 to handle multiple injected wallets, this should not be a problem anymore.

For best results it is recommended to run Rivet in it's own Chrome profile, without any other conflicting browser wallets installed.

Helpful note: A fresh Chrome profile gets instantiated when running the dev script: bun run dev.

Contributing

If you're interested in contributing, please read the contributing docs before submitting a pull request.

Authors

License

MIT License