> ## Documentation Index
> Fetch the complete documentation index at: https://docs.uzolabs.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Blob API

> Reference for BOT Chain's blob sidecar RPC methods, such as eth_getBlobSidecarByTxHash.

Read EIP-4844 blob data from a BOT Chain node. BOT Chain stores blob sidecars on the execution layer, so it serves them through two extra `eth_` methods instead of Ethereum's Beacon API. Source: BOT Chain's [Blob API page](https://dev-docs.botchain.ai/docs/Developers/blob-api/).

Both methods answered on both public RPCs on 2026-10-01.

## eth\_getBlobSidecarByTxHash

Returns the blob sidecar for one blob transaction.

<ParamField body="hash" type="string" required>
  Transaction hash, as a hex string.
</ParamField>

<ParamField body="full_blob_flag" type="boolean" default="true">
  If `true`, returns the full blobs. If `false`, returns only the first 32 bytes of each blob.
</ParamField>

```bash get-sidecar-by-tx.sh theme={"dark"}
curl -s https://rpc.bohr.life \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_getBlobSidecarByTxHash","params":["0x0000000000000000000000000000000000000000000000000000000000000000",false]}'
```

Returns `null` if the transaction doesn't exist or carries no blobs.

## eth\_getBlobSidecars

Returns the blob sidecars for every blob transaction in a block.

<ParamField body="block" type="string" required>
  Block number as hex, block hash, or one of the tags `earliest`, `latest`, `safe` or `finalized`.
</ParamField>

<ParamField body="full_blob_flag" type="boolean" default="true">
  If `true`, returns the full blobs. If `false`, returns only the first 32 bytes of each blob.
</ParamField>

```bash get-sidecars.sh theme={"dark"}
curl -s https://rpc.bohr.life \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_getBlobSidecars","params":["latest",false]}'
```

Returns an empty array if the block has no blob transactions.

Returns `null` for a block that doesn't exist yet.

## Response shape

BOT Chain's docs don't describe the response fields. We sent a blob transaction on testnet on 2026-10-02 and captured this response from `eth_getBlobSidecarByTxHash` with `full_blob_flag` set to `false`:

```json response.json theme={"dark"}
{
  "blobSidecar": {
    "blobs": ["0x0000000000000000140000000000000000000000000000000000000000000000"],
    "commitments": ["0x9732e36cf9d17dffd555150cc0023412166076f6591b3143debcf8a8bbbdcdbd385ca69471402fd0b81c78e86c658b18"],
    "proofs": ["0x8b8bc807b9fd67ed0d40e7b6b55982a83e519a7b51efe208e1e747730daf063103b42cffe13248871baf40ac9be3467b"]
  },
  "blockHash": "0x3ca8c9953eb68bac23eff75ec0263abc739f3d6c796b6173830b8effbcab1ab3",
  "blockNumber": "0x18383ca",
  "txHash": "0x2fdbde3757d070add8cd74be3b7f9d7a2f2d7fc056be4d635d4c315b764de5df",
  "txIndex": "0x0"
}
```

`eth_getBlobSidecars` returns an array of these objects, one per blob transaction in the block.

<ResponseField name="blobSidecar.blobs" type="string[]">
  One entry per blob. Each full blob is 131,072 bytes. With `full_blob_flag` set to `false`, you get only the first 32 bytes.
</ResponseField>

<ResponseField name="blobSidecar.commitments" type="string[]">
  The KZG commitment for each blob, 48 bytes each.
</ResponseField>

<ResponseField name="blobSidecar.proofs" type="string[]">
  The KZG proof for each blob, 48 bytes each.
</ResponseField>

<ResponseField name="blockHash" type="string">
  Hash of the block that includes the transaction.
</ResponseField>

<ResponseField name="blockNumber" type="string">
  Block number, as hex.
</ResponseField>

<ResponseField name="txHash" type="string">
  Hash of the blob transaction.
</ResponseField>

<ResponseField name="txIndex" type="string">
  Position of the transaction in the block, as hex.
</ResponseField>

## Send a blob transaction

BOT Chain accepts blobs in the original EIP-4844 format, with one proof per blob. It does not accept the newer EIP-7594 (PeerDAS) format, which recent Foundry versions use by default. With Foundry, add `--eip4844`:

```bash send-blob.sh theme={"dark"}
echo "hello from BOT Chain" > blob.txt
cast send YOUR_ADDRESS --blob --eip4844 --path blob.txt --rpc-url https://rpc.bohr.life --account uzo-dev
```

Without `--eip4844`, the node rejects the transaction with `rlp: expected input list for []kzg4844.Blob`. Our test transaction used 131,072 blob gas at a blob gas price of 1 wei.

## Blob fees

Blob gas has its own fee market. Read the current blob base fee with `eth_blobBaseFee`. It was `1` wei on both networks on 2026-10-01.

```bash blob-base-fee.sh theme={"dark"}
cast rpc eth_blobBaseFee --rpc-url https://rpc.bohr.life
```

## Related pages

<CardGroup cols={2}>
  <Card title="Supported EIPs" icon="list-checks" href="/get-started/bot-chain/supported-eips">
    EIP-4844 and other upgrades.
  </Card>

  <Card title="Differences from Geth" icon="git-compare" href="/reference/json-rpc/differences-from-geth">
    Why blobs live on the execution layer.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.