# Usage with Bundlr

Currently [Warp Contracts](https://warp.cc/) only support transactions that are below 2KB in size; however you can put arbitrarily large values with the following trick:

* upload the large value to [Bundlr](https://docs.bundlr.network/) network
* retrieve the transaction id for that value
* put the transaction id in the key-value storage

To retrieve the value, simply get the transaction id from the storage and read the value from Arweave with:

```javascript
const response = await fetch(`https://arweave.net/${transactionId}`);
```

In other words, you will store `key, valueTxId` instead of `key, value`!&#x20;

This will enable you to store arbitrarily large amounts of data, and retrieve them with respect to their transaction ids, also while reducing the overall size of the contract cache. Albeit, it comes with the cost of paying fees for Bundlr.

You can refer to the code below as an example of uploading a value to Bundlr network.

```javascript
const Bundlr = require('@bundlr-network/client');

async function upload(jwk, largeValue) {
  const bundlr = new Bundlr.default('http://node1.bundlr.network', 'arweave', jwk);
  const tags = [{name: 'Content-Type', value: 'application/json'}];
  const transaction = await bundlr.createTransaction(
    JSON.stringify({
      data: largeValue,
    }),
    {
      tags: tags,
    }
  );

  await transaction.sign();
  const txID = transaction.id;

  // you can choose to not await this if you want to upload in the background
  // but if the upload fails, you will not be able to get the data from the txid
  await transaction.upload();

  return txID;
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hollowdb.xyz/hollowdb/usage-with-bundlr.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
