walletbeat icon indicating copy to clipboard operation
walletbeat copied to clipboard

Add columns

Open PatrickAlphaC opened this issue 7 months ago • 4 comments

The following columns IMO are needed in order for a wallet to be usable (in my opinion). Similar to how Vitalik said that if a layer 2 isn't stage 1, it should no longer be referred to as a layer 2 we should no longer refer to wallets as valid wallets if they do not meet this criteria.

Essential/critical criteria to have today

  • Shows EIP-712 data (or has the option to)
  • Secure element

Important to have soon

  • Shows either message hash & domain hash OR EIP-712 digest when signing an EIP-712 message
  • Decodes calldata, and nested decodes calldata

Ideal to have sometime in the future

I've added some of my initial research here to be used.

Image

PatrickAlphaC avatar May 22 '25 02:05 PatrickAlphaC

Oh wow!! I just saw the new page!! I'm honored some of my videos are included! I'll make more :)

https://wallet.page/wallet/summary

PatrickAlphaC avatar May 22 '25 02:05 PatrickAlphaC

The hardest part of this site I think is finding someone to reproduce the builds similar to what we see with wallet scrutiny.

https://walletscrutiny.com/

Gonna need a badass to do this work!

PatrickAlphaC avatar May 22 '25 02:05 PatrickAlphaC

Hi! Agreed on all counts.

EIP-712 data display seems like something that should be expected of all wallet types (both software and hardware), whereas use of a secure element only makes sense to require for hardware wallets. (Didn't know the Trezor Model T didn't have that, wut?)

I believe EIP-712 data is already taken into consideration within the src/schema/attributes/security/user-safety.ts attribute; check src/schema/features/security/user-safety.ts for the wallet feature data and src/schema/attributes/security/user-safety.ts for the attribute that reads them:

https://github.com/walletbeat/walletbeat/blob/9543b90c38115c97a08be0ed2eb9a2911f343d60/src/schema/features/security/user-safety.ts#L9-L29

https://github.com/walletbeat/walletbeat/blob/9543b90c38115c97a08be0ed2eb9a2911f343d60/src/schema/attributes/security/user-safety.ts#L21-L39

EIP-712 is also meant to be taken into consideration as part of the src/schema/attributes/security/software-hw-integration.ts attribute; however the current code just looks for magic substrings in a free-form text description in the wallet's features.security.hardwareWalletDappSigning feature data:

https://github.com/walletbeat/walletbeat/blob/9543b90c38115c97a08be0ed2eb9a2911f343d60/src/schema/attributes/security/software-hw-integration.ts#L333-L338

This logic could be replaced to use more structured feature data that covers generic EIP-712 display support, and support for interpreting this data for Aave/Safe and maybe others.

Your spreadsheet data also represents a lot of effort to compile it; it would be great to port that over to Walletbeat's database for wallet feature data! For example you can edit data/hardware-wallets/trezor.ts to add the Trezor data.

Let me know if you need any help with the code; I also recommend discussing with @nconsigny who has designed these hardware wallet attributes.

polymutex avatar May 24 '25 23:05 polymutex

Nice, I'm going to make a big PR this week

PatrickAlphaC avatar May 29 '25 00:05 PatrickAlphaC