Sats Connect - Wallet API for Bitcoin & Stacks
  • Introduction
  • Wallet Providers
    • getInfo
    • getProviders & getProviderById
  • Connecting to the wallet
    • Connect to Xverse Wallet
    • Disconnect from Xverse Wallet
    • Connect to other wallets
      • Manage a user's default wallet
    • [Legacy ⚠️] getAccounts
  • Wallet Methods
    • request methods
    • wallet_getAccount
    • wallet_getNetwork
    • wallet_changeNetwork
    • Xverse Custom Methods
  • Xverse Wallet Permissions
  • Xverse Wallet events
  • BITCOIN METHODS
    • 🟠getAddresses
    • 🟠signMessage
    • 🟠signPsbt
    • 🟠sendTransfer
    • 🟠signMultipleTransactions
    • 🟠getBalance
    • 🎨createInscription
    • 🎨createRepeatInscriptions
    • 🎨ord_getInscriptions
    • 🎨ord_sendInscriptions
    • 🔲runes_getBalance
    • 🔲runes_transfer
    • 🔲Mint Runes
      • runes_estimateMint
      • runes_mint
    • 🔲Etch Runes
      • runes_estimateEtch
      • runes_etch
    • 🔲runes_getOrder
    • 🔲Speed up a Rune Mint or Etch order
      • 🔲runes_estimateRbfOrder
      • 🔲runes_rbfOrder
  • STACKS METHODS
    • 🔴stx_getAccounts
    • 🔴stx_signMessage
    • 🔴stx_signStructuredMessage
    • 🔴stx_transferStx
    • 🔴stx_signTransaction
    • 🔴stx_callContract
    • 🔴stx_deployContract
  • GUIDES
    • Verify Bitcoin message signatures
    • Creating Bitcoin PSBTs
    • 📱Mobile Integration
    • Next.js support
  • RESOURCES
    • App Template
    • Demo App
    • Changelog
    • Github Issues
    • Developer forum
    • BIP322
Powered by GitBook
On this page
  1. BITCOIN METHODS

createInscription

PreviousgetBalanceNextcreateRepeatInscriptions

Last updated 1 year ago

This is an . It can only be invoked for users using the .

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.

Payload
Description

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"),
});

🎨
Xverse custom method
Xverse wallet