🎨createInscription

This is an Xverse custom method. It can only be invoked for users using the Xverse wallet.

import { createInscription } from 'sats-connect'

You can request the creation of an inscription via the user's wallet. The inscription transaction will originate from the user's wallet address and the inscribed sats will appear directly in the user's ordinals address. You can create both text and file inscriptions.

You can optionally charge a fee to the user for your service by specifying a fee amount and receiving address using the appFee and appFeeAddress parameters. The fee will be included as an additional output in the inscription transaction.

Once approved by the user, the inscription transactions are immediately broadcast. The function will return a transaction ID which you can track.

PayloadDescription

network

The Network type you want to use. Please note that inscriptions currently only support Mainnet.

contentType

The content/mime type of the content being inscribed. It is up to you to extract and send through the correct content type for the content.

payloadType

The format of the content being sent through. (one of "PLAIN_TEXT" or "BASE_64")

content

The content being inscribed. If the `payloadType` has been set to "PLAIN_TEXT", this content will be inscribed directly; if set to "BASE_64", the content will be converted into a binary buffer before being inscribed (use this for image and other binary files).

appFee (optional)

If you would like to charge a fee for your services, add the sats value here.

appFeeAddress (optional)

This is the address where your appFee will be sent.

suggestedMinerFeeRate (optional)

This will be the initial fee rate set for the transaction in the confirmation dialog. The user will be able to change it within the wallet if they desire.

Examples

Creating a text/html inscription

import { createInscription } from 'sats-connect'

const contentType = "text/html"; 
const content = "My inscription text";
const payloadType = "PLAIN_TEXT";

// optional parameters:
const appFeeAddress = "2NEYt8s1QPVmTmFTefMLidtmy66ZoqfSz7n", // the address where the inscription fee should go
const appFee = 1500, // the amount of sats that should be sent to the fee address
const suggestedMinerFeeRate = 10; // suggest a fee rate for the transaction in sats/byte

await createInscription({
  payload: {
    network: {
      type: network,
    },
    contentType,
    content,
    payloadType,
    appFeeAddress,
    appFee,
    suggestedMinerFeeRate,
  },
  onFinish: (response) => {
    alert(response.txId);
  },
  onCancel: () => alert("Canceled"),
});

Creating a file or image inscription

const content = ""; // Your base64 encoded file/image content
const contentType = "image/jpeg";
const payloadType = "BASE_64";

await createInscription({
  payload: {
    network: {
      type: network,
    },
    contentType,
    content,
    payloadType,
  },
  onFinish: (response) => {
    alert(response.txId);
  },
  onCancel: () => alert("Canceled"),
});

Last updated