Awesome
Ramen - A Terminal Interface for Ethereum 🍜
Ramen is a good-old terminal UI to interact with Ethereum Network. It allows you to observe latest chain status, check account's balance and transaction history, navigate blocks and transactions, view smart contract's source code or call its functions, and many things more!
Features
- View an account's type, balance and transaction history.
- View transaction details, including sender/receiver address, value, input data, gas usage and timestamp.
- Decode transaction input data and display it in a human-readable format.
- Call contract functions.
- Import private key for transfer and calling of non-constant functions.
- View contract's ABI, source code, and storage.
- Keep syncing with network to retrieve latest blocks and transactions.
- Show account's assets, including ERC20 tokens and ERC721 NFTs.
- Windows support.
- ENS support.
- Navigate back and forth between pages.
- Customize key bindings and color scheme.
- Support more Ethereum JSON-RPC providers.
- Support Polygon, Binance Smart Chain, and other EVM-compatible chains.
Additionally, Ramen is also well designed for smart contract development. Ramen can connect to a local chain (such as the one provided by Hardhat) to view transaction history of smart contract in development, call functions for testing, or verify its storage. Just works like Etherscan, but for your own chain!
Installation
Using Package Manager
Homebrew
brew tap dyng/ramen && brew install ramen
More package managers are coming soon!
Using Prebuilt Binaries
You can choose and download the prebuilt binary for your platform from release page.
Building From Source
If you want to experience the latest features, and don't mind the risk of running an unstable version, you can build Ramen from source.
-
Clone repository
git clone https://github.com/dyng/ramen.git
-
Run
go build
commandgo build -o ramen
Quick Start
Ramen requires an Ethereum JSON-RPC provider to communicate with Ethereum network. Currently only Alchemy and local node is supported by Ramen. More providers will be added soon.
In addition to the Ethereum JSON-RPC provider, Ramen also relies on the Etherscan API to access certain information that is not easily obtainable through the JSON-RPC alone, such as transaction histories and ETH prices.
To access Alchemy and Etherscan's service, you need an Api Key respectively. Please refer to their guides to obtain your own Api Key.
When the API keys are ready, you can create a configuration file .ramen.json
in your home directory (e.g. ~/.ramen.json
) and place keys there.
{
"apikey": "your_json_rpc_provider_api_key",
"etherscanApikey": "your_etherscan_api_key"
}
Then you can start Ramen by running the following command:
# connect to Mainnet
./ramen --network mainnet
# connect to Goerli Testnet
./ramen --network goerli
Key Bindings
Ramen inherits key bindings from underlying UI framework tview, the most frequently used keys are the following:
Key | Action |
---|---|
j , k | Move cursor up and down |
enter | Select an element |
tab | Switch focus among elements |
Connect Local Network
Hardhat / Ganache provides a local Ethereum network for development purpose. Ramen can be used as an user interface for these local networks.
./ramen --provider local
Troubleshoting
If you come across some problems when using Ramen, please check the log file /tmp/ramen.log
to see if there are any error messages. You can also run Ramen in debug mode with command:
ramen --debug
If you still can't figure out the problem, feel free to open an issue on GitHub
Special Thanks
Ramen is built on top of many great open source projects, special thanks to k9s and podman-tui for inspiration.
License
Ramen is released under the Apache 2.0 license. See LICENSE for details.