Decoding DeFi Transactions

I. What is an ABI?

An ABI (application binary interface) is an interface that obtains information between two binary program modules. In the Ethereum ecosystem, an ABI is like a “tool” that decodes DeFi transactions.

For more information, visit our blogarrow-up-right.

II. Why did we implement this?

Keystone’s vision and mission has always been to make transactions more secure and reliable.

In light of the needs of DeFi projects and the potential consequences of blind signingarrow-up-right, Keystone has developed a function of implementing an ABI on a microSD card to decode DeFi transactions. Our blogarrow-up-right explains this feature in detail and also contains a follow-up development plan.

III. Keystone's Solution

Firmware versions V1.3.0 (Multi-Coin) or newer supports the decoding of DeFi transactions using ABI via a microSD card.

A. Preparation

1. Firmwarearrow-up-right version V1.3.0 (Multi-Cion) or newer running on Keystone Essential or Pro.

(Please see firmware upgradearrow-up-right on for more help.)

circle-exclamation

2. Bind “MetaMask Extension” with Keystone Hardware Wallet. (Tutorialarrow-up-right)

3. MicroSD card (Requirements: Default FAT 32 format and capacity not exceeding 512GB. MicroSD card is not included with Keystone.)

circle-info

Tip: Keystone can format microSD cards to FAT32. (Tutorialarrow-up-right)

4. A microSD card reader (Not necessary if your laptop has an in-built one).

B. Decoding DeFi Transactions

1. Bind “MetaMask Extension” with the Keystone Hardware Wallet. (Tutorialarrow-up-right)

2. Insert the microSD card into your computer and download the latest ABI Pack from our GitHubarrow-up-right to the microSD card. Unzip the "contracts.zip" file to your microSD card's root directory.

circle-info

Tips: You can use an open source tool to verify the data in the ABI SQLite.

Click here to download the open source tool from "GitHub > REDEME".arrow-up-right

Keystone-ABI-1
Keystone-ABI-2

3. Insert the microSD card into the Keystone and turn the device on.

Keystone-ABI-3

4. Create a DeFi transaction and get the unsigned transaction data in QR code format.

(How to Bind MetaMask with Keystone?arrow-up-right)

Keystone-ABI-4

5. Keystone: Select [Menu] > [Watch-only Wallet] > [MetaMask / DeFi / Web3] > [Confirm]. Then select the "scan" icon and scan the QR code shown by the "MetaMask Extension".

Keystone-ABI-5
circle-info

Tips: Keystone supports the switching of wallet paths (ETH) to Ledger Live and Legacy formats in the MetaMask / DeFi / Web3 mode. Please check herearrow-up-right for tutorial and more details.

6. Your Keystone will find the relevant ABI and successfully decode your transactions. Keystone will also show the transaction details.

Keystone-ABI-6
circle-exclamation

7. If your Keystone failed to find the relevant ABI, it will show the coded version of the transaction. You can always add the relevant ABI by yourself. Please go to Chapter IV for specific operation details.

Keystone-ABI-7

IV. Advanced Operation

Keystone supports users who would like to add their own ABIs onto their microSD cards to address their personal needs. The specific operation is as follows:

circle-info

Note: This is an advanced feature. It’s not recommended for crypto newbies.

1. Each contract has a json file with the contract address as its name.

For each json file, there are the following fields:

2. Edit a json file according to the above file format:

1) Both the “address” and “abi” are required. The address follows the EIP 55 address checksum formatarrow-up-right.

2) The “name” field is not required. You can leave this field empty or delete it if the smart contract you are using doesn’t have a name.

triangle-exclamation

The following is an edited example:

3. After making the required edits, be sure the file name includes the contact address and ends with “.json” (e.g. 0x28f886fa1751e623ff4d8422a230d8b49879bf61.json)

triangle-exclamation

Save the .json file to the "contracts > self_define" path of the microSD card.

Keystone-ABI-8

Recommended Instructions: How to Use Uniswap with Keystone?arrow-up-right

Last updated

Was this helpful?