Decoding DeFi Transactions with Keystone Hardware Wallet
What is ABI?
ABI (Application Binary Interface) is the key interface for information exchange between two binary program modules. In the Ethereum ecosystem, ABI acts as the "tool" for decoding DeFi transactions.
For more information, please check out Keystone's blog.
Why Implement ABI Decoding?
Keystone’s vision and mission have always been to make transactions safer and more reliable. Considering the needs of DeFi projects and the potential consequences of blind signing, Keystone developed the ABI decoding function on the microSD card. For more details, please refer to their blog.
Keystone's Solution
To decode DeFi transactions using the microSD card, ensure that you meet the following conditions:
1. Preparation
Bind the "MetaMask extension" with your Keystone hardware wallet. Please follow the tutorial for instructions.
MicroSD card (default FAT32 format, no larger than 512GB). How to format a MicroSD card to FAT32
Insert the microSD card into your computer and download the latest ABI Pack from Keystone's GitHub. Extract the “contracts_g3.zip” file to the root directory of the microSD card.
2. Decoding DeFi Transactions
- Insert the microSD card into the Keystone and turn on the device.
- Create a DeFi transaction and obtain the unsigned transaction data in QR code format, then scan the QR code displayed by MetaMask using Keystone.
- Keystone will find the relevant ABI and successfully decode your transaction, displaying the transaction details. (During the verification process, always keep the microSD card inserted into the Keystone device.)
3. Special Notes
- During the verification process, always keep the microSD card inserted into the Keystone device. Do not remove the microSD card before completing all signing steps.
- Even if Keystone has previously read the required ABI, it will not remember it. Each time you sign a transaction, you will need to insert the microSD card with the relevant ABI list for the function to work properly.
- If Keystone fails to find the relevant ABI, it will display the encoded version of the transaction.