The record
Technical explainer: sighash 0x82 versus 0x83
This page explains, in plain terms, the signature detail that all 264 spent inputs have in common. It describes mechanics only. It does not say why the code was written that way or who is responsible for any outcome.
What a sighash type controls
A Dogecoin (Bitcoin-style) signature is made over a hash of selected parts of a transaction. A one-byte “sighash type” appended to the signature says which parts the signer committed to. Anything not committed to can be changed by whoever assembles the final transaction without invalidating that signature.
| Byte | Name | Inputs committed | Outputs committed |
|---|---|---|---|
| 0x01 | SIGHASH_ALL | all inputs | all outputs |
| 0x82 | SIGHASH_NONE | SIGHASH_ANYONECANPAY | only the signed input | no outputs |
| 0x83 | SIGHASH_SINGLE | SIGHASH_ANYONECANPAY | only the signed input | only the output with the same index as the signed input |
For an inscription listing, the seller signs the input that holds the inscription. With 0x83 the seller can pin one output, for example the seller’s payout. With 0x82 the signature leaves every output open, so it does not fix a price or a payee. Bitcoin documentation describes these types: see the Bitcoin Wiki on signature hash types.
What the archived code says
The marketplace client code is served publicly together with source maps. We extracted the file lib/wallet/listing-signer.ts from the live site on Oct 27 2026 UTC (04:44 UTC; the evening of Oct 26 Pacific time) (SHA-256 in the evidence manifest). Two short excerpts follow, quoted for analysis.
/**
* Listing signer builds the seller-side template for Doginal marketplace listings using
* a pure P2PKH flow. The seller signs their inscription input with SIGHASH_SINGLE |
* SIGHASH_ANYONECANPAY so that buyers can later rewrite the inscription output while
* outputs at index 0 and 1 (seller payout + marketplace fee) remain fixed.
*/
38: const SIGHASH_TYPE = 0x82; // SIGHASH_NONE | SIGHASH_ANYONECANPAY
...
138: const sighashFlag = crypto.Signature.SIGHASH_NONE | crypto.Signature.SIGHASH_ANYONECANPAY;
The header comment describes SIGHASH_SINGLE|ANYONECANPAY (0x83). The constant and the flag used in the signing function are SIGHASH_NONE|ANYONECANPAY (0x82). Whether the difference was intended, known, or noticed before Oct 26 is not something the code can tell us. See open questions.
How long the 0x82 constant has been in the client code
Archived copies of the marketplace’s app JavaScript from the Internet Archive contain the value 130 (0x82) in the listing-signing code. The earliest capture we found is dated 2025-10-26. Captures we checked up to 2026-08-31 also contain it. Each capture has a link and a SHA-256 on the evidence page. In the captures we compared, we did not see the signing code differ in this respect.
What the six transactions show
- Every one of the 264 inputs carries a signature ending in byte 0x82 (inputs.csv, one row per input).
- Each of the six transactions has exactly one output, to address D6ZJAGkdFJn9cb3y2QAVwv5QtMXfVHihZ4.
- Marketplace sales on Oct 21 2026 that we checked also show 0x82 on the seller’s input (see the timeline), so the type was in ordinary use before Oct 26.
What on-chain data does not show is how the signed inputs came to be in the hands of whoever built the six transactions. That is covered in what we cannot know.
Why 63 inscriptions went to miners
A doginal inscription is attached to a specific unit (a koinu) inside an output. When a transaction spends inputs, units flow to outputs in order. If the outputs’ total value is smaller than the position of an inscribed unit, that unit flows into the transaction fee and then to the miner of the block, in the coinbase transaction.
In these transactions the single output was small (0.019 to 0.116 DOGE) compared with the combined value of up to 50 inputs, and the fee was about 0.0148 DOGE for each of the five 50-input transactions (0.0042 DOGE for the 14-input one). In our analysis, 201 of 264 inscriptions reached the recipient address and 63 went to the coinbase outputs of the two blocks. Per-input results are in inputs.csv. This is our computation from the ordinals flow rules; it can be checked with any doginal indexer, and indexers may differ. The 63 are discussed in open questions.
What the marketplace terms say
The Terms page served at market.doginaldogs.com/legal (archived and hashed on the evidence page) describes the service as provided “as is”, includes a limitation of liability that mentions “loss of funds”, and states that a user’s sole remedy is to stop using the site. It describes the operator as “an independent online collective”. We quote these only for completeness. We express no view on how they apply.