When users interact with any dapp, they're required to confirm the interaction on their wallets. These wallets don't do a very good job at simplifying the information for non web3 users.
bytekode enables developers to build readable and easy to understand message popups/notifications resulting in a better UX.
When interacting with unknown dapps, users may end up allowing a transaction that results in the loss of their assets, with bytekodes transaction decoding, this problem will also reduce sometime in the future.
Web2 devs usually find it difficult to break into web3, with bytekodes playground, anyone can input the contract details and test out the contract functions without having to know solidity.
Decoding an eth transaction usually requires the tx hash, contract abi & deployment address.
Initial version of the app, relied only on the transaction hash wherein the users can enter the tx hash and the abi was fetched using a block explorer api. Since this worked only on verified contracts, and majority contracts on testnet are unverified, decided to make a product shift wherein the users can enter the dapp name, deployment address and abi making sure that all the details are stored on a central backend (supabase) + distributed db(filebase + ipfs via s3) & then enable users to decode the tx.
Getting an exact readable message from the transaction is an ongoing challenge, based on abi, now I've decided to categorize the contracts into different intents -> finance, nfts, heavy state changes etc to build a better ml classifier in the near future.
Discussion