> For the complete documentation index, see [llms.txt](https://blocknote-js.gitbook.io/doc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://blocknote-js.gitbook.io/doc/upload-content/blocknotemanager/methods.md).

# Methods

### <mark style="color:$primary;">prepareBootstrapTransaction</mark>

Create a bootstrap transaction for the user to fund the upload process.

#### Parameters&#x20;

<table><thead><tr><th width="130">Name</th><th width="394">Description</th><th>Type</th></tr></thead><tbody><tr><td>user_address</td><td>The actual public user's address</td><td>string </td></tr><tr><td>raw_content</td><td>The content to upload</td><td>string, uint8array, buffer</td></tr><tr><td>options</td><td>see the options table below</td><td>object</td></tr></tbody></table>

#### Options

<table><thead><tr><th width="131">Name</th><th width="418">Description</th><th width="106">Type</th><th>Default</th></tr></thead><tbody><tr><td>title</td><td>The content's title</td><td>string, null</td><td>Untitled</td></tr><tr><td>mime </td><td>The content's mime type</td><td>string</td><td>plain/text</td></tr><tr><td>compression</td><td><p></p><ul><li>If not set, Blocknote will automaticaly choose the best compression for the given data.</li><li>The compression algorithm's name: <code>brotli, gzip, lz-string, pako, zstd, snappy</code></li><li>"<code>fast</code>" will choose the fastest compression for the given content.</li><li>"<code>none</code>" won't compress the data.</li></ul></td><td>string</td><td></td></tr><tr><td>revision_of</td><td>The original payload transaction id of the file to update.</td><td>string</td><td></td></tr><tr><td>fee_multiplier</td><td>By default, the user will be asked to fund slightly more than the minimum amount required. Each transaction fee is multiplied by <code>fee_multiplier</code>. This helps prevent losing funds if network fees suddenly increase during the upload. Any unused funds are sent back to the user when the upload is complete. <br><br><code>fee_multiplier</code> can be set to any value, even zero. However, keep in mind that using the exact minimum amount may cause the upload to fail if fees rise.</td><td>number</td><td>3</td></tr></tbody></table>

#### **Return**

&#x20;A  `uuid`  then an object when the process is done.\
The object contains the bootstrap transaction base64 encoded and the bootstrap key.\
To decode the transaction on the frontend, use:\
`algosdk.decodeUnsignedTransaction(algosdk.base64ToBytes(transaction));`

<details>

<summary>View a response example</summary>

```json5
{
    status: "done",
    result: {
        output: {
            start: 1766890150232,
            simulation: true,
            fees: 14000,
            compression: {
                compression: "brotli",
                original_size: 13808,
                compressed_size: 13008
            },         
            end: 1766890150422,
            duration: 190,
            payload: {
                version: 0.1,
                title: "SSZ20.webp",
                mime: "image/webp",
                size: 13808,
                addid: 635903688,
                accid: 1398542059,
                compression: "brotli",
                txns: 13
            },
            funding: {
                amount: 245000,
                expected_refund: 228000
            }
        },
        key: "ViGbHpIjVfMYK0pWoy6SltPei5/i6EHVdrcgvKFN/5w=",
        transaction: "iqNhbXTOAAO9CKNmZWXNA+iiZnbOA4MFPKNnZW6sdGVzdG5ldC12MS4womdoxCBIY7UYpLPITsgQ8i1PEIHLD3HwWaesIN7GL39w5Qk6IqJsds4DgwkkpG5vdGXFAuB7ImFwcCI6ImJsb2Nrbm90ZS5zcGFjZSIsImJsb2Nrbm90ZSI6ImV5SnBkaUk2SWpFNE5qWmhNREU0WVRNell6YzNOVFl6TkdVelpUQTFPU0lzSW1SaGRHRWlPaUl6TXpKbVpqSTFZbVl3T0dVek5qTTBaak13Wm1ZNE5XUmxNak5qTURrNFpXTTVaVFUyWVRkaVpHUmlaR0ZoTkRkaVpXRXhaR1E0Tnpjell6RmlaRGMzWVdWa016WTRZVGczTVRSa01XRTJNMlUxTTJFM1lUYzBOelkwWVRNNE9EY3lOMkl3TUROaVltSmpZV1k0TUdSaU9USXpaakZoTkRFeFl6WmhPREpoTlRsaFltUmtOVEV3TjJJNVlqYzRNamN6WWpNNU5EWTVPRFpsWlRZeU56VXdNVFpoT0dZM1pUVTVaR0ppTnpCbFlUSXdNRGs0WXpZMU5ETXlOVEl3TmpVM1pETXhaV1F3WlROalpEZzBORE5tTWpobU4yWmtPREJpWkdOa056UTJOekUzWkRSbFkyVTNNakl6WkRKa09EUTNZakEyTW1Fd1lqUXhNVFF4TldFMlpXUmpPR1prTW1FMlpEazNaVGxqTWpNM1l6YzFPVGRqWXprM05qRmlaR1F4TTJJd00yUmxObUl3TVRFNVlqRm1aR1l3WlRCaFkyUmlaREpoTW1Nd1ltUTJNRGd4Tnprek9UVTBNVEl6WkdVeU1XUmhPRE5sWmpoaE1qWmpPREUwWVRFME1UWXpaV1JrTjJJNE5qZzVOR1E0TldFM056WTJPR0kxWWpSaU1XSmlOelZoT1dRME5HTXlObVpoTXpWak1EVTVOVEk0TURBM09URTBNR0V3TkRKaFlUVTJZekJtTW1RME16a3dZelEyWXpFNE1tTWlMQ0owWVdjaU9pSmpObUV3TVRRelltWmhNVGc1TmpWaU0yVmxNMk5pT1RobU1UUTRNREpoTnlKOSJ9o3JjdsQgZwl70IKs4lQ2Nr5VsrCr2gMKmptXz69IQjL6gk6Sx4ujc25kxCDbYTsPFKs6EW2wL70uezPf7Ac1drt6g0oHXixZn79edKR0eXBlo3BheQ=="
    }
}
```

</details>

***

### <mark style="color:$primary;">runFromBootstrapTransaction</mark>

Starts the upload from a bootstrap transaction

#### Parameters

<table><thead><tr><th width="213">Name</th><th width="405">Description</th><th>Type</th></tr></thead><tbody><tr><td>bootstrap_transaction_id</td><td>The id of the bootstrap transaction created by <code>prepareBootstrapTransaction()</code> that the user must sign and send from the frontend.</td><td>string</td></tr><tr><td>key</td><td>The bootstrap key created by <code>prepareBootstrapTransaction()</code></td><td>string</td></tr><tr><td>encryption</td><td>Encryption details.<br>View 'Encryption' table below.</td><td>object, null</td></tr></tbody></table>

#### Encryption

<table><thead><tr><th width="130">Name</th><th width="477">Description</th><th>Default</th></tr></thead><tbody><tr><td>aes_key</td><td>An aes_key to encrypt the content</td><td></td></tr><tr><td>password</td><td>A password to encrypt the content</td><td></td></tr><tr><td>encrypt_title</td><td>When encryption is enabled (by setting an <code>aes_key</code> or <code>password</code>), the title is encrypted by default.<br>To leave the title unencrypted, set <code>encrypt_title</code> to <code>false</code>.</td><td>true</td></tr></tbody></table>

#### **Return**

&#x20;A `uuid` then an object when the process is done

<details>

<summary>View a response example</summary>

```json5
{
    status: "done",
    result: {
        start: 1766890377833,
        simulation: false,
        fees: 14000,
        compression: {
            compression: "brotli",
            original_size: 13808,
            compressed_size: 13008
        },
        payload_transaction_id: "U4LUISI2BQRVMXIY5NNAIUKOUMEGSJ4E2BMVBSOEANICS6KXKORQ",
        end: 1766890393710,
        duration: 15877,
        payload: {
            version: 0.1,
            title: "SSZ20.webp",
            mime: "image/webp",
            size: 13808,
            addid: 1942554040,
            accid: 1485299844,
            compression: "brotli",
            txns: 13
        }
    }
}
```

</details>

***

### <mark style="color:$primary;">getPayload</mark>

#### Parameters

<table><thead><tr><th>Name</th><th width="478">Description</th><th>Type</th></tr></thead><tbody><tr><td>payload_id</td><td>The transaction ID of the payload</td><td>string</td></tr></tbody></table>

#### **Return**

&#x20;A `uuid` then a payload object when the process is done

***

### <mark style="color:$primary;">getPayloadRevisions</mark>

Retrieve the transaction ids of each revisions of the given payload.

#### Parameters

<table><thead><tr><th>Name</th><th width="478">Description</th><th>Type</th></tr></thead><tbody><tr><td>payload_id</td><td>The transaction ID of the payload</td><td>string</td></tr></tbody></table>

#### Return

&#x20;A `uuid` then an array of transactions id representing each revisions payload.

***

### <mark style="color:$primary;">read</mark>

Create a `BlocknoteReader` instance and invoke its method `read()` into an async queue.

#### Parameters

<table><thead><tr><th>Name</th><th width="482">Description</th><th>Type</th></tr></thead><tbody><tr><td>payload_id</td><td>The payload_id of the uploaded content to read.</td><td>string</td></tr><tr><td>options</td><td>View <a href="/pages/oPwpGD5btOh88uEYw61r#options">BlocknoteReader options</a></td><td>object</td></tr></tbody></table>

#### Return

&#x20;A `uuid` then `BlocknoteReader.read()` result when the process is over

<details>

<summary>View a response example</summary>

```json5
{
  payload: {
    version: 0.1,
    title: 'Sales report 2025',
    mime: 'application/pdf',
    size: 19851,
    addid: 260321436,
    accid: 1583377570,
    compression: 'brotli',
    txns: 16
  },
  content: <Buffer 25 50 44 46 2d 31 2e 34 0a 31 20 30 20 6f 62 6a 0a 3c 3c 0a 2f 54 69 74 6c 65 20 28 fe ff 00 4d 00 61 00 72 00 6b 00 64 00 6f 00 77 00 6e 00 20 00 54 ... 19801 more bytes>
}

```

</details>

***

### <mark style="color:$primary;">getAllSenders</mark>

Retrieve all the senders funded by the given `user_address` (funder -> **senders** -> receivers). \
Senders are identified onchain using the `AES_PRIVATE_KEY` and the `APP_NAME` from the .env file that was used for the uploads.\
If you change one of those, the method won't be able to identify the senders.

#### Parameters

<table><thead><tr><th width="171">Name</th><th width="436">Description</th><th>Type</th></tr></thead><tbody><tr><td>user_address</td><td>the actual public user's address</td><td>string</td></tr></tbody></table>

#### Return

&#x20;A list of senders (funder -> **sender** -> receiver)

***

### <mark style="color:$primary;">getPayloadIDFromSender</mark>

#### Parameters

<table><thead><tr><th>Name</th><th width="473">Description</th><th>Type</th></tr></thead><tbody><tr><td>sender</td><td>A sender public address</td><td>string</td></tr></tbody></table>

#### Return

The payload's transaction id sent by the given sender to a receiver (funder -> **sender** -> receiver)

***

### <mark style="color:$primary;">getBootstrapSenderMnemonic</mark>

#### Parameters

<table><thead><tr><th>Name</th><th width="466">Description</th><th>Type</th></tr></thead><tbody><tr><td>sender</td><td>A sender public address</td><td>string</td></tr><tr><td>receiver</td><td>The receiver public address</td><td>string</td></tr></tbody></table>

#### Return

The sender's mnemonic (funder -> **sender** -> receiver) encrypted into the note of the bootstrap transaction.
