raresats.net API
Getting started View as Markdown

The Listing object

A listing is one UTXO for sale at a fixed price. Every listing endpoint returns this object, and so does a sat's page (listing). The seller's signature is never part of it.

FieldTypeRequiredDescription
idstringyesThe listing id: 16 lowercase hex characters.
outpointstringyesThe listed UTXO, txid:vout.
valueintegeryesThe UTXO's own value in sats (it moves to the buyer whole).
priceintegeryesThe listing price in sats: exactly what the seller receives. The buyer pays this plus the platform fee and the network fee.
unit_pricenumberyesPrice per sat of the listing's own row: (price - value) / count, to the hundredth of a sat. Floors and the unit sort use it.
rowstringyesThe listing's own row (collection): the rarest market row holding every tracked sat of the UTXO, else the rarest market row present. Never a label row.
countintegeryesHow many sats of row the UTXO holds (the "×N" of a bulk listing).
rowsmap of integeryesEvery row the UTXO's tracked sats count toward, with their counts (label rows included).
typesarray of TypeGroup | nullyesThe UTXO's sats grouped by exact type combination, rarest first.
satsinteger | nullyesTracked sats in the UTXO (all rows).
rangesarray of array of integer | nullyesThe tracked sats as inclusive [first, last] ranges, ascending.
yearsmap of integer | nullyesTracked sats per mint year (UTC year of the block that mined them).
seller_addressstringyesThe address that holds the UTXO and signed the listing.
payout_addressstringyesWhere the price is paid (the seller's payment output).
statusstringyesactive (for sale), pending (a purchase is in the mempool), sold, cancelled (or replaced by a newer listing of the same UTXO), moved (spent elsewhere). A listing whose UTXO was sold through an accepted offer ends sold with sold_via: "offer".
created_atintegeryesUnix seconds.
updated_atintegeryesUnix seconds of the last status change.
txidstring | nullyesThe purchase transaction, while pending and once sold; otherwise null.
signature_publicbooleanyestrue once a broadcast purchase put the seller's signature on the network: the listing can then be bought at this price anywhere until the UTXO moves, even after a cancel here.
sold_viastring | nullyesoffer when the listing ended sold through an accepted offer of its UTXO: price and unit_price are then the offer's (what was paid), offer_id names it. null otherwise.
offer_idstring | nullyesThe accepted offer it was sold through (sold_via: "offer"), else null.
best_offerBestOffer | nullyesThe best active offer on the UTXO, or null.
spent_by_pendingobjectnoA transaction still in the mempool that spends an output (spent_by_pending). Absent when nothing pending spends it.
spent_by_pending.txidstringyesThe spending transaction.
spent_by_pending.vininteger | nullnoIts input that spends the output.
spent_by_pending.first_seeninteger | nullyesWhen the transaction was first seen in the mempool (bitcoind's entry time), unix seconds.
spent_by_pending.fee_ratenumber | nullyesIts fee rate, sat/vB (one decimal).
spent_by_pending.salebooleanyesWhether the spend sells this output (a pending sale with it as the seller's input).
spent_by_pending.replaceablebooleannoAlways true (full RBF): the spend may still be replaced.
in_bundlebooleannoOnly on a listing read for a row it holds some sats of among others (in bundle: contains=1's contains, or a row's activity): true. Its price is the whole UTXO's and its unit_price its own row's, never the row asked for.
contains_countinteger | nullnoWith in_bundle: how many sats of the row asked for it holds.

Type groups #

types holds the UTXO's sats grouped by their exact combination of sat types, rarest first: what the site draws as badges.

FieldTypeRequiredDescription
typesarray of stringyesThe exact combination of sat types these sats share (e.g. ["block9", "nakamoto", "vintage"]).
countintegeryesHow many of the UTXO's (the sale's) tracked sats have exactly these types.
satsarray of integeryesSample sat numbers of the group, ascending: its first 3 (an address's or a UTXO's page). A listing or an offer names up to 100: its first 3, then the first sat of each further run, so every special sat of a group of up to 100 (a whole range's run adds only its first sat). (0-100 items)
inscribedintegernoHow many of them carry an inscription (absent when none).

Example #

Listing
{
  "id": "3324d08569806818",
  "outpoint": "8b09d6914ae17431940ce8b6cadae378a5d9b3c90c73c3a5b0b8c8e7edc9e86a:0",
  "value": 6280,
  "price": 94200,
  "unit_price": 14,
  "row": "block9",
  "count": 6280,
  "rows": {"block9": 6280, "block9_1st_tx": 6280},
  "types": [
    {
      "types": ["block9", "nakamoto", "vintage"],
      "count": 6280,
      "sats": [45100023043, 45100023044, 45100023045]
    }
  ],
  "sats": 6280,
  "ranges": [[45100023043, 45100029322]],
  "years": {"2009": 6280},
  "seller_address": "bc1p4qhjn9zdvkux4e44uhx8tc55attvtyu358kutcqkudyccelu0was9fqzwh",
  "payout_address": "bc1p4qhjn9zdvkux4e44uhx8tc55attvtyu358kutcqkudyccelu0was9fqzwh",
  "status": "active",
  "created_at": 1790952985,
  "updated_at": 1790952985,
  "txid": null,
  "signature_public": false,
  "sold_via": null,
  "offer_id": null,
  "best_offer": {
    "id": "dbf866a1e7e209e7",
    "price": 100000,
    "unit_price": 15.92,
    "bidder_payment_address": "bc1p4qhjn9zdvkux4e44uhx8tc55attvtyu358kutcqkudyccelu0was9fqzwh",
    "bidder_ordinals_address": "bc1p4qhjn9zdvkux4e44uhx8tc55attvtyu358kutcqkudyccelu0was9fqzwh",
    "created_at": 1790953585,
    "expires_at": 1791558385
  }
}

This UTXO holds 6,280 block 9 sats (2009, Nakamoto, vintage) in a 6,280-sat output, listed at 94,200 sats: unit_price = (94,200 − 6,280) / 6,280 = 14 sats per sat. The seller receives 94,200 sats; a buyer pays 94,200 + 2,355 (2.5%) + the network fee.

Statuses #

active → pending (a purchase in the mempool) → sold; or cancelled (by the seller, or replaced by a newer listing of the UTXO); or moved (spent without paying the listing). A listing whose UTXO the seller sold by accepting an offer is reserved (pending) while that transaction is in the mempool, then sold with sold_via: "offer", the offer's offer_id, and the offer's price and unit_price: what was paid, not the ask. That sale's one activity event is the offer's offer_accepted. See Concepts.