Transactions API

The blobs one Ethereum transaction carried

The EIP-4844 blobs a transaction carried — versioned hash, KZG commitment and proof, size, and the blob data on request.

GET/api/external/transaction-analysis/transaction-blobs/{chain}/{hash}

What it returns

The EIP-4844 blobs a transaction carried, in the order it carried them: the versioned hash, the KZG commitment and proof, and how many bytes of blob data there are. blobCount is 0 with an empty list when the transaction carried no blobs — a real answer, not a missing one; an unknown transaction hash returns 404. A blob is 128 KiB of data, which is 262146 characters once it is hex on the wire, so the data itself is left out unless includeData=true is asked for: a six-blob transaction is a 1.57 MB response body. kzgCommitment, kzgProof and dataBytes can be null together while the source is still indexing a newly seen blob — that is "not yet", never "none", and it has been seen once in 27 reads, at about a minute of age. dataBytes is what tells a missing blob apart from an unrequested one: it is published whether or not the data was asked for, so a blob with dataBytes set and data null simply was not asked for.

Chains

  • Ethereum ETH

Request

Send your key in the x-dex-data-key header. Replace each <placeholder> with a real value.

curl -H "x-dex-data-key: $DEXDATA_API_KEY" \
  "https://api.dexdata.io/api/external/transaction-analysis/transaction-blobs/ETH/<hash>"
Parameters
ParameterDescription
includeData

query · boolean · optional

Whether to return the blob data itself. Off by default: each blob is 128 KiB of data, 262146 characters as hex, and a transaction may carry six — 1.57 MB of response body. The metadata is the same either way.
chain

path · string · required

ETH only. Blobs are an Ethereum EIP-4844 feature; every other chain returns 400.
hash

path · string · required

The transaction hash: 0x followed by 64 hexadecimal characters. Not a Solana signature (base58) — Solana is not served by this resource.

Response fields

A JSON response. Every field is always present; null means the value could not be established, never zero.

Response fields of The blobs one Ethereum transaction carried
FieldTypeDescription
blobCountintegerHow many blobs the transaction carried. 0 means it carried none.
blobsobject[]In the order the transaction carried them. Empty when it carried no blobs.
blobs[].versionedHashstringThe blob's versioned hash — 0x01 followed by 31 bytes of the commitment's hash. This is what the transaction commits to on chain.
blobs[].kzgCommitmentstring | nullThe KZG commitment, 0x + 48 bytes. null while the blob is still being indexed. Since the Fulu fork the proof of a single blob is no longer a proof of its own: every blob measured carries the 48-byte infinity point as its proof, and the commitment is the field that identifies the blob cryptographically.
blobs[].kzgProofstring | nullThe KZG proof, 0x + 48 bytes. null while the blob is still being indexed.
blobs[].dataBytesinteger | nullHow many bytes of blob data there are — 131072 for an indexed blob, the only size EIP-4844 defines. null when the blob is still being indexed, and null as well in the rare case where the source answered a length this endpoint cannot vouch for, which it reports rather than publishes.
blobs[].datastring | nullThe blob itself, 0x + 131072 bytes of hex, only when includeData=true was asked for AND the blob is indexed. null otherwise — dataBytes says which.

Start building with DexData today

Sign in, create a key and make your first call in a minute. Free credits every month, and you only pay for calls that succeed.

Get a free API key