docs(tokens): BRC-163 BSV-21 basket profile (BRC-46/100) - #217
Conversation
Companion to shruggr's 161/162: wallet basket `bsv21`, tags/CI remittance, list/send/import — admission stays on-chain, not currency/Pay. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Closing: HandCash is not shipping BSV-21 fungibles without a P2P-scalable conservation proof (no indexer dependency for steady-state). Basket profile deferred with the feature. |
Align basket profile with HandCash: holders verify their tips; issuers trusted for mint policy. Global supply-cap audits remain optional. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Reopened with an updated trust model:
|
Define remittance, tagged spend paths (plain / cosigned / refuse), and fail-closed rules. Cosign remains optional; plain owner tips stay valid. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Added an optional cosigner section to BRC-163:
HandCash Desktop mirrors this in |
Reserve id: for per-output identity; CI JSON field id stays BRC-161. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Updated tags per review: token id is
|
Align with reference BRC-100 client (tags lowercased ≤300B; internalize CI ≤1000B). Keep id: for per-output list keys. Plain BSV-21 only — MNEE-class cosigner routes stay out of band. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Processed offline feedback: Tags vs
|
Issuers MAY Sigma-sign deploy+mint and mirror pubkey in CI/tags. Unsigned tips remain fully valid; MNEE/cosign stays out of band. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Pushed an update to this branch: optional issuer attestation via Sigma (BRC-77) on deploy+mint, with CI/tag |
|
|
||
| | Tag | Requirement | Meaning | | ||
| |-----|-------------|---------| | ||
| | `bsv21` | SHOULD on conforming transfers and imports | Marks the output as a BSV-21 value tip under this profile (no suffix). | |
There was a problem hiding this comment.
Does this buy anything if you are already in a bsv21 basket, and all rows will have it?
|
I don't see the cosigner section here any more, but I'm not sure it's actually necessary either, nor any special handling. A token which uses cosigner will always use cosigner and it can be parsed from the output script. There needs to be some other registration of known cosigner API in any wallet that wants to be able to handle those, so I'm not sure that it belongs in this spec for the general token handling. MNEE will work just fine with these rules, you just don't possess the keys to sing it fully, and the app needs to know how to submit. |
Require P2P / accompanying BEEF for ticker icon bytes; CI keeps only the outpoint pointer. HTTP content APIs are optional recovery, not normative. Co-authored-by: Cursor <cursoragent@cursor.com>
Follow-up: Icon media (P2P)Updated BRC-163 so ticker
HandCash Desktop implements local cache + BEEF decode (no Gorilla content URL for fungibles). |
|
@GenericCPU I have formalized the id field as brc164. #219 |
- Point per-output id: at BRC-164 (not token id). - Writers MUST underscore bsv21:<tokenId> values; readers still normalize. - Note fine-grained p bsv21 … permissions out of scope for this profile.
…dump - Tags: bsv21:<id>, amt, dec, icon, optional filters; drop bare bsv21 marker - CI: protocolID/keyID/counterparty; SHOULD sym (case-preserving) - Do not require inscription fields (p/op/id/amt/…) duplicated into CI - Parse token economics from script; BRC-164 for id: list keys
Keep Brandon’s remittance-in-CI model for id/amt/op/sym/dec/icon plus derivation. Tags are exact listOutputs filters (bsv21:<id> primary); amt/sym/dec/icon tags MAY for legacy only. No full inscription JSON required in CI. Reader priority: CI → tags → script.
docs(163): BRC-164 + underscore writers + defer p-scheme
Keep both README index rows: BRC-163 (this draft) and BRC-164 (Output Identity Tags) from master. Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
bsv21).customInstructions, list / send /internalizeAction, payment separation.README.md/SUMMARY.md(placed after 160 until 161/162 land on master).Motivation
#213 correctly leaves baskets out of scope. Without a shared basket name and remittance contract, wallets cannot hold / list / transfer / import the same tips interoperably. HandCash is already using
bsv21under Collect → Tokens (not Pay / not1sat).Test plan
idunderscore,amtstring,p/op)bsv21and eligibility (satoshis === 1, value ops only)./0161.md/./0162.mdlinks resolveMade with Cursor