Ethtools is a collection of tools and API endpoints for ethereum users and developers. It's about offering easy-to-use abstractions over existing tooling.
All functionality uses your metamask provider, thus it will NEVER access any sensitive information.
You can easily inspect the source of this webpage to verify the code yourself. It's hosted on Cloudflare workers.
View the source code on GitHub. If something doesn't make sense, please open a GitHub issue or submit a PR.
A project by odyslam.eth
Visit the following endpoints to perform various actions (e.g ethtools.odyslam.com/sign/). Ethtools uses the information you pass on the URL to communicate with metamask and offer the functionality.
✅ /sign/<message>: Sign an arbitrary message with your web3 wallet (e.g metamask). It will return the signed message.
✅ /verify/<address>/<signed_message>/<message>: Verifies that a signed message originates from the specific address.
✅ /send/<contract_address>/<function_signature>/<function_arguments>: Execute a smart contract's function by sending a transaction.
👉 example: send/0x7EeF591A6CC0403b9652E98E88476fe1bF31dDeb/safeTransferFrom(address, address, uint256, uint256, bytes)/"0x8DbD1b711DC621e1404633da156FcC779e1c6f3E" "0xD9f3c9CC99548bF3b44a43E0A2D07399EB918ADc" 42 1 "0x"
✅ /call/<contract_address>/<function_signature>/<function_arguments>: Call a smart contract's function without sending a transaction. It reads the state of the smart contract without changing the state on the blockchain.
👉 example: /call/0x7EeF591A6CC0403b9652E98E88476fe1bF31dDeb/balanceOf(address,uint256) view returns(uint256)/"0x8DbD1b711DC621e1404633da156FcC779e1c6f3E" 42
The following webpages offer more complex functionality via simple input fields on the webpage. You don't have to encode any information in the URL.
/deploy: Deploy a smart contract. You will need the constructor signature, constructor arguments and the bytecode of the smart contract.
/flashbots: Submit a Bundle of transactions to Flashbots. It means that all transactions will be included in the same block, in the order you define.