Sign DataItem

ArConnect Injected API signDataItem() function

The signDataItem() function allows you to create and sign a data item object, compatible with arbundles. These data items can then be submitted to an ANS-104 compatible bundler.

Argument
Type
Description

dataItem

The bundled data item to sign

Note: This function requires the SIGN_TRANSACTION permission.

Warning: The function returns a buffer of the signed data item. You'll need to manually load it into an arbundles DataItem instance as seen in the example usage.

Data item

This function requires a valid data item object, like so:

export interface DataItem {
  data: string | Uint8Array;
  target?: string;
  anchor?: string;
  tags?: {
    name: string;
    value: string;
  }[];
}

Example usage

import { DataItem } from "arbundles";

// connect to the extension
await window.arweaveWallet.connect(["SIGN_TRANSACTION"]);

// sign the data item
const signed = await window.arweaveWallet.signDataItem({
  data: "This is an example data",
  tags: [
    {
      name: "Content-Type",
      value: "text/plain",
    },
  ],
});

// load the result into a DataItem instance
const dataItem = new DataItem(signed);

// now you can submit it to a bunder
await fetch(`https://upload.ardrive.io/v1/tx`, {
  method: "POST",
  headers: {
    "Content-Type": "application/octet-stream",
  },
  body: dataItem.getRaw(),
});

Last updated