Full-Cycle BRC-20 Token Development Service on Bitcoin Ordinals

Launching a token on Bitcoin via the [Ordinals](https://en.wikipedia.org/wiki/Ordinals_(protocol)) protocol comes with many technical pitfalls: two-step transfer, UTXO dependency, and differing indexers. We are a team of blockchain engineers with 10+ years of experience in Ethereum and Bitcoin. We d

Blockchain Development Services

Frequently Asked Questions

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1452
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1310
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    1005
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1270
  • image_logo-advance_0.webp
    B2B Advance company logo design
    719
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    1012

Launching a token on Bitcoin via the Ordinals protocol comes with many technical pitfalls: two-step transfer, UTXO dependency, and differing indexers. We are a team of blockchain engineers with 10+ years of experience in Ethereum and Bitcoin. We develop BRC-20 tokens turnkey: from deployment of the JSON contract to creating your own indexer and explorer. Order BRC-20 token development turnkey – get an engineering consultation.

What problems does BRC-20 token development solve?

Two-step transfer: a typical beginner mistake

Transferring BRC-20 is not a single transaction. First, a transfer inscription is created on the sender's address. Then this inscription is sent to the recipient via a standard Bitcoin transaction. The indexer records both steps and counts the transfer only when the exact UTXO containing the transfer inscription is spent. If the UTXO is spent incorrectly, tokens are permanently burned. Bitcoin network fees for an inscription typically range from $5 to $15 depending on network load.

UTXO dependency: how not to lose tokens

BRC-20 balances are tied to Bitcoin UTXOs that contain inscriptions. If a wallet is unaware of inscriptions and accidentally spends an inscription UTXO as regular bitcoin (e.g., fee bumping, UTXO consolidation), tokens are lost. A wallet supporting Ordinals is required.

Different indexers – different balances

In the early days of BRC-20, different indexers interpreted edge cases differently. The situation has stabilized, but during development it is essential to cross-check results on several services: Hiro, UniSat, OKX Ordinals.

How does BRC-20 work?

BRC-20 uses JSON format written into the witness part of a SegWit transaction. There are only three operations: deploy, mint, transfer. Each is a separate Ordinals inscription.

{ "p": "brc-20", "op": "deploy", "tick": "MYTK", "max": "21000000", "lim": "1000" } 
{ "p": "brc-20", "op": "mint", "tick": "MYTK", "amt": "1000" } 
{ "p": "brc-20", "op": "transfer", "tick": "MYTK", "amt": "500" } 

Why is the choice of indexer important for BRC-20?

Indexers are off-chain services that track inscriptions and compute balances. Different indexers may give different results due to ambiguities in handling edge cases, such as double mints or invalid transfer amounts. Therefore, it is important to choose a reliable indexer and, if necessary, run your own.

Indexer Accuracy API cost Notes
Hiro High Free (rate limited) Open API, documentation
UniSat High Paid Built-in wallet, marketplace
OKX Medium Free Exchange integration

How we develop BRC-20: tech stack and example deployment

We use the official ord client and the Ordinalsbot API for creating inscriptions. Here is an example deployment in TypeScript:

import axios from 'axios'; async function deployBRC20Token(config: { tick: string; max: string; lim: string; receiverAddress: string; }) { const inscriptionData = JSON.stringify({ p: "brc-20", op: "deploy", tick: config.tick, max: config.max, lim: config.lim, }); const response = await axios.post('https://api.ordinalsbot.com/inscribe', { files: [{ name: "deploy.json", size: Buffer.byteLength(inscriptionData), type: "text/plain;charset=utf-8", dataURL: `data:text/plain;charset=utf-8,${inscriptionData}`, }], receiveAddress: config.receiverAddress, fee: 15, lowPostage: false, }); return response.data; } 

After deployment, we check balances via indexers. The Hiro API is among the most reliable:

async function getBRC20Balance(address: string, ticker: string): Promise<string> { const response = await axios.get( `https://api.hiro.so/ordinals/v1/brc-20/balances/${address}`, { params: { ticker: ticker.toUpperCase() }, headers: { 'x-api-key': process.env.HIRO_API_KEY }, } ); const token = response.data.results.find( (t: any) => t.ticker.toLowerCase() === ticker.toLowerCase() ); return token?.overall_balance ?? "0"; } 

BRC-20 vs ERC-20 comparison

Parameter BRC-20 ERC-20
Execution environment No VM, only JSON EVM (smart contracts)
Programmability None Full
Security UTXO-dependent Atomic operations
Deployment cost Low (Bitcoin fee ~$5-$15) Higher (Ethereum gas, typically $2000+)
Confirmation time ~10 minutes ~12 seconds
Fee savings Up to 90% cheaper -

BRC-20 is dozens of times cheaper to deploy, but lacks flexibility. Compared to ERC-20, deployment savings can reach 90% (smart contract development on Ethereum starts at $2000). For projects requiring programmability, we recommend Stacks or Bitcoin L2s.

Project workflow

  1. Analysis – discuss ticker, emission, distribution mechanism.
  2. Design – choose the tool stack (ord, APIs, indexers).
  3. Implementation – deploy, write mint service, integrate with wallets.
  4. Testing – verify on testnet, simulate all operations.
  5. Deployment – publish on mainnet, set up monitoring.

What is included (deliverables)

  • BRC-20 token deployment with chosen ticker and parameters.
  • Creation of a mint service for users (if fair launch is needed).
  • Integration with indexers (Hiro, UniSat, OKX).
  • Documentation on token usage and API.
  • Training for the client's team on BRC-20 operations.
  • Support for 2 weeks after launch.
  • Access to development and monitoring tools.

Estimated timelines

Simple token deployment – a few hours. Full infrastructure (indexer, explorer, mint service) – 4 to 8 weeks. The cost is calculated individually based on the scope of work.

BRC-20 limitations to know
  • No programmable logic (only transfers).
  • No atomic swaps (a DEX on BRC-20 is a complex off-chain construction).
  • Confirmation time ~10 minutes.
  • Fees increase under network load.

Our experience is backed by dozens of projects. We guarantee correct operation of all components. We use proven tools and follow best practices. Contact us for a consultation – our engineers will help with ticker selection, infrastructure deployment, and indexer integration.