A Bitcoin Ordinals marketplace lets people trade inscriptions, which are pieces of content attached to individual satoshis. Bitcoin has no smart contracts for marketplaces, so trades are built from partially signed Bitcoin transactions (PSBTs), and the hardest engineering work is tracking which UTXOs carry inscriptions so nobody spends one by accident.
How Ordinals work, briefly
Ordinal theory, introduced in early 2023 with the ord software, assigns a serial number to every satoshi based on the order it was mined and tracks it through transactions. An inscription attaches content (an image, text, HTML, or other file) to a specific satoshi by embedding it in the witness data of a Taproot transaction. Creating one takes two transactions: a commit that pays to a Taproot output committing to the content, and a reveal that spends it and exposes the content on-chain.
Key consequences for a marketplace:
- The content is fully on-chain, which is a selling point compared with NFTs whose images sit on a web server.
- Ownership is determined by whoever controls the UTXO containing the inscribed satoshi. There is no token contract to query; you need an indexer that follows satoshis.
- Collections are a social and indexer-level concept (parent/child inscriptions, or curated lists), not a contract.
The official Ordinals handbook documents the protocol and the ord wallet and explorer.
How trades work without smart contracts
Ordinals marketplaces use PSBTs, defined in BIP-174, to build trustless swaps:
- Listing: the seller signs only their own input (the UTXO with the inscription) and the output that pays them the asking price, using the
SIGHASH_SINGLE | ANYONECANPAYflag. The signature stays valid when other inputs and outputs are added later. - Storage: the marketplace stores the partially signed PSBT off-chain. Listing costs no fee.
- Purchase: the buyer's wallet adds payment inputs, an output that receives the inscription, change, and the marketplace fee output, then signs.
- Broadcast: the completed transaction is broadcast; once mined, the inscription is in the buyer's wallet and the seller has been paid in the same atomic transaction.
Details matter. Output ordering determines which output receives the inscribed satoshi, so the transaction builder must place the inscription precisely (marketplaces often use small "padding" or "dummy" UTXOs from the buyer to get offsets right). Cancelling a listing requires the seller to move the UTXO, which costs a fee. And because a signed listing is a valid partial transaction, anyone who obtains it can complete it, so treat listing PSBTs as sensitive.
Wallet integration and UTXO safety
The biggest user-facing risk in Ordinals is spending an inscription as ordinary bitcoin, for example paying a transaction fee with the inscribed UTXO. Ordinals-aware wallets such as Xverse, Unisat, Leather and Magic Eden's wallet separate "cardinal" (spendable) and "ordinal" (inscription-bearing) UTXOs, often with separate addresses. Your marketplace must:
- Integrate with these wallets' signing APIs and support Taproot addresses.
- Never select inscription-bearing UTXOs as payment inputs, checking against your indexer before building every transaction.
- Show users exactly what each PSBT does before they sign.
- Warn about UTXOs that hold multiple inscriptions or rare satoshis, since moving one moves all.
Infrastructure
| Component | Purpose | Notes |
|---|---|---|
| Bitcoin Core full node | Source of blocks and mempool | Unpruned, with transaction index |
| ord indexer (or equivalent) | Maps satoshis and inscriptions to UTXOs | Initial indexing is slow and storage-heavy; plan for reindexing on upgrades |
| Marketplace database | Listings, PSBTs, collections, activity | Invalidate listings when their UTXO is spent |
| Mempool monitoring | Detect pending purchases and conflicts | Handles replace-by-fee and double-spend races |
| Fee estimation | Suggest sat/vB rates | Fees spike during popular mints; let users choose speed |
| Content renderer | Display images, HTML and recursive inscriptions safely | Sandbox HTML inscriptions in isolated iframes |
Beyond inscriptions: BRC-20 and Runes
Many Ordinals marketplaces also trade fungible tokens on Bitcoin. BRC-20 (2023) uses JSON inscriptions interpreted by off-chain indexers. Runes, launched at the April 2024 halving by the creator of Ordinals, is a UTXO-based fungible token protocol that is more efficient and supported in ord itself. Supporting either means another indexer and different listing logic, so treat them as separate product decisions.
Build process and cost
- Run a full node and
ordindexer; build APIs over them, or start with a third-party Ordinals API while your own index syncs. - Build the PSBT engine for listing, buying, offers and cancellation, with extensive tests on testnet or signet.
- Integrate Ordinals-aware wallets.
- Build collection curation, verified creators and spam filtering.
- Add an inscription (minting) service if you want primary sales; see the Bitcoin minting guide.
- Commission a security review of transaction construction.
As a reasoned estimate, an MVP takes a team of four or five with real Bitcoin transaction experience three to five months. Bitcoin engineers are scarcer than Solidity developers, and the PSBT logic has little room for error. For marketplace features that are chain-independent, see the NFT marketplace development guide; for wallet work, see the crypto wallet guide.
A market note: inscription and Runes activity has been highly cyclical since 2023, with bursts of minting followed by long quiet periods. Build for a dedicated niche rather than assuming peak volumes.
Frequently asked questions
Are Ordinals NFTs?
Functionally, yes: unique, transferable digital items. Technically they are not tokens issued by a contract, but content attached to specific satoshis and tracked by indexers.
Why does canceling a listing cost a fee?
The signed listing remains valid until the seller's UTXO is spent. Cancelling safely means moving the inscription to a new UTXO, which is an on-chain transaction.
Can I build an Ordinals marketplace with Ethereum developers?
The frontend and backend skills transfer. Transaction construction, UTXO management, Taproot and PSBTs are Bitcoin-specific, and you need someone experienced in them.