Batch Decoder API

Decode Ethereum L2s batch transactions to its human-readable, JSON format.

The Blocknative Decoding API offers:

  • Effortless Decoding: No more manual decoding and deciphering of bytes of data. We do all the complicated computation decoding the data and seamlessly translating it into a clear, human-readable format so that you can spend less time troubleshooting and more time building.

  • No Expensive Storage: We store ephemeral blob data so you don’t have to. You will be able to call upon any past transaction and pull up the details even after the 4096 epoch window.

  • No Maintenance Headaches: No need to worry about format changes that occur. We handle all the updates behind the scenes, ensuring your API calls are always accurate.

  • Enhanced Observability: Backend developers and end-users can track the status of their transactions down to the L1 at any point in the journey.

Supported Networks

The Blocknative Decoding API currently supports the following networks:

  • Optimism:

    • Optimism

    • Base

    • Mode

    • Zora

    • Kroma

    • Blast

  • Arbitrum:

    • Arbitrum

  • zksync:

    • ZKsync

We are committed to the ongoing development of batch decoding. Support for additional chains is on the horizon. If you would like to request support of a chain please go to the Blocknative discord.

API Endpoint

GET https://api.ethernow.xyz/v1/batch/<tx_hash>

Input the transaction hash of a batch and the decoded data is returned. You can query any batch - pending or confirmed. The API supports decoding of calldata (type-2) and blobdata (type-3).

Query Parameters

Example Request

https://api.ethernow.xyz/v1/batch/0x02f505c98aa74d629ecfde0fff21df969542394661804f4ea26a6e0c1fc43600

Example Response

{
  "network": "optimism",
  "chainId": 10,
  "data": {
    "blob": {
      "txCount": 1005,
      "frames": [
        {
          "channelID": "4739f7d92319e39c651811d37e0fdc42",
          "frameNumber": 4,
          "isLast": true,
          "blocksCount": 91,
          "txsCount": 1005,
          "batchType": 1,
          "batches": [
            {
              "batch": {
                "relTimestamp": 31371628,
                "l1OriginNum": 20013189,
                "parentCheck": "0x8d8d5ab78a42bc90fe77091a5a963e8cb2a66dc5",
                "l1OriginCheck": "0x62e8503ae912a7dd64fdccec400d2f4ff961acce",
                "blocksCount": 91,
                "originBits": 6.287949405896787e+26,
                "blockTxCounts": 1005,
                "txs": [
                  [
                    {
                      "from": "0xEBFce130290083da707F5053568a90B7BDE7eB83",
                      "to": "0xC110E7FAA95680c79937CCACa3d1caB7902bE25e",
                      "gasLimit": 264439,
                      "maxFeePerGas": 73468696,
                      "maxPriorityFeePerGas": 73468696,
                      "nonce": 0,
                      "value": 334155400000000000,
                      "data": "0x6b634a62",
                      "gasPrice": 73468696,
                      "chainId": 10,
                      "hash": "0xb3ba553c696b36b26c336fd73563e453fbffde73e1450062d84b925fc282eda6"
                    },
                    ...

Description of Terms

Last updated