Skip to content

Releases: ordpool-space/ordpool-parser

v2.0.3 — ordpool-parser v2

27 Mar 10:48

Choose a tag to compare

Yes, Bitcoin is money. Everything else is an attack on Bitcoin. BIP 110 will fix this. But you still want to know what's inside your blocks, don't you?

ordpool-parser v2 parses everything on Bitcoin L1: Inscriptions, Runes, BRC-20, SRC-20 Stamps, CAT-21, Atomicals, and Labitbu. Zero dependencies, works in Node.js and browsers.

New parsers

  • Atomicals — Full parser for the Atomicals protocol. Detects the atom envelope in witness data, extracts the operation type (nft, dft, ft, dmt, mod, evt, dat, sl, x, y, z), and decodes the CBOR payload. Handles multi-chunk payloads (>520 bytes) and both file attachment formats on mainnet. Lazy API: getArgs(), getFiles(), getPayloadRaw().

  • Labitbu — Parser for the Labitbu project (10,000 WebP images stored in Taproot control blocks, blocks 908,072–908,196). Detects the NUMS key in witness[2] and extracts the 4096-byte WebP image. This is the project that inspired the CAT-21 fake inscription approach.

New inscription features

  • Galleries / Properties (tag 17) — Parses inscription properties with gallery items, structured attributes (title + traits), brotli/gzip decompression, and both inline and packed inscription ID encodings. Verified with real mainnet galleries including Ordillas (2230 items with rich per-item traits).

  • Rune commitment (tag 13) — Exposes the rune etching commitment via getRune(). Links inscriptions to rune etchings (e.g. UNCOMMON•GOODS).

  • Property encoding (tag 19) — Brotli and gzip decompression for properties. Ord only supports brotli — we also support gzip.

  • All inscription tags now supported — tags 1, 2, 3, 5, 7, 9, 11, 13, 17, 19. Feature-complete with ord.

DigitalArtifactAnalyserService

  • Block analysisanalyseTransactions() processes full blocks, returns per-type counts, fees, mint activity, envelope sizes, deploy/etch attempts.
  • Transaction flags — Binary flags for fast transaction classification across all supported protocols.
  • Atomical mint/update flags — Distinguishes mints (nft, ft, dft, dmt, dat) from updates (mod, evt, sl) based on the operation type.
  • BRC-20 / SRC-20 validation — Cenotaph-style flaw detection. Invalid JSON still gets the top-level flag but won't pollute deploy/mint/transfer stats.
  • Rune validationvalidateRune() checks commitment presence, taproot output, 6-block confirmation rule, name unlock schedule.
  • CAT-21 mint tracking — Tracks mints with fee rate, weight, block height.
  • Refactored — BRC-20/SRC-20 content parsed once per inscription (was 2-3x). analyse() returns parsed data alongside flags.

Inscription parser improvements

  • Gzip decompression — Content encoding "gzip" now supported alongside brotli.
  • Inscription previews — Server-side and frontend HTML preview rendering for inscriptions.
  • Batch inscriptions — Pointer field (tag 2) for batch minting.
  • Multi-parent inscriptions — Multiple parent inscription IDs (tag 3).
  • Delegate inscriptions — Delegate field (tag 11) for content delegation.
  • CBOR metadata — Chunked metadata (tag 5) > 520 bytes now handled correctly.
  • Optimized — No longer joins all witness elements. Searches per-element, only converts the matching one.

Rune parser improvements

  • Rune commitment searchfindCommitment() finds the commitment in any witness element.
  • Commitment validation — Checks taproot output type and 6-block confirmation.
  • Name unlock rangegetUnlockedRuneNameRange() for the block-based name unlock schedule.
  • Cenotaph detection — Invalid runestones (cenotaphs) properly identified and counted.

New utilities

  • onError callback on all parsers — optional error reporting without crashing.
  • concatUint8Arrays — shared utility for Uint8Array concatenation.
  • isStringInArrayOfStrings — simplified witness element search.
  • sanitizeU8, sanitizeU64, sanitizeU128 — safe integer parsing for rune fields.
  • validateRuneEtchingSpec — validates rune etching parameters.
  • convertVerboseBlockToSimplePlus — converts Bitcoin RPC block format to Esplora format.

Browser compatibility

  • ArrayBuffer.isView() replaces instanceof Uint8Array across the entire codebase. Works across realms (iframes, web workers).
  • No Buffer usage in production code — Uint8Array only.

Bug fixes

  • BRC-20 types wired into analyserparseBrc20Content() was orphaned, now properly used.
  • readPushdata handles OP_0 — Empty push (0x00) no longer crashes the parser (#18).
  • CBOR metadata > 520 bytes — Chunked metadata now concatenated before decoding (#8).
  • Gzip support — Content encoding "gzip" now works (#19).
  • Inscription parserwitness.join('') eliminated (was wasteful for 4MB inscriptions).

Standalone CAT-21 bundle

  • cat21.js — Standalone ESM + IIFE bundle built with esbuild. Can be used without the full parser.

v0.0.9 - CAT-21 Ordinals

26 Apr 11:09

Choose a tag to compare

v0.0.4

26 Dec 19:29

Choose a tag to compare

With all the important features that inscriptions can have

v0.0.1 – Initial Release

13 Dec 11:20

Choose a tag to compare

The same parser that is used by Ordpool v0.0.2