Orgchain v1.14: soulbound belts ride their seats' sats
A belt is soulbound: the reducer already bound it to the seat it names, and now the lab inscribes it on that seat's own sat, so by ordinal theory it goes wherever the seat goes and never sells apart from it. One reveal carries an award, three coins in: the seat's, which the pointer puts the belt in and the seat's own key signs, accepting it; the issuer's, the parent; and the commit, which pays the fee. Both coins come back unchanged, so an award needs no postage and costs two fees (1,000 sats). ord marks it a reinscription and vindicated, since a pointer and an envelope past the first input would have cursed it before the jubilee. The engine takes that three-input reveal and nothing looser: the parent spent from the inscriber's key, both coins returned unchanged, the pointer on an inscribed sat of the first. A belt is never a lot, and an award can't land in a tree that is listed or sold. Trees count and split by inscribed sat, so a seat's belts stay on it through every sale. Inspect shows a node's belts and ord's charms, and the award form says whose sat the belt will ride. Belts from before v1.14 stay with their issuers and count the same. Rehearsed on Bitcoin Core regtest from height 161: sixteen beats and 131 transactions; ord charms the three belts as the lab does, and after two whole-tree sales each belt shares its seat's satpoint. The compare now checks satpoints and charms. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01H4upF5LVwmPDDqrhdUfnXh
This commit is contained in:
1 parent
74ed801176
commit
c8c18b073e
18 files changed
+368
-107
No files matched your search
@@ -11,8 +11,9 @@ Orgchain is lineage's app for creating and operating lineage holdings on Super T
|
||||
- The engine (`src/adapters`, `src/upstream`, `src/storage.js`, `src/miner.js`) is Super Testnet's. Compose with it
|
||||
rather than rewriting it, and keep its tests passing. Preserve upstream licenses and provenance. Its local
|
||||
changes are P2WPKH payments, a coinbase split across up to 64 outputs, ordinary spends of up to 64 inputs and
|
||||
outputs whose key-path signatures may carry 0x83, coins imported from a real chain, and BIP-341/342 checks of
|
||||
reveals' script paths, all in `src/adapters/chain.js` (PROVENANCE.md); keep them small and tested.
|
||||
outputs whose key-path signatures may carry 0x83, a three-input reveal that inscribes on a sat another key holds
|
||||
(a belt) and returns both coins unchanged, coins imported from a real chain, and BIP-341/342 checks of reveals'
|
||||
script paths, all in `src/adapters/chain.js` (PROVENANCE.md); keep them small and tested.
|
||||
- Money lives in `src/orgchain/money.js`: beats pay the holdings (split by hashrate, or all to the last act; under
|
||||
Mainnet none mine, and the lab wallet funds them), sends spend SegWit coins only, so an inscription can never leave
|
||||
as change, and balances are read off the chain, never stored. Gas (`src/orgchain/actions.js`): every act is paid by
|
||||
@@ -24,9 +25,14 @@ Orgchain is lineage's app for creating and operating lineage holdings on Super T
|
||||
who holds a lot is read off the chain, never from metadata. An org sells with its tree, and a holding whole, by its
|
||||
owner (the lab wallet): cash-free, and frozen with everything in it while listed or sold (`actions.js` cashOut,
|
||||
frozenWhy; a listed holding mines nothing). A tree travels as one output (`bundle` for an ask; an offer merges its
|
||||
inputs) and splits back by the deal's layout once adopted (`unbundle`): one output per inscription, never two
|
||||
inscriptions left sharing a coin, or selling one would sell the other. Its buyer's keys sign the adoption and the
|
||||
split: never sign for the buyer at the seller's act.
|
||||
inputs) and splits back by the deal's layout once adopted (`unbundle`): one output per inscribed sat, never two
|
||||
sats' inscriptions left sharing a coin, or selling one would sell the other. Its buyer's keys sign the adoption and
|
||||
the split: never sign for the buyer at the seller's act.
|
||||
- Belts are soulbound (`src/orgchain/belts.js`): the reducer binds a belt to the node it names, and the lab inscribes
|
||||
it on that node's own sat (a reinscription) in one three-input reveal that the recipient's key co-signs, so it goes
|
||||
wherever its node goes. Count and split coins by inscribed sat, never by inscription, since a node shares its sat
|
||||
with its belts, and never make a belt a lot. The compare checks ord's satpoints and charms (`charmsOf` models the
|
||||
ones lineage's inscriptions earn); keep that model in step with ord.
|
||||
- Moves (`join`, `adopt`): neither half's effect may depend on their order within a block, since a miner may put them
|
||||
either way; the move records both halves. An old parent keeps a moved child in `children` so its index is never
|
||||
reused: walk children with `kidsOf`. A holding that moves becomes an org: its old root stays in `keys.roots` so old
|
||||
|
||||
Reference in new issue
Block a user