Here is an article based on your request:
Understanding Hexadecimal and ASM Fields in Ethereum Transactions
When you use the bitcoin-cli decoderawtransaction
command to decode a raw transaction from a hex string, you are probably curious about the contents of each field. In this article, we will delve into the world of Ethereum transactions and explore what the hex and asm fields represent.
Hexadecimal Fields: The Basics
In Bitcoin, when a transaction is broadcast or mined, it is represented in a compact format using 64-bit (32 byte) numbers. Each field in a transaction represents a specific piece of information. One such field is the “hex” field, which contains the raw transaction data encoded in hexadecimal format.
The “hex” field is typically a sequence of 4-byte hexadecimal values, separated by commas or spaces. For example:
{
"0x…": {
"0x01": ...,
"0x02": ...
}
}
asm Fields: Secret Language
The “asm” field is a key element of an Ethereum transaction that allows you to specify custom assembly code. It is essentially a string of characters containing assembly language instructions that will be executed on the Ethereum blockchain.
When decoding a raw transaction, the “asm” field is usually represented as a hexadecimal value in square brackets “[]”, preceded by a colon “:” and followed by several hexadecimal values separated by commas.
{
"0x…": {
"[...]: [...]",
...
}
}
This notation allows you to define custom assembly code that will be executed on the Ethereum blockchain.
Hex fields: decoding values
When decoding a raw transaction using bitcoin-cli decoderawtransaction
, you can pass a hex string as an argument, like this:
,,biting
transaction decoderaw bitcoin-cli 0x1234567890abcdef
The output will be a JSON object containing the decoded fields, including hex and asm values.
In our example, the decoderawtransaction
command generates a JSON object with the following structure:
json
{
“hex”: “0x1234567890abcdef”,
“asm”: “[…] : […]”
}
The "hex" value is simply the raw hexadecimal string passed as an argument.
asm Fields: Decoding Values

To decode an asm
field, you need to pass a JSON object with a key-value pair, where the first key is `0x...'
(the same as a hex field), and the second value is another JSON object containing the assembly code:
json
{
“0x…”: {
“[…]: […]”
}
}
For example, if the JSON output looks like this:
json
{
“hex”: “0x1234567890abcdef”,
“asm”: “{…} : {…}”
}
You can decode an asm
field by passing a JSON object with a key-value pair, where the first key is "0x..." and the second value is another JSON object containing the assembly code assembler:
,,biting
transaction decoderaw bitcoin-cli 0x1234567890abcdef "{[...]: [...]}"
The output will be a JSON object representing the custom assembly code executed on the Ethereum blockchain.
To summarize, hex fields represent raw hex data encoded in a compact format, while asm fields are a special type of field that contain custom assembly language instructions. When decoding a raw transaction with bitcoin-cli decoderawtransaction
, you can pass either a hex or asm string as an argument to specify which values to include in the output JSON object.