Transaction Tracing
Last updated
Last updated
All transactions on the Lombard Protocol are fully traceable between different blockchain networks (both Bitcoin and destination chains where LBTC is supported).
This technical document is aimed at users and developers familiar with different blockchain networks and how data is represented on-chain.
Scenario: When a user mints LBTC from staking native BTC, the Bitcoin transaction hash corresponding to their deposit address is included in the on-chain event logs.
First, find the on chain events log on the Implementation contract. Check the logs of the transaction and find the event mintProofConsumed
which corresponds to the mint event. The topic ID which corresponds to this event is 0x91f5c148b0f5ac9ddafe7030867f0d968adec49652c7ea760cf51fa233424b14
.
Tip: you can also use to Etherscan's block explorer to see all methods which contain topic0
for this event on Ethereum. Similar for all other EVM chains.
After locating the corresponding the mintProofConsumed
event corresponding to the minting transaction in the transaction logs, the data needs to be decoded. This data object is a Hex encoded object of 4 bytes, where each variable is left padded 32 bytes.
You can identify the minting event data by the four encoded bytes F2E73F7C
. The four variables included are the following:
chain
recipient
amount
vout
This data needs to be decoded. You can directly locate the recipient variable, and reverse order the bytes to see the corresponding deposit transaction for this mint event. Below, we have provided the relevant ABI code which you can use to decode the message in any convenient ABI decoder by inputting both the script below and the encoded data into :
Alternatively, via script:
Scenario: Users can initiate the redemption of their native BTC at any time to a chosen recipient address by unstaking LBTC. When a user unstakes LBTC, the recipient Bitcoin address is embedded within the script public key in the on-chain event logs.
The address is embedded in the scriptPubKey
value of in the event log's data
object.
Note: Lombard only supports unstaking to Native Segwit and Taproot addresses. For more information.
Bitcoin transactions are stored in big-endian order, but displayed in little-endian order. To search for the transaction on , you will need to select the txid
, the third variable, and convert.
The easiest method to convert the Bitcoin transaction hash from big-endian to little-endian is to use an online tool such as , selecting Hexal.
To view the mint event logs, use a blockchain explorer like . Select any one of the transfer of Method type Redeem
made on the LBTC ERC-20 token smart contract. In the Transaction Details, view the Logs tab and find the UnstakeRequest
event log. This log contains:
Use the following Go code snippet with the relevant hexadecimal-encoded scriptPubKey
. The resulting output is the recipient Bitcoin address. Alternatively, this snippet can also be run .