Skip to content

D01-DayOne/dev-wallet

Repository files navigation

Developer wallet & DevTools for Anvil

Forked and modified from Rivet (MIT licensed) by Paradigm. Original license retained.

What is DW: DevWallet?

DW: DevWallet 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. DW: DevWallet 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, DW: DevWallet 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.

DW: DevWallet is aimed to be contributor first & friendly. If you would like to contribute, check out the Contributing Guide.

Why was it forked?

Development had slowed down and many issues were left open.

Rivet is still the best dev tool that works well in the development flow of use

Download

  • Chromium (Chrome, Brave, Arc, etc) [Download]
  • Firefox: coming soon
  • Safari: coming soon

Nightly Release

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

  • Chromium (Chrome, Brave, Arc, etc): Download
Setup Instructions
  1. Download the asset `extension.zip` from the link above
  2. Unzip the downloaded file
  3. Open your chromium browser and navigate to chrome://extensions
  4. Enable Developer Mode in the top right corner
  5. Click Load Unpacked in the top left corner
  6. Select the unzipped folder
  7. Done! You should now see the DW: DevWallet extension in your browser

Features

  • Onboarding
    • Set up local Anvil instance
    • Configure & deploy Anvil instance (fork block number, fork rpc url, base fee, gas limit, etc)
  • Anvil Node/Chain
    • Configure fork settings (block number, RPC URL, chain ID, etc)
    • Configure block config (base fee, gas limit, timestamp interval, etc)
    • Automatic sync with Anvil instance
    • Reset instance*
    • Deploy a new instance*
    • Switch between instances*
  • Accounts
    • List Anvil-attached and impersonated accounts
    • View balances, nonces, and other account details
    • Inspect, connect, and manage accounts
    • Impersonate accounts
    • Set balances & nonces
    • View & set ERC20/721/1155 balances*
    • Import Private Key/HD accounts*
  • Block
    • Infinite scroll through previous blocks
    • View block details & transactions
    • Toggle between "click-to-mine", interval mining, and auto-mining
    • Time-travelling (rewind & replay)*
  • Contract
    • Read & write interactions with intuitive UI to represent ABI data structures*
    • Inspect & set storage slots*
    • Inspect & set bytecode*
    • Deployment details (compiler version, optimization + runs)*
    • Inspect contract source code*
  • Transaction
    • Infinite scroll through previous & pending transactions
    • View transaction details (including decoded calldata*, logs*, state*, and tracing*)
    • Filter transactions by block, account, and status*
    • Update transactions in Anvil mempool*
  • Dapp Connections
    • Connect to Dapps with your Anvil (and impersonated) account(s)
    • Send transactions, sign messages & typed data, etc
    • Account authorization & "Instant Connect" mode*
    • Transaction request modifiers (fees, nonce, etc)*
  • Other
    • EIP-6963: Multiple Injected Provider Discovery
    • Light & Dark Mode
    • Keyboard shortcuts*

* = Planned feature

Getting Started

1. Clone the repository

Clone the repo to your local machine using git:

git clone https://github.com/D01-DayOne/dev-wallet.git

2. Install Bun

DW: DevWallet 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.

Multi-Wallet Support

DW: DevWallet supports both legacy window.ethereum injection and modern EIP-6963 multi-wallet discovery.

EIP-6963 Support:

  • DevWallet announces itself via EIP-6963, allowing dapps to discover it alongside other wallets
  • If another wallet (MetaMask, Coinbase, etc.) is already installed, DevWallet will NOT overwrite window.ethereum to avoid conflicts
  • Dapps that support EIP-6963 can present users with a wallet selector to choose between DevWallet and other installed wallets
  • The test dapp (bun run dapp) demonstrates EIP-6963 wallet discovery

Legacy Dapp Compatibility:

  • If no other wallet is present, DevWallet will inject itself as window.ethereum for compatibility with older dapps
  • For testing legacy dapps, run DevWallet in its own Chrome profile without other 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.

DW: DevWallet Authors

Rivet Authors

License

MIT License

About

Developer Wallet & DevTools for Anvil

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 30

Languages