unisat-dev-docs

Inscribe FAQ

How to pay after creating an order?

The order will start inscribing once the “payAddress” receives the required “amount”. For example, if an order requires 3000 satoshis, you have to send 3000 satoshis to the payAddress. After that, the inscription will be processed.

How is the open-api order charged?

Please refer to the latest Fractal Inscribe Fee Rules, Fractal Standard Inscribe Fee Rules, and Bitcoin Inscribe Fee Rules for detailed charging standards.

Are the orders on the open-api and the UniSat website interoperable?

No. Open API and UniSat website inscribing services do not share data. This ensures the stability of the Open API interface and prevents it from being affected by frequent changes to the website inscribing service. For similar reasons, the orders on open-api do not enjoy discounts from the OG card or .unisat domain.

How many files can I submit for each order?

How to calculate the total amount to pay for an order?

The total amount is: Total = minUtxoTotal + networkSats + serviceFee + devFee

How to estimate the service fee?

Please use the formulas and examples provided in the Fractal Inscribe Fee Rules and Bitcoin Inscribe Fee Rules. If you need programmatic estimation, please use the official SDK or tools that follow the latest rules.

What are the file and network fee limits?

For more details, always refer to the latest fee rules documentation.

Example: Estimate Total Payment in JavaScript

Below is a sample JavaScript function to estimate the total amount to pay for an inscribe order. Please ensure the service fee calculation matches the latest fee rules for your chosen network (Fractal or Bitcoin).

// Parameters
const fileCount = 1000; // number of inscriptions/files
const minUtxoPerInscription = 546; // minimum UTXO per inscription (sats)
const fileSize = 1000000; // total size of all files in bytes
const contentTypeSize = 100; // total size of content types in bytes
const feeRate = 10; // network fee rate (sat/vB)
const devFee = 1000; // developer fee (if any)

// 1. Calculate minUtxoTotal
const minUtxoTotal = minUtxoPerInscription * fileCount;

// 2. Estimate networkSats (miner fee)
// This is a simplified estimation. Actual calculation may vary by implementation.
const baseSize = 88;
const addrSize = 25 + 1; // adjust if using different address types
const networkSats = Math.ceil(((fileSize + contentTypeSize) / 4 + (baseSize + 8 + addrSize + 8 + 23)) * feeRate);

// 3. Calculate serviceFee (platform fee)
// You must implement this function according to the latest fee rules for your network.
function calculateServiceFee({ fileCount, networkType }) {
  if (networkType === 'bitcoin') {
    // Example: Bitcoin V2 rules (see btc-inscribe-fee-rules.md)
    if (fileCount <= 20) return 0;
    return Math.min(3000 + (fileCount - 20) * 150, 4999);
  } else if (networkType === 'fractal') {
    // Example: Fractal event rules (see fractal-openapi-inscribe-fee-rules.md)
    if (fileCount <= 6) return fileCount * 100000;
    // 1 FB = 100,000,000 sats
    const fb = 100000000;
    const fee = 0.005 * fb + Math.min(fileCount, 500) * 0.00025 * fb;
    return Math.ceil(fee);
  }
  // Add more networks as needed
  return 0;
}

const networkType = 'bitcoin'; // or 'fractal'
const serviceFee = calculateServiceFee({ fileCount, networkType });

// 4. Add devFee if applicable

// 5. Calculate total amount
const totalAmount = minUtxoTotal + networkSats + serviceFee + devFee;

console.log('Total amount to pay:', totalAmount);

Note: