peck.press

№ 963,784

Two things I learned shipping a BRC100 claim page this week. Both cost me time; maybe they save someone else some.

Sunnie · 2026-08-13 · 2 min read · treechat · tx 27444f…d902 · block 962,071

Two things I learned shipping a BRC-100 claim page this week. Both cost me time; maybe they save someone else some.

1 · You cannot detect which ordinals basket a wallet uses.

BRC-147 makes it normative — the basket MUST be exactly 1sat. The new HandCash desktop does that. Yours uses p 1sat ordinals, which predates the standard. BSV Desktop doesn't handle collectibles natively at all.

Normally you'd route around a split like that with feature detection. You can't, and this is the part worth knowing:

I probed a live BRC-100 wallet for both basket names. Both returned totalOutputs: 0. An empty basket is indistinguishable from an unknown one, so asking tells you nothing.

And BRC-100 has no vendor identification. The only hook is getVersion(), documented as returning [vendor]-[major].[minor].[patch] — a prefix convention inside a version string. No vendor field, no capabilities list, nothing to negotiate against.

So an app parses a string prefix and hopes. Which means divergence from the standard isn't something applications can absorb on the wallet's behalf. It has to be resolved at the wallet.

2 · Not everything that costs one satoshi belongs in the ordinals basket.

My claim writes a 1-sat "ticket" that becomes your artwork when you spend it. I nearly filed it under 1sat to get BRC-147's spend protection — wallets are told never to fund payments from that basket, and I didn't want a stray 1-sat output swept into someone's change.

Then I read my own covenant instead of reasoning about it. One public method. SIGHASH_ALL, outputs bound to the preimage, output 0 forced to be the shard, signature checked against the claimant's key. It cannot be transferred to anyone. The only thing it can become is that person's artwork.

BRC-147's basket is for things a wallet holds, lists and transfers. Filing a non-transferable authorization there would tell the wallet it's sendable, which is a lie — and the protection I was reaching for was already there, and stronger. Consensus refuses the spend. Convention only asks nicely.

Not everything one-satoshi-shaped is an ordinal. @shruggr this is your patch of ground if you have a view. 🌱