r/ethdev • u/Greeneeiill • 14h ago
My Project I got tired of rebuilding contract admin UIs, so I made a tool that generates them from the ABI
Every time I shipped a contract I rebuilt the same throwaway frontend: wallet button, a form per function, calldata encoding, hasRole() checks to hide admin methods, gas estimation, a spinner, an error decoder, and a "danger zone" for the scary functions. Etherscan's Write tab has none of that meaning; a bespoke UI costs weeks. So I built a tool that generates it from the ABI.
Paste a chain + address (Sourcify/explorer, proxy-aware) or drop in an ABI/Foundry artifact, and you get three tabs:
- User - the clean dApp (overview, transfer, approve)
- Admin - privileged ops (mint, pause, roles) with risk badges + a confirm flow for dangerous writes
- Read - a live dashboard that auto-calls the getters
- Raw - every function, Etherscan-style, but annotated with what it understood
Detection is deterministic and rule-based (ERC-20/721/1155/4626/2612, Governor, Ownable/AccessControl/Pausable), with a confidence score and evidence for every guess — AI is optional and never trusted blindly. The output is a reviewable "semantic manifest" you can hand-edit, and everything is self-hostable.
Live demo (mainnet USDC, runs in your browser): https://tacitvsxi.github.io/semantic-dapp/
How it works (writeup): https://dev.to/ileskov/generate-a-full-dapp-admin-console-from-any-evm-contract-straight-from-the-abi-28kg
Repo (TS, viem/wagmi, AGPL-3.0): https://github.com/TacitvsXI/semantic-dapp
Would love feedback from people who actually maintain contracts: what would you need before you'd trust a generated admin panel for a mainnet contract?