Understanding Interpreted Transaction Data

Whether retrieving an individual transaction or looking up transactions for an address, transactions in the Hashless API are returned in the following format:

{
  "chain_id": 1,
  "transaction_hash": "0xd9dff9214ad1295e8192b4ac7bd3f9dbe67b7c6ab9946f69694f0e61e81a3338",
  "timestamp": 1670891831000,
  "sender": "0x0093e5f2a850268c0ca3093c7ea53731296487eb",
  "recipient": "0xb45a2dda996c32e93b8c47098e90ed0e7ab18e39",
  "success": true,
  "fee": 0.006235412150598134,
  "invoked": {
    "selector": "0xc10bea5c"
  },
  "category": "trade",
  "net": [
    {
      "account": "0x0093e5f2a850268c0ca3093c7ea53731296487eb",
      "account_metadata": {},
      "asset": "0x1776e1f26f98b1a5df9cd347953a26dd3cb46671",
      "asset_metadata": {
        "name": "Numeraire",
        "symbol": "NMR"
      },
      "type": "fungible",
      "quantity": -29.1094
    },
    {
      "account": "0x0093e5f2a850268c0ca3093c7ea53731296487eb",
      "account_metadata": {},
      "asset": "0x0000000000000000000000000000000000000000",
      "asset_metadata": {
        "symbol": "ETH"
      },
      "type": "fungible",
      "quantity": 0.31519619876901643
    },
    {
      "account": "0xb45a2dda996c32e93b8c47098e90ed0e7ab18e39",
      "account_metadata": {
        "name": "TransitSwap: Router V4",
        "belongs_to": "TransitSwap"
      },
      "asset": "0x1776e1f26f98b1a5df9cd347953a26dd3cb46671",
      "asset_metadata": {
        "name": "Numeraire",
        "symbol": "NMR"
      },
      "type": "fungible",
      "quantity": 0.0873282
    },
    {
      "account": "0x4b1f895066058662b9fa885e87a4e4159be0798a",
      "account_metadata": {
        "name": "Uniswap V3: NMR-ETH 0.3%",
        "belongs_to": "Uniswap"
      },
      "asset": "0x1776e1f26f98b1a5df9cd347953a26dd3cb46671",
      "asset_metadata": {
        "name": "Numeraire",
        "symbol": "NMR"
      },
      "type": "fungible",
      "quantity": 17.41324308
    },
    {
      "account": "0x4b1f895066058662b9fa885e87a4e4159be0798a",
      "account_metadata": {
        "name": "Uniswap V3: NMR-ETH 0.3%",
        "belongs_to": "Uniswap"
      },
      "asset": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "asset_metadata": {
        "symbol": "WETH"
      },
      "type": "fungible",
      "quantity": -0.189098008697845442
    },
    {
      "account": "0xb784ced6994c928170b417bbd052a096c6fb17e2",
      "account_metadata": {
        "name": "Uniswap V2: NMR-ETH",
        "symbol": "UNI-V2",
        "belongs_to": "Uniswap"
      },
      "asset": "0x1776e1f26f98b1a5df9cd347953a26dd3cb46671",
      "asset_metadata": {
        "name": "Numeraire",
        "symbol": "NMR"
      },
      "type": "fungible",
      "quantity": 11.60882872
    },
    {
      "account": "0xb784ced6994c928170b417bbd052a096c6fb17e2",
      "account_metadata": {
        "name": "Uniswap V2: NMR-ETH",
        "symbol": "UNI-V2",
        "belongs_to": "Uniswap"
      },
      "asset": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "asset_metadata": {
        "symbol": "WETH"
      },
      "type": "fungible",
      "quantity": -0.126098190071170988
    }
  ],
  "gross": [
    {
      "account": "0x0093e5f2a850268c0ca3093c7ea53731296487eb",
      "account_metadata": {},
      "asset": "0x1776e1f26f98b1a5df9cd347953a26dd3cb46671",
      "asset_metadata": {
        "name": "Numeraire",
        "symbol": "NMR"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": -29.1094
    },
    {
      "account": "0xb45a2dda996c32e93b8c47098e90ed0e7ab18e39",
      "account_metadata": {
        "name": "TransitSwap: Router V4",
        "belongs_to": "TransitSwap"
      },
      "asset": "0x1776e1f26f98b1a5df9cd347953a26dd3cb46671",
      "asset_metadata": {
        "name": "Numeraire",
        "symbol": "NMR"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": 29.1094
    },
    {
      "account": "0xb45a2dda996c32e93b8c47098e90ed0e7ab18e39",
      "account_metadata": {
        "name": "TransitSwap: Router V4",
        "belongs_to": "TransitSwap"
      },
      "asset": "0x1776e1f26f98b1a5df9cd347953a26dd3cb46671",
      "asset_metadata": {
        "name": "Numeraire",
        "symbol": "NMR"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": -29.0220718
    },
    {
      "account": "0xf7a2f863299c17dfa11cd8a14e7c7dca92f315b9",
      "account_metadata": {},
      "asset": "0x1776e1f26f98b1a5df9cd347953a26dd3cb46671",
      "asset_metadata": {
        "name": "Numeraire",
        "symbol": "NMR"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": 29.0220718
    },
    {
      "account": "0xf7a2f863299c17dfa11cd8a14e7c7dca92f315b9",
      "account_metadata": {},
      "asset": "0x1776e1f26f98b1a5df9cd347953a26dd3cb46671",
      "asset_metadata": {
        "name": "Numeraire",
        "symbol": "NMR"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": -11.60882872
    },
    {
      "account": "0xb784ced6994c928170b417bbd052a096c6fb17e2",
      "account_metadata": {
        "name": "Uniswap V2: NMR-ETH",
        "symbol": "UNI-V2",
        "belongs_to": "Uniswap"
      },
      "asset": "0x1776e1f26f98b1a5df9cd347953a26dd3cb46671",
      "asset_metadata": {
        "name": "Numeraire",
        "symbol": "NMR"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": 11.60882872
    },
    {
      "account": "0xb784ced6994c928170b417bbd052a096c6fb17e2",
      "account_metadata": {
        "name": "Uniswap V2: NMR-ETH",
        "symbol": "UNI-V2",
        "belongs_to": "Uniswap"
      },
      "asset": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "asset_metadata": {
        "symbol": "WETH"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": -0.126098190071170988
    },
    {
      "account": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d",
      "account_metadata": {
        "name": "Uniswap V2: Router 2",
        "belongs_to": "Uniswap"
      },
      "asset": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "asset_metadata": {
        "symbol": "WETH"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": 0.126098190071170988
    },
    {
      "account": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "account_metadata": {
        "symbol": "WETH"
      },
      "asset": "0x0000000000000000000000000000000000000000",
      "asset_metadata": {
        "symbol": "ETH"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": -0.126098190071170988
    },
    {
      "account": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d",
      "account_metadata": {
        "name": "Uniswap V2: Router 2",
        "belongs_to": "Uniswap"
      },
      "asset": "0x0000000000000000000000000000000000000000",
      "asset_metadata": {
        "symbol": "ETH"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": 0.126098190071170988
    },
    {
      "account": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d",
      "account_metadata": {
        "name": "Uniswap V2: Router 2",
        "belongs_to": "Uniswap"
      },
      "asset": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "asset_metadata": {
        "symbol": "WETH"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": -0.126098190071170988
    },
    {
      "account": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "account_metadata": {
        "symbol": "WETH"
      },
      "asset": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "asset_metadata": {
        "symbol": "WETH"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": 0.126098190071170988
    },
    {
      "account": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d",
      "account_metadata": {
        "name": "Uniswap V2: Router 2",
        "belongs_to": "Uniswap"
      },
      "asset": "0x0000000000000000000000000000000000000000",
      "asset_metadata": {
        "symbol": "ETH"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": -0.126098190071170988
    },
    {
      "account": "0x0093e5f2a850268c0ca3093c7ea53731296487eb",
      "account_metadata": {},
      "asset": "0x0000000000000000000000000000000000000000",
      "asset_metadata": {
        "symbol": "ETH"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": 0.126098190071170988
    },
    {
      "account": "0x4b1f895066058662b9fa885e87a4e4159be0798a",
      "account_metadata": {
        "name": "Uniswap V3: NMR-ETH 0.3%",
        "belongs_to": "Uniswap"
      },
      "asset": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "asset_metadata": {
        "symbol": "WETH"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": -0.189098008697845442
    },
    {
      "account": "0xe592427a0aece92de3edee1f18e0157c05861564",
      "account_metadata": {
        "name": "Uniswap V3: Router",
        "belongs_to": "Uniswap"
      },
      "asset": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "asset_metadata": {
        "symbol": "WETH"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": 0.189098008697845442
    },
    {
      "account": "0xf7a2f863299c17dfa11cd8a14e7c7dca92f315b9",
      "account_metadata": {},
      "asset": "0x1776e1f26f98b1a5df9cd347953a26dd3cb46671",
      "asset_metadata": {
        "name": "Numeraire",
        "symbol": "NMR"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": -17.41324308
    },
    {
      "account": "0x4b1f895066058662b9fa885e87a4e4159be0798a",
      "account_metadata": {
        "name": "Uniswap V3: NMR-ETH 0.3%",
        "belongs_to": "Uniswap"
      },
      "asset": "0x1776e1f26f98b1a5df9cd347953a26dd3cb46671",
      "asset_metadata": {
        "name": "Numeraire",
        "symbol": "NMR"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": 17.41324308
    },
    {
      "account": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "account_metadata": {
        "symbol": "WETH"
      },
      "asset": "0x0000000000000000000000000000000000000000",
      "asset_metadata": {
        "symbol": "ETH"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": -0.189098008697845442
    },
    {
      "account": "0xe592427a0aece92de3edee1f18e0157c05861564",
      "account_metadata": {
        "name": "Uniswap V3: Router",
        "belongs_to": "Uniswap"
      },
      "asset": "0x0000000000000000000000000000000000000000",
      "asset_metadata": {
        "symbol": "ETH"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": 0.189098008697845442
    },
    {
      "account": "0xe592427a0aece92de3edee1f18e0157c05861564",
      "account_metadata": {
        "name": "Uniswap V3: Router",
        "belongs_to": "Uniswap"
      },
      "asset": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "asset_metadata": {
        "symbol": "WETH"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": -0.189098008697845442
    },
    {
      "account": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "account_metadata": {
        "symbol": "WETH"
      },
      "asset": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "asset_metadata": {
        "symbol": "WETH"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": 0.189098008697845442
    },
    {
      "account": "0xe592427a0aece92de3edee1f18e0157c05861564",
      "account_metadata": {
        "name": "Uniswap V3: Router",
        "belongs_to": "Uniswap"
      },
      "asset": "0x0000000000000000000000000000000000000000",
      "asset_metadata": {
        "symbol": "ETH"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": -0.189098008697845442
    },
    {
      "account": "0x0093e5f2a850268c0ca3093c7ea53731296487eb",
      "account_metadata": {},
      "asset": "0x0000000000000000000000000000000000000000",
      "asset_metadata": {
        "symbol": "ETH"
      },
      "type": "fungible",
      "transfer_type": "move",
      "quantity": 0.189098008697845442
    }
  ]
}

Categories

The category field is the most important piece of information generated by the Hashless Transaction Interpreter because it tells you what the overall treatment of a transaction should be. For example, a transaction may contain only a single asset movement, but that movement might represent either a regular token transfer (transfer category) or a redeemable deposit (deposit category), with very different implications for the assets and liabilities of the sending and receiving accounts.

Refer to Transaction Categories for a complete list of categories supported by Hashless and the financial semantics associated with each.

Net Balance Changes

The net field gives you the net financial impact, in terms of asset movements, as of the end of the transaction. Each account and asset pair that is affected by the transaction will be listed. Positive amount values represent net credits made to that account's balance in the particular asset, while negative values represent net debits.

In this case, the transaction is a trade that results in the initiating wallet, or transaction principal, being credited a small amount of Ether in return for selling the Numeraire (NMR) token. This trade is executed via the TransitSwap trade router with liquidity provided by both the Uniswap V2 and Uniswap V3 NMR/ETH liquidity pools (which each have their own net balance changes representing the subset of the trade they filled). In addition, the TransitSwap router takes a fee, so it receives a small credit denominated in NMR.

We've optimized the format of the net field to make it easy to use this data in your own aggregations or to apply other business logic needed for your application (often this will vary based on the transaction's category).

Gross Asset Movements

Hashless takes care of normalizing the variety of asset transfer event types that exist in Ethereum:

  • ERC-20 (Token) asset transfers (Transfer)
  • ERC-721 (NFT) transfers (Transfer)
  • Individual ERC-1155 transfers (TransferSingle)
  • Bulk ERC-1155 transfers (TransferBatch)

Additionally, Hashless handles nonstandard or malformed transfer event types that some contracts emit, where those contracts are still widely understood to represent Token or NFT assets – sometimes due to being deployed before the relevant standards existed.

📘

ERC-721 and ERC-1155 asset movements will have an additional sub_asset field denoting the individual asset (the specific item in an NFT collection, for example) being transferred.

Asset movements appear in the gross list in the order they were performed in the transaction. For some protocols, this can be confusing. For example, Uniswap V3 trades typically send the purchased asset to the destination address before transferring the sold asset from the user's wallet.

📘

Automatic Decimalization

If you're used to working with raw Ethereum RPC data, you may be used to dealing with raw integer quantities to denote asset amounts. Hashless handles decimalization of amounts into display quantities for you. See Amounts and Numeric Precision in the Hashless API


Did this page help you?