Operation ran today: swept every FT holding across A-H + gmx
(backed MBAs + non-state NBAs) back to BCH via implicit fungible-token
burn, consolidated into wallet H. 9 txs total, 51 covenant-state NFTs
preserved. H now at 2.6967 BCH (up from 1.86).
Also kept two new audit helpers from the operation:
scripts/scan-all-wallets-ft.mjs one-shot inventory across every
.chipnet-keys-*.json
scripts/inspect-h-utxos.mjs classifies H's UTXOs
(bch-only / ft / nft / hybrid)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
217 KiB
217 KiB
Snapshots — index by domain
Generated file — do not hand-edit. Rebuild with
node scripts/build-snapshot-index.mjs. Snapshots stay a flat, chronological changelog; this index is the domain view over them.To place a snapshot: set
domain: <wallet|asm|fiatm|cross-chain|games-tote|governance|onramp|infra>(plussummary:and optionaltags:) in its YAML frontmatter, then rerun this script. Untagged files fall back to filename-keyword bucketing.Duplicate snapshot numbers exist (0018, 0019, 0022, 0027, 0053, 0054, 0057, 0062, 0083, 0084, 0144, 0145, 0153, 0164) — they are distinct files, disambiguated below by slug.
328 snapshots · 328 tagged · 8 domains · regenerate after adding one.
Quick-find — all snapshots (Ctrl-F by №, domain, tag, or word)
| № | domain | tags | summary |
|---|---|---|---|
| 0001 | infra | bootstrap | |
| 0002 | asm | swap | swap core landed |
| 0003 | infra | regtest harness landed | |
| 0004 | infra | technical specification landed | |
| 0005 | asm | Q4 answer + chipnet validation plan, pre-switch handoff | |
| 0006 | infra | dependencies pinned for CashTokens, Q2 + Q5 answered | |
| 0007 | asm | CashTokens-aware contract compiles; tier floor raised to 1000 | |
| 0008 | asm | Q4 ANSWERED YES on chipnet | |
| 0009 | asm | cross-founder open-mint validated; design questions answered | |
| 0010 | infra | terminology refresh + clarifications | |
| 0011 | fiatm | rate-peg attack demonstrated — vulnerable contract drained in one tx | |
| 0012 | asm | vulnerability audit round 1 — rogue minting NFT found, negatives clean | |
| 0013 | asm | asm | ASM token end-to-end flow with P2P transfers and 100-output batching |
| 0014 | asm | asm swap | ASM ↔ ASM2 bidirectional swaps with founder fee |
| 0015 | asm | swap | bulk swap stress test — 96 swaps across A and C |
| 0016 | asm | swap | C reaches 100 swaps; combined 129 swaps in the bulk run |
| 0017 | asm | swap | swap-mechanism threat report |
| 0018 | asm | non-canonical-contract rug — threat write-up | |
| 0018 | infra | registry | Phase 2 first slice — token registry + UTXO classifier |
| 0019 | asm | B-model definition poisoning — threat write-up & conceptual frame | |
| 0019 | infra | registry | central token registry — server + sync client |
| 0020 | asm | T-001 non-canonical-contract rug — chipnet PoC | |
| 0021 | fiatm | stablecoin | fee economics + stablecoin worked example |
| 0022 | infra | D-1, D-2, D-3 production module + 10 BCH rate tier | |
| 0022 | infra | verify | production verify module — D-1, D-2, D-3 shipped |
| 0023 | infra | post-deployment mutability — empirical test | |
| 0023 | wallet | wallet | wallet display layer — D-1/D-2/D-4/D-6 surfaced in one structure |
| 0024 | asm | Protocol boundary — three empirical tests | |
| 0024 | wallet | wallet | Phase 2 Step 5 — tier-B send + import flows with D-5 |
| 0025 | asm | escalating-rate (bonding-curve) variant — empirical | |
| 0025 | wallet | wallet | tier-A send flow lifted into the wallet library |
| 0026 | asm | wallet | rate-escalation mechanics + consolidated protocol-vs-wallet report |
| 0026 | wallet | wallet swap | atomic swap plan lifted into the wallet library |
| 0027 | asm | asm swap | bonding-curve ASM swap works + dynamic-rate premium feature (ADR-0015) |
| 0027 | wallet | wallet | wallet shell — tx-shape builders for every plan |
| 0028 | asm | asm | unbacked (Token-family) assets are not ASM-swappable |
| 0028 | wallet | wallet | wallet finalized — runtime adapter, orchestrator, public API |
| 0029 | infra | wallet | chipnet scripts delegate to the wallet library |
| 0030 | infra | registry | SQLite-backed TokenRegistry |
| 0031 | infra | verify | chain-side bytecode discovery (D-1+) |
| 0032 | asm | wallet | Phase 3 — open-mint claim in the wallet library |
| 0033 | infra | live chipnet smoke test — the library broadcasts | |
| 0034 | wallet | tier-B live broadcast + an integration bug the smoke test caught | |
| 0035 | wallet | wallet cli | a usable CLI over DeviantWallet |
| 0036 | asm | swap | swap mechanics, divisibility, denomination economics & redemption safety |
| 0036 | wallet | local web UI | |
| 0037 | fiatm | dra | denomination (decimals) + DRA bonding-curve template |
| 0038 | fiatm | redeem cli | redeem + register flows, CLI/GUI value enrichment |
| 0039 | games-tote | mba pari escrow | GamePoolEscrow — 2-party pari-mutuel prize pool (MBA), with arbiter fee |
| 0040 | games-tote | escrow | arbiter-fee on irregular pots + GamePoolEscrowFlat (max($0.01, 1%)) |
| 0040 | wallet | keystore | KeyStore — cross-shell key-custody contract |
| 0041 | wallet | keystore bridge | RN mobile shell — runtime decision (ADR-0022) + bridge/KeyStore slice |
| 0042 | infra | noble crypto shim — libauth WASM replaced for cross-shell core | |
| 0043 | wallet | RN mobile shell — decision reopened (Capacitor spike) before any UI | |
| 0044 | wallet | cap-web spike — core runs client-side in a browser → GO for Capacitor | |
| 0044 | games-tote | tote pari prediction | event-prediction & pari-mutuel tote — design + ADR (no code) |
| 0045 | fiatm | oracle tote prediction | oracle-settled prediction markets — Family B + fixed-roster tote, chipnet-validated |
| 0046 | games-tote | tote pari | 4-party pari-mutuel tote — chipnet-validated |
| 0047 | games-tote | tote pari | open-entry NFT-free pari-mutuel tote (Tier 1) — chipnet-validated |
| 0048 | games-tote | covenant tote pari | Tier-2 open-entry, covenant-enforced pari-mutuel tote — chipnet-validated |
| 0049 | fiatm | mba tote | Tier-2 open tote, MBA-denominated (2-UTXO) — chipnet-validated |
| 0050 | wallet | sweep tote | Tier-2 tote refund + sweep backstops chipnet-validated; ADR-0025 denomination schedule |
| 0051 | games-tote | tote | Tier-2 open tote with operator rake (ADR-0017) — chipnet-validated |
| 0052 | infra | D-3 canonical artifacts embedded as JSON imports (browser blocker removed) | |
| 0052 | games-tote | tote | operator rake folded into the canonical tote templates + D-1 |
| 0053 | wallet | cashconnect mba | CashConnect dApp adapter scaffold + MBA-rake chipnet-validated |
| 0053 | wallet | wallet cosmogenesis | cosmogenesis wallet ui — four-tab shell, risk scale, dual-protocol apps |
| 0054 | games-tote | tote | K>2 multi-outcome tote — approach #1 (fixed K, inline totals), chipnet-validated |
| 0054 | wallet | nba taxonomy correction + bch-logo nav fix + asset-type detail sheets | |
| 0055 | wallet | ADR-0028 taxonomy peer-labels, remaining mockups, CashFusion, Trade→Market consolidation | |
| 0055 | wallet | walletconnect | WalletConnect handshake device-validated (Cashonize) |
| 0056 | wallet | cosmogenesis | CosmoGenesis four-tab shell built + wired (shells/app) |
| 0056 | wallet | cashconnect | reusable dApp-side proposer core (WC / CashConnect), unit-tested |
| 0057 | wallet | shell Avalanche — full Create wizard + ADR-0027/0028 reconcile | |
| 0057 | wallet | walletconnect | WalletConnect co-sign (bch_signTransaction) validated end-to-end |
| 0058 | asm | escalating founder-fee — 3-trigger CashScript feasibility test (chipnet) | |
| 0059 | asm | ADR-0029 accepted — stepped founder fee, decreasing sibling, D-1 wiring | |
| 0059 | wallet | Shell slices 4–8 built | |
| 0060 | asm | Family D collateralized binary share market (Polymarket model) design + ADR-0030 | |
| 0060 | wallet | Shell Slice 9 + live data wiring | |
| 0061 | wallet | cashconnect | CashConnect dApp adapter pinned to the installed cashconnect@0.0.25 API |
| 0062 | wallet | cashconnect covenant | CashConnect V0 cannot co-sign covenant txs; project ID + relay validated; sign-client bundle patch |
| 0062 | asm | clob | Family D config 1 pure-BCH CLOB split/merge chipnet-validated |
| 0062 | fiatm | stablecoin anyhedge | Non-custodial synthetic-USD stablecoin (AnyHedge-class) — ADR-0031 |
| 0063 | fiatm | clob mba | Family D configs 2+3 — MBA-collateral + fungible two-category CLOB chipnet-validated |
| 0064 | asm | Family D on-chain resting limit orders (ShareLimitOrderBCH) chipnet-validated | |
| 0065 | asm | oracle | Family D AMM (SharePairAMM) + ADR-0031 oracle-priced vault spike chipnet-validated |
| 0066 | fiatm | ExpiringMBA time-boxed self-backed instrument (ADR-0032) chipnet-validated | |
| 0067 | fiatm | stablecoin | ADR-0033 CDP stablecoin taxonomy: collateral backs the debt not the token; token is unbacked PTU |
| 0068 | fiatm | stablecoin | Propagate ADR-0033 CDP-stablecoin placement into Knowledgebase taxonomy docs |
| 0069 | wallet | wallet | buyer-funded PoS cashback (ADR-0034) — wallet split feature, chipnet-validated |
| 0070 | fiatm | stablecoin | Propagate CDP-stablecoin=PTU into glossary + Avalanche detail sheets (ADR-0033) |
| 0071 | fiatm | ADR-0033 + asset-landscape + glossary: the volatility paradox (CDP overcollateralized AND most volatility-exposed) | |
| 0072 | fiatm | ADR-0033 Decision 8: secured-is-not-backed, token+debt decoupled, neither side has per-unit backing | |
| 0073 | fiatm | ADR-0033 Decision 9: leverage + value-flow asymmetry (upside always flows past the holder) | |
| 0074 | wallet | Capacitor device build: CapacitorKeyStore | |
| 0075 | fiatm | BCH as a USD rail — ADR-0035 + wiki/usd-rail.md + ADR-0031 rejected-alternative amendment |
|
| 0076 | asm | NBA reader's guide added to wiki/asset-landscape.md |
|
| 0077 | fiatm | mba | usd-rail.md §4.4 — basket-stable, diversification-vs-offsetting, MBA-floored meta-stable |
| 0078 | asm | swap | SwapFlow: live rates + route detection |
| 0079 | fiatm | anyhedge | BCH-frame CDP + AnyHedge numerical simulation (scripts/sim-cdp-hedge-bch-frame.mjs) |
| 0080 | onramp | on-ramp | on-ramp providers ADR-0036 |
| 0081 | asm | swap | Swap broadcast: two-phase plan → execute |
| 0082 | wallet | cosmogenesis | CosmoGenesis: wizard + portfolio refinements |
| 0083 | wallet | wallet | Multi-wallet direction (Bitcoin.com model) + Consolidate feature |
| 0083 | wallet | wallet sweep | Seed sweep wallet feature |
| 0084 | fiatm | paryon anyhedge | AnyHedge + ParyonUSD chipnet integration — Turn 0 (compat validated, scope refined) |
| 0084 | wallet | sweep mba redeem | redeem-all batch MBA to BCH sweep |
| 0085 | onramp | onramp | onramp module implementation |
| 0086 | fiatm | metal | metal MBAs GLD SLV CUP decreasing fee and founder revenue test |
| 0087 | wallet | sweep mba | unpegged sweep-tokens for non-MBA categories plus ADR-0037 supply semantics |
| 0088 | asm | swap redeem | swap-all target two-step redeem-all then claim chipnet validated |
| 0089 | fiatm | wallet | Route B DeviantDescFeeSupply wired into wallet GLD SLV CUP first-class |
| 0090 | fiatm | metal | divisible metal variants GLDd SLVd fractional transfer and old-to-new migration |
| 0091 | wallet | qr-activity-token-import-code-split | |
| 0092 | onramp | onramp verify | onramp api-verify jurisdiction discover-ui |
| 0093 | fiatm | caveated divisible CUPd and claim confirmation whole-unit display | |
| 0094 | fiatm | dusd paryon | simulation rescaled to canonical ParyonUSD; dUSD future track recorded |
| 0095 | fiatm | dusd | three-way CDP liquidation model comparison @ 150% init; dUSD design space sharpened |
| 0096 | fiatm | oracle anyhedge | pre-Turn 1 — AnyHedge oracle message format + signing utility, 18/18 self-test pass |
| 0097 | wallet | pwa beta | Chipnet beta launch (PWA) |
| 0097 | games-tote | anyhedge | Turn 1 — AnyHedge v0.12 hedge-leg settlement validated on live chipnet |
| 0098 | games-tote | paryon anyhedge | Turn 1.5 — AnyHedge liquidation-path chipnet-validated; Turn 2 prep (8 Paryon artifacts compiled) |
| 0099 | fiatm | oracle | Path C confirmed — pre-Turn-2 PriceContract oracle format read; Turn 2 deployment plan |
| 0100 | wallet | Alpha hardening: shell tests, R-017 fix, native runbook | |
| 0101 | fiatm | mba | ADR-0039 MBA divisible-by-default denomination rule in create flow |
| 0102 | wallet | Shell splash + manifesto UX | |
| 0103 | wallet | wallet | sideshift tier-3 in-wallet shift level-b |
| 0104 | fiatm | wallet | default denomination refined to uniform 2dp with wallet-side minimum threshold |
| 0105 | governance | voting vote | PollCovenant binary on-chain voting (one-person-one-vote, permissionless expire) chipnet-validated |
| 0106 | governance | oracle voting vote | Voting composition trilogy: poll-as-oracle + tally-as-oracle + stake-weighted-vote chipnet-validated |
| 0107 | governance | voting | Voting-systems wiki doc + ADR-0040 (three primitives, three trust profiles, hashwar lesson) |
| 0108 | governance | voting sortition elder | Bicameral sortition + adaptive bootstrap + Elder/founder tiers: voting-systems.md §6 + ADR-0040 addendum (mechanism-complete design) |
| 0109 | infra | beta | Beta deployed live: testchipnet.duckdns.org |
| 0110 | governance | voting sortition | voting-systems §7 — historical lineage (sortition+bicameralism+bidirectional accountability), 10-system comparison table, 4 capture-scenario simulations, maturity-curve analysis |
| 0111 | governance | voting | voting-systems §6.2 three-stage gating + §6.7.1 founder-capture mitigation stack |
| 0112 | governance | voting elder | voting-systems §6.7.1: remove dead-man, add elevated founder/Elder demotion (strict mode + Elder supermajority) |
| 0113 | governance | voting elder | voting-systems bootstrap playbook + concrete 15-phase schedule + Phase 0/Elder-emergence rules |
| 0114 | governance | voting elder | Phase A: CitizenToken + ApplicationCovenant chipnet-validated (per-rank token + single-chamber voting + admission flow) + 3/3 Elder unanimous + Knowledgebase HTML |
| 0115 | governance | voting vote | voting-systems addenda 4+5+6: removal-bond economics + per-vote participation fee + three-layer vote-integrity framing; treasury-routing supersedes burn |
| 0116 | governance | citizen | Phase B chipnet-validated: RegistryState (adaptive threshold) + bicameral ApplicationCovenantB (Citizen + Delegated chambers) |
| 0117 | governance | Phase C chipnet-validated: ApplicationCovenantC with attempt cap + no-cascade fail-fast + anyone-callable fail() | |
| 0118 | governance | escrow vote | Phase D chipnet-validated: ApplicationCovenantD with embedded fee escrow + 40/60 paid-regardless-of-vote (§6.5 anti-bribery) |
| 0119 | governance | ballot | Phase E chipnet-validated: BallotCovenant + ApplicationCovenantE (commit-reveal secret ballot) + §6.1.5 no-KYC social-proof clarification |
| 0120 | governance | voting | voting-systems §6.1.5 sharpening (diminishing-bribe-value, off-chain pre-gate rationale) + §0.1 active-resistance anchor tying voting design to Deviant opening |
| 0121 | governance | covenant | feasibility NFT-bound x10 escalating price covenant chipnet proven |
| 0122 | onramp | combined x10 price plus share-ramp escalating NFT chipnet proven | |
| 0123 | governance | voting | anti-plutocracy voting asset escalating fee fixed-redeemable-backing chipnet proven |
| 0124 | governance | Correction: pre-gate is ON-CHAIN — EndorsementCovenant.cash chipnet-validated; §6.1.5 + Knowledgebase HTML revised; off-chain rationale dropped | |
| 0125 | governance | dual-ladder rate x10 plus fee-pct x10 NFT-bound chipnet proven | |
| 0126 | governance | vote | corrected vote dual-ladder fixed 100k redeemable plus escalating fee chipnet proven |
| 0127 | governance | voting elder | Phase F chipnet-validated: Elder tier (rank 0x03) + ElderFreezeAction (Layer-4 mitigation) + ComplaintCovenant (rising-cost ramp); cross-reference EscalatingVoteNFT in voting-systems.md §0.1 + §5.4 |
| 0128 | fiatm | dra | exponential DRA global self-backed rate doubling chipnet proven |
| 0129 | fiatm | dra | bounded-unroll batch claim (claim3) for exponential DRA |
| 0130 | fiatm | dra | step/tiered DRA — flat rate per tier, boundary-capped batch |
| 0131 | governance | dra plutocrat | step plutocrat cost ladder + super-exponential (r*3.14)^3 DRA |
| 0132 | governance | dra vote | modest +2-votes-per-step arithmetic vote DRA (reuses BondingCurveFT) |
| 0133 | governance | SortitionBeacon commit-reveal randomness (hybrid-E) proven on chipnet | |
| 0134 | governance | athenae | Athenae lifecycle simulation — one community + multi-community coexistence/isolation |
| 0135 | infra | double-spend empirically tested on chipnet — first-seen + race both reject; reorg gated by hashpower economics | |
| 0136 | fiatm | covenant mba stablecoin usdm oracle | oracle-priced MBA (USDm stablecoin) covenant + chipnet round-trip |
| 0137 | fiatm | swap stablecoin eurm oracle | EURm + multi-oracle-asset market, atomic cross-stablecoin swap (stage 3) |
| 0138 | fiatm | dea | DEA market + 111 chipnet swaps across 6 assets + DEA large-claim proof |
| 0139 | fiatm | usdm oracle | PegState single-oracle USDm price adjustment (epoch peg + deadband) on chipnet |
| 0140 | fiatm | swap usdm oracle | USDm multi-swap behavior run + oracle unit tests folded into classifier |
| 0141 | fiatm | covenant usdm eurm | zero-fee USDm0/EURm0 cross-swaps + covenant fee asymmetry |
| 0142 | wallet | wallet connector | connector — wallet-side WC v2 responder, ADR + design doc + typed scaffold |
| 0143 | fiatm | usdm oracle | USDm design amendment — §17 + new §17b (TVL oracle as third option) |
| 0144 | fiatm | mba | MBA shares design record + ADR-0042 |
| 0144 | fiatm | bchm gbpm jpym inrm | multi-currency BCHm chipnet (GBPm/JPYm/INRm) + merchant POS dApp scaffold |
| 0145 | fiatm | shares collection-side proven + naming pantheon + Avalanche rename map | |
| 0145 | fiatm | public-facing sound-money primer landed in wiki | |
| 0146 | fiatm | usdm controller | USDm design record — §12 expanded into six-layer adaptive monetary controller |
| 0147 | fiatm | usdm controller | USDm controller correction — five layers (not six); simulator added |
| 0148 | fiatm | usdm backtest | USDm 9-year historical back-test — Aug 2017 fork → Jun 2026 |
| 0149 | fiatm | usdm backtest | USDm / sound-money docs updated with 9-year back-test evidence |
| 0150 | fiatm | usdm controller | SESSION SYNTHESIS — USDm family + five-layer controller + back-test |
| 0151 | wallet | cosmogenesis agora artemision swap orbital | cosmogenesis ui pass — agora inline swap, naming reconcile (artemision/agora/orbital/spectrum), asterae planitae |
| 0152 | wallet | wallet cashconnect | Multi-protocol wallet responder — WC + CashConnect over one WC2 client, dispatched by shape |
| 0153 | wallet | agora swap orbital | agora orbital-swap spectrum naming, tier-b retired, single-tier, gold-cert-nba taxonomy, mca-mta one-way swap |
| 0153 | wallet | Cross-platform QR scanner — native Capacitor + web getUserMedia, wired into 3 callsites | |
| 0154 | asm | swap | retire legacy OP_RETURN swap files (swapMath swapBuilder OpenMintToken) |
| 0155 | fiatm | fiatm | FIATm — design record promoted to family level |
| 0156 | wallet | agora swap | Shell Agora propagation (Tier-B retired · adaptive swap) |
| 0157 | fiatm | fiatm redeem | FIATm multi-redeem chipnet experiment |
| 0158 | fiatm | sweep usdm | USDm §22 calibration sweep — first cut |
| 0159 | fiatm | fiatm arsm trym | FIATm hyperinflating-currency backtests (ARSm, TRYm) |
| 0160 | fiatm | arsm trym | ARSm/TRYm chipnet live + multi-state trajectory + §7b §14a |
| 0161 | fiatm | catalytic | catalytic-converter mini + scale tests — hypothesis validates |
| 0162 | fiatm | catalytic | catalytic-converter cross-substrate test — substrate is load-bearing |
| 0163 | fiatm | artemision | consolidation — §7a.1 Artemision + §7b lag + §8.1 institutional asymmetry + hypothesis doc |
| 0164 | asm | ADR-0044 BCH-native non-custodial P2P fiat market (design) | |
| 0164 | wallet | cauldron | AppsScreen rewired to the live responder — "Cauldron connected" misroute fixed |
| 0165 | asm | ADR-0045 P2P dispute resolution launch design (lean) | |
| 0166 | wallet | agora swap | Shell UX rules + Agora/Swap live-data bug fixes |
| 0167 | wallet | artemision hero | Hero balance · Backed-Assets card · Artemision in-place detail · BCH-default mint |
| 0168 | fiatm | fiatm | FIATμ Exchange demo + adaptive response layer design |
| 0168 | wallet | wallet hero walletconnect | Main-page redesign: Assets|Wallets sub-tabs · WalletConnect hero · per-wallet activity |
| 0169 | fiatm | real-data historical sim — empirical §7b validation + data-source paywall finding | |
| 0170 | cross-chain | usdm cross-chain crosschain wrap | chipnet USDm/PUSD AMM + real cross-chain wrap (USDt → τUSDt) |
| 0171 | cross-chain | cross-chain crosschain wrap | cross-chain wrap hardening: SafeERC20 fix, robustness suite, naming model, source-chain selector |
| 0172 | cross-chain | swap btc htlc | HTLC atomic swap validated on chipnet (T1 of "BTC on BCH rails") |
| 0173 | cross-chain | btc | BCH-native payment channel validated on chipnet (T2 of "BTC on BCH rails") |
| 0174 | cross-chain | swap btc | "BCH as BTC's L2", swap model validated end-to-end (T5 + round-trip) |
| 0175 | cross-chain | btc | T6 validated end-to-end with real coins: BCH records, BTC settles |
| 0176 | games-tote | tote football | football tote — real WC2026 fixture bet and settled live on chipnet; deployable platform |
| 0177 | cross-chain | LN→T6 routing validated end-to-end with real coins (one preimage, two chains) | |
| 0178 | cross-chain | swap btc | T6 trustless gaps closed: honest-close, real BTC↔BCH swap, bonded M-of-N |
| 0179 | wallet | wallet receive | T6-aware wallet UX: one-tap send/receive over the validated stack |
| 0180 | games-tote | tote football | standalone Tote platform — multi-market, create/bet/embed, live on chipnet; football launch category |
| 0181 | cross-chain | interchain tron | Build B complete: USDT(Tron)↔BCH rail (both flavors) + the interchain hub |
| 0182 | cross-chain | swap | T6 swap-out (Path A) + M-of-N IOU mint (Path B / B1), validated |
| 0183 | cross-chain | redeem btc | Path B / B2: BTC-IOU redeem (burn ↔ bonded pooled release), validated |
| 0184 | cross-chain | anthemus btc | Anthemus: order-book-matched BTC-over-T6 ↔ USDc spot fill, validated |
| 0185 | cross-chain | T6 MVP: engine library + self-custodial board update (Phases 1–2) | |
| 0186 | cross-chain | btc | T6 MVP Phase 3: real BTC 2-of-2, self-custodial settlement (PSBT) |
| 0187 | cross-chain | wallet | T6 MVP Phase 4a: two-party self-custodial wallet protocol |
| 0188 | cross-chain | wallet | T6 MVP Phase 4b: self-custodial wallet agents + keyless relay |
| 0189 | cross-chain | anthemus interchain ttrx sepolia | interchain hub extended: τTRX + Sepolia (both flavors) + Anthemus DEX |
| 0190 | cross-chain | wallet btc | T6 MVP: full channel lifecycle in the wallet (BTC 2-of-2 open + cooperative close) |
| 0191 | wallet | keystore wizardconnect cashconnect | CashConnect network wiring + KeyStore HD derivation for WizardConnect |
| 0192 | wallet | cashconnect covenant cauldron checkers | CashConnect covenant-carrier claim corrected; Checkers-session instructions written; research pass on BCH Guru + Cauldron |
| 0193 | wallet | keystore wizardconnect | WizardConnect adapter + signer inputPaths + KeyStore exportXpub (Task 3 Phase 1 + Phase 2) |
| 0194 | wallet | wizardconnect checkers | WizardConnect responder integration + multi-protocol compatibility tests + Checkers reply |
| 0195 | infra | docs reorg snapshots wiki index registry | docs-by-domain reorg — snapshot frontmatter + generated Quick-find index; wiki foldered into domain branches with a router |
| 0196 | wallet | wallet keystore multi-wallet 0083 security | Multi-account keystore reworked to the 0083 all-in-one model (Bitcoin.com) — HD sub-accounts + independent seed/WIF, shared PIN, unlockAll |
| 0197 | cross-chain | correspondent reserve-ledger covenant cashtoken unified-usdt chipnet asset-generic | unified-USDT per-chain reserve covenant — one fungible token + on-chain reserve ledger, enforced + validated on chipnet |
| 0198 | cross-chain | correspondent phase-1 deposit sepolia usdc metamask service reserve-ledger mint-equals-lock | Phase-1 correspondent deposit rail — service + MetaMask UI on the reserve covenant; Sepolia USDC → BCH validated end-to-end |
| 0199 | cross-chain | correspondent phase-1 tron tronlink usdt nile second-ledger multi-chain | P1-6 — second correspondent ledger (Tron/TronLink → USDT) live; Nile USDT → BCH validated end-to-end; the rail is now multi-chain |
| 0200 | cross-chain | correspondent redeem withdraw burn-and-release round-trip single-chain tron ethereum | correspondent REDEEM leg (BCH → origin, single-chain): burn IOU on BCH → release real USDC/USDT on Sepolia/Nile; round-trip validated both chains; UI Deposit/Withdraw toggle |
| 0201 | cross-chain | correspondent gateway wallet-legibility verification intent-ux multichain-wallet plan | human-named source gateway (DeviantBitcoinCashGateway — wallets show 'Deposit To Bitcoin Cash'); intent review UX; verify tooling; From→To own-wallet Send UI planned |
| 0202 | cross-chain | multichain-wallet w1 derivation ethereum tron self-custodial mobile | W1 — derive the wallet's own Ethereum + Tron addresses in-app from its key (no ethers, no external wallet); wired into the withdraw flow, verified against tronweb + EIP-55 |
| 0203 | cross-chain | multichain-wallet w2 in-app-signer ethereum rlp eip-155 no-metamask mobile | W2 — in-app EVM signer: sign approve + depositToBitcoinCash with the wallet's derived key (hand-rolled RLP/EIP-155, no ethers); full deposit driven through the app with NO external wallet, validated on real Sepolia + chipnet |
| 0204 | cross-chain | uniform-usd uniform-eur basket-reserve issuer-x-chain oracle-priced-deposit pro-rata buffer pause adr-0051 m3 covenant mock-vm | M3 — UniformReserve.cash: the (issuer×chain) basket covenant for one unified currency (USD/EUR), generalizing UnifiedUsdtReserve with oracle-priced deposit, per-cell caps, pro-rata redemption, buffer, and pause; 6/6 on MockNetworkProvider |
| 0205 | cross-chain | uniform-usd uniform-eur fx-swap cross-currency band-floor headroom batch-rebalance shared-fx-oracle adr-0051 m3b covenant mock-vm | M3b — UniformReserve.fxSwap: the counterparty-free USD↔EUR FX desk wired onto the M3 baskets; co-spends both controllers, mints out-currency against reserve headroom (band floor → over-band refuses to DEX), burns in-currency, cells/buffer/pause untouched; 4/4 on MockNetworkProvider |
| 0206 | cross-chain | uniform-usd uniform-eur uniform-fiat dex-overflow-router market-provider band-refusal mvp adr-0051 m4 stablecoin-tracking issuer-x-chain docs | M4 — uniform-router: off-chain DEX-overflow router (desk-first, over-band/dry-basket → Anthemus constant-product DEX; compose desk+market); 5/5 node test. MVP (M3+M3b+M4, debit) reached. Plus the UniformFiat/ doc home: currency-agnostic design + per-currency USD & EUR folders each with a stablecoin×chain track record. |
| 0207 | asm | game-currency tiered-mint-fee minimum-billable oracle-fee checkdatasig free-floating-mba deviant-tiered-mint-oracle-ft adr-0052 chipnet-validated decoupled-currency pari-escrow-consumer anti-dust | DeviantTieredMintOracleFT — a standalone free-floating BCH-backed game currency with a tiered mint fee ($0.01 flat up to $1, 1% above), expressed as one continuous max()/"$1-minimum-billable" curve. Oracle sizes the fee ONLY (peg/redeem stay oracle-free), so oracle blast radius is ~1c. Built + compiled + chipnet-validated 5/5 (3 tiers + floor-underpay rejection + P2PKH redeem). ADR-0052; currency stays decoupled from any pari escrow. |
| 0207 | cross-chain | uniform-usd uniform-fiat oracle-hardening multi-oracle quorum 2-of-3 nullfail staleness outpoint-binding overflow-guard maxprice adr-0051 m5 covenant mock-vm testnet-funding | M5 slice 1 — oracle-trust hardening on UniformReserve: 2-of-3 oracle quorum on deposit + fxSwap (no single oracle moves the reserve), outpoint-bound staleness rejection, maxPrice ceiling, int64-overflow guard; 5/5 new + 26/26 across the suite. Honest finding: a wall-clock freshness bound is NOT expressible in BCH script. |
| 0208 | cross-chain | uniform-usd uniform-eur chipnet e2e adjustreserve prefunded-headroom script-size-limit 1650-bytes oracle-priced-deposit fxswap pro-rata adr-0051 m6 wallet-ui-contract | M6a — the Uniform Fiat loop VALIDATED ON LIVE CHIPNET with real testnet coins: genesis USD+EUR baskets → prefund headroom → oracle-priced deposits (10 USDC credited 8.70 USD at $0.87) → counterparty-free USD→EUR fxSwap → pro-rata EUR withdraw. Surfaced + fixed a real gap (no way to prefund redeemable inventory) and hit BCH's 1650-byte script limit twice, forcing two covenant merges. |
| 0209 | cross-chain | uniform-fiat fiatm-controller oracle-median phase-staggered cadence wick-rejection zero-lag signaling-machine fail-safe-hold adr-0051 m5 off-chain | M5 slice 2a — the FAST signaling controller: smoothing by CROSS-SECTIONAL MEDIAN across phase-staggered oracles (wick killed on the first tick, zero lag) instead of temporal EMA lag; staggering gives cadence T/N (4x60s->15s, 5x75s->15s, 6x60s->10s), all deciding in 60s = 10% of a 10-min budget; HOLD fail-safe. 7/7 + sim. |
| 0210 | cross-chain | uniform-fiat credit-ladder risk-incidence-simplex 40-30-30 debit-default opt-in-gating drift-margin not-a-cdp band pro-rata adr-0051 m5-complete off-chain | M5 slice 2b — the credit ladder + 40/30/30 risk-incidence split: desk/swapper/withdrawer as simplex vertices, reproducing ADR-0051's worked example (swapper 1.5% of swap, withdrawer 0.167% of base, desk 0.2% of pool, all-in $1.67/$100 < Ethereum gas); desk worst case = alphabandmove = 0.8% of reserve; DEBIT is default and any credit rung REFUSES without explicit opt-in + the entire §3 stack. 10/10. M5 COMPLETE. |
| 0211 | cross-chain | uniform-fiat cell-registry issuer-x-chain capacity-ceiling 40-byte-commitment four-cells usdc-base config-not-code diversification-tension adr-0051 scaling | Scaling the basket — a (currency -> issuer x chain cell) registry replacing the old UnifiedUsdtReserve CHAIN_INDEX model; USDC-Base added as a config-only row (Base Sepolia funded, generic EVM rail); and the 40-byte commitment's FOUR-CELL ceiling made explicit + ENFORCED. USD is now FULL, which puts it in real tension with constraint 3 — the next architecture decision, with costed options. |
| 0212 | cross-chain | uniform-fiat aggregate-commitment cell-capacity unlimited-cells ledger-root quorum-attested-caps monoid redeem-script-size 1650-bytes prototype adr-needed cross-chain | Prototype validated — UniformReserveAggregate.cash proves the aggregate-commitment model (cell-capacity.md Option 1a): 40-byte commitment = aggregateBacking(8) || ledgerRoot(32), cells fully off-chain + UNLIMITED, hot paths read only the aggregate, caps quorum-attested. 5/5 mock. Redeem script 560 B vs UniformReserve's 1282 B (2.3× smaller); two controllers co-spend at ~1120 B < the 1650-byte limit UniformReserve hit at 1666. Confirms the recommendation; not yet productionized (needs an ADR). |
| 0213 | cross-chain | uniform-fiat aggregate-commitment adr-0053 migration chipnet e2e unlimited-cells ledger-indexer quorum-attested-caps fxswap-cospend 1650-bytes production-covenant cross-chain | ADR-0053 migration DONE + VALIDATED ON LIVE CHIPNET — UniformReserveAggregate (aggregate(8)+root(32) commitment, cells unlimited off-chain, caps quorum-attested) is now the production covenant, superseding the 4-cell UniformReserve. fxSwap at parity; off-chain indexer services/uniform-registry/ledger.mjs. Chipnet loop 5/5 with 6 cells (>4) + the two-controller fxSwap co-spend ACCEPTED under the 1650-byte per-input limit UniformReserve hit at 1662. |
| 0214 | cross-chain | uniform-fiat basket-scaling vetted-catalog issuer-x-chain unlimited-cells funded-testnets buildledger config-not-code adr-0053 caps cross-chain | Basket scaling — repurposed services/uniform-registry/registry.mjs from the obsolete 4-cell/slot model to the aggregate-era VETTED CATALOG (code-keyed, unlimited, capUsd+status+rail per cell; buildLedger feeds ledger.mjs). Populated USD with 10 cells + EUR with 4, all on the funded testnets. Scaling is now a config row, not code. 9/9 test; chipnet driver sources cells from the catalog. Off-chain suites 40/40. |
| 0215 | cross-chain | uniform-fiat pyusd onboarding issuer-x-chain same-asset-two-chains chipnet e2e vetted-catalog aggregate-covenant adr-0053 scaling cross-chain | PYUSD (PayPal USD) onboarded into the Uniform USD basket on LIVE CHIPNET — the SAME issuer on TWO chains (Ethereum + Solana) became two distinct (issuer×chain) cells folding into ONE unified USD aggregate. Added PYUSD.Ethereum + PYUSD.Solana to the vetted catalog (USD now 12 cells); deposits driven from buildLedger + 2-of-3 quorum; verified on-chain (user holds 7.00 USD = 4.00 + 3.00). EVM real-lock rail ready for PYUSD.Ethereum; Solana rail is a follow-on. |
| 0216 | cross-chain | uniform-fiat pyusd real-lock sepolia cross-chain lock-and-mint evm-vault aggregate-covenant integrated correspondent adr-0053 adr-0047 cross-chain | PYUSD·Ethereum onboarded FOR REAL — a genuine PYUSD lock on Ethereum Sepolia (5.00 PYUSD into an EVM vault, real on-chain tx) backs 5.00 unified USD minted on chipnet via the aggregate covenant. locked == minted, independently verified both chains (Sepolia lock tx SUCCESS + vault holds 5 PYUSD; BCH Alice holds 5 USD). Cell graduates vetting → INTEGRATED (3rd validated USD rail). PYUSD·Solana stays vetting (no Solana rail yet). |
| 0217 | cross-chain | uniform-fiat solana-rail correspondent token-2022 pyusd real-lock two-chains devnet aggregate-covenant integrated adr-0047 cross-chain | Solana correspondent rail BUILT (services/correspondent/solana.mjs, Token-2022 aware, websocket-free) + PYUSD·Solana onboarded FOR REAL — a genuine PYUSD lock on Solana devnet (3 PYUSD into an operator vault, real Token-2022 tx finalized) backs 3 unified USD minted on chipnet. Verified both chains. PYUSD is now a TWO-CHAIN issuer with BOTH legs real & integrated (Ethereum 0216 + Solana 0217). USD basket: 4 integrated rails. |
| 0218 | infra | infra chipnet electrum stale-utxo missing-inputs root-cause wallet-hygiene chipnet-safe correspondent release-readiness bugfix | Root-caused + fixed the chipnet wallet-'stuck' bug ('Missing inputs' on broadcast). CAUSE: chipnet electrum servers return a STALE UTXO index — they list already-SPENT outpoints as unspent (measured: cashscript provider 94 vs mainnet-js 81, 14 phantom spent-change outputs); a driver building from that view includes a spent input → node rejects. FIX: scripts/lib/chipnet-safe.mjs (source wallet UTXOs from mainnet-js, prefer confirmed, accept fresh 0-conf, retry on stale-reject). Validated: fixed driver mints first-try on a healthy wallet. LIMIT: a wallet already corrupted by a stale index can't be recovered client-side — needs reindex/rotation + reliable endpoint (release recommendation). |
| 0219 | cross-chain | uniform-fiat redeem round-trip withdraw release pyusd sepolia solana correspondent aggregate-covenant chipnet real-lock adr-0053 cross-chain | REDEEM ROUND-TRIP CLOSED — the full Uniform USD circle proven with real coins on BOTH PYUSD chains in one run: real lock 2 PYUSD on Sepolia (EVM vault) + 2 on Solana devnet (Token-2022) → chipnet mint 4 unified USD into both cells → covenant pro-rata withdraw burns all 4 (FT back to controller, aggregate → 0) → REAL releases (Sepolia vault.release + Solana rail release) matched to the ledger's largest-first cell debits. 10/10 checks; every balance round-trips; independently re-verified on all three chains. |
| 0220 | cross-chain | uniform-fiat correspondent solana adapter memo token-2022 deposit-rail redeem service chipnet-safe pyusd devnet cross-chain | Solana wired into services/correspondent as a FIRST-CLASS ledger: config row PYUSD (Solana) + solana-adapter.mjs (vault = operator ATA, BCH recipient rides an SPL Memo in the lock tx, tx signature IS the lockId, Token-2022 aware) joining evm/tron behind the same server interface. bch.mjs mint operator hardened onto chipnet-safe + wallet D (off corrupted C). Validated by scripts/correspondent-e2e-solana.mjs 7/7 through the REAL service handlers: quote → memo-lock on devnet → confirm (finalization-gated, idempotent) → BCH mint → redeem quote → covenant burn → release on Solana; all txs re-verified independently. |
| 0220 | wallet | anthemus dex order-book relay agora ui chipnet | Anthemus DEX MVP — AnthemusOrderBook covenant (token↔token + BID + taker fee, 7/7 mock + 8/8 live chipnet), discovery relay, and TWO Agora interfaces (Swap + Exchange) over one engine |
| 0221 | wallet | wallet uniform-fiat m6b ui agora usd eur deposit-disclosure swap route-plan honest-label adr-0051 adr-0053 | M6b BUILT (user-directed handover from the UI session): the Uniform Fiat 'USD'/'EUR' surface in Agora — new self-contained Fiat panel (screens/UniformFiat: Hold/Deposit/Swap) implementing the posted WALLET-COORDINATION contract exactly: plain tickers one row per currency, MANDATORY oracle-price deposit disclosure ('USDT is trading at $0.9992 — you will receive 9.99 USD'), 'Swap' copy with the RoutePlan desk·market split rendered as a normal fill, honest label + live transparency (backing/circulating/collateralization + cells as backend detail) and pro-rata withdraw on integrated rails. Typed engine ports router.mjs + ledger semantics; AgoraScreen touch is the minimal 4-line Anthemus pattern. tsc clean · 149/149 · flows driven in-browser. |
| 0222 | cross-chain | uniform-fiat eurc euro sepolia real-lock integrated basket-scaling aggregate-covenant chipnet cross-chain adr-0053 | EURC·Ethereum onboarded FOR REAL — the FIRST real EUR cell: a genuine Circle EURC lock on Sepolia (5 EURC, vault 0x5fE18BEa…, tx 0x17f8cc26…) backs 5.00 unified EUR minted on chipnet (cat e9aca38c…) via the aggregate covenant; 4/4 reconciled locked==minted, both legs independently re-verified. Uniform EUR is now real the same way Uniform USD is. Catalog: EURC.Ethereum candidate → integrated (EUR 1 integrated of 4). Basket-scaling audit: Base/Arbitrum/BSC/Fuji hold tokens (EURC·Base 20, USDC·Arbitrum 20) but ZERO gas ETH on the operator address — those graduations are gas-blocked, not code-blocked. |
| 0222 | wallet | anthemus dex amm lp-tokens curve-fee adr-0049 chipnet | SharePairAmmV2 — fractional LP tokens + 0.30% curve fee validated (4/4 mock, 5/5 live chipnet incl. fee accrual on burn); pool-as-maker levels in the relay; ADR-0049 ratifies the Anthemus business model against real bytecode |
| 0223 | cross-chain | uniform-fiat correspondent aggregate-covenant migration op-return redeem-binding marker quorum eurc service chipnet sepolia adr-0053 cross-chain | The correspondent SERVICE now speaks the PRODUCTION aggregate covenant + burns are marker-bound. (1) Burn↔redeem BINDING: /redeem/quote issues an OP_RETURN marker DVRD: the burn tx must carry; /redeem/confirm verifies marker AND ledger drop — validated live on the Solana rail 8/8 incl. the negative (a rogue ticket pointing at the same burn REFUSED; one burn can never satisfy two redeems). (2) AGGREGATE MIGRATION: config rows carrying currency: route through new bch-aggregate.mjs onto UniformReserveAggregate (per-CURRENCY controller, 2-of-3 quorum, persisted off-chain cell ledger, largest-first burn debits); EURC (Ethereum) row validated end-to-end with real coins 7/7 — real EURC lock → unified EUR mint (cell credited) → marker-bound aggregate burn → real vault.release; on-chain aggregate == ledger throughout. Phase-1 rows unchanged. |
| 0223 | wallet | anthemus dex uniform-fiat deposit correspondent ui adr-0049 | Anthemus lists NO USD-stablecoin pairs (unified USD eliminates the USDT/USDC/PYUSD matrix) — pairs are EUR/USD + BCH/USD; new Deposit tab (asset × chain chosen separately → correspondent rail → unified USD at the user's BCH address, price disclosure enforced); ADR-0049 amended |
| 0224 | cross-chain | uniform-fiat axis-caps issuer-cap chain-cap ledger registry diversification adr-0053 cross-chain | AGGREGATE-AXIS caps shipped (the gap flagged since 0214): UniformLedger now enforces per-ISSUER and per-CHAIN sum caps across cells (constraint §3 'cap on BOTH axes') — ten USDC cells can no longer quietly concentrate the basket in Circle or in Ethereum. Caps configured per currency in the catalog (issuerCapsUsd/chainCapsUsd, scaled by buildLedger), enforced in deposit AND fund alongside the per-cell cap; absent name = unbounded axis. Off-chain suites 41/41. |
| 0224 | wallet | agora ui uniform-fiat metroon scan ia my-assets | Agora IA reorg (user-directed) — Fiat tab removed; My Assets filters = MBA | Tokens | Fiat with the Uniform-Fiat surface (USD/EUR + Deposit/Swap) embedded; Metroon add-asset gains a Scan mode that detects unregistered on-chain holdings (40 found live) and prefills registration |
| 0225 | cross-chain | uniform-fiat oracle live-feeds median market-priced-deposit gresham coingecko coinpaprika coinbase aggregate-covenant disclosure cross-chain adr-0053 | LIVE oracle price feeds shipped + the service's aggregate deposits are now MARKET-PRICED (constraint §4, the Gresham fix, from real markets): services/uniform-oracle/feeds.mjs medians CoinGecko+CoinPaprika+Coinbase (keyless, per-source failure isolation, sanity band, <2 sources ⇒ DEGRADED ⇒ par fallback DISCLOSED); /quote returns a live disclosure ('EURC is trading at €1.0000 — you will receive ≈ 2.00 EUR'), /confirm re-fetches and mints amount × median (discount stays in the vault as backing ⇒ reconcile now checks locked ≥ circulating + reports overCollateralizedBy). Validated: 8 injected-fetch unit tests (incl. the 0.87 Gresham case) + live E2E 8/8 on the EURC aggregate row (real 2-source median at both quote and confirm; controller + ledger PERSISTENCE across runs proven). Off-chain suites 49/49. Phase-1 rows stay par (their covenant can't express pricing — one more reason aggregate is production). |
| 0226 | cross-chain | uniform-fiat deposit-band withdrawal-policy report-16 gresham pro-rata writedown reservoir simulation feeds cross-chain adr-0051 | DEPOSIT BAND shipped (user decision) + withdrawal policy analyzed (report-16): deposits credit 1=1 within 3% of par (no punishment for jitter), MARKET value beyond it, premium capped at par — implemented in feeds.mjs creditedAmount (UNIFORM_DEPOSIT_BAND_BPS, default 300) + the M6b UI engine/disclosure; validated 9/9 unit + LIVE E2E 8/8 where EURC's real median €0.9995 correctly credited par-in-band. Withdrawal scenarios (Bob: 100 USDT @ 0.94) simulated in sim-uniform-withdraw-policy.mjs: value-compensated release (100 claims → 106.38 units) REJECTED — the only policy that shrinks the reservoir, creates a last-holder bag + a USDC→USDT drain arbitrage; RECOMMENDED = fixed 1:1 UNITS per rail (reservoir never shrinks, depegged-rail exits self-select and clean the basket) PLUS the timely band-triggered writedown+pro-rata (without it, healthy-rail exits dump the whole loss on the last holder). Withdrawal policy awaits user confirmation before an ADR. |
| 0226 | games-tote | gmx game-currency checkers game-loop case-b-mint-into-escrow game-pool-escrow-flat async-shared-pot tiered-mint-fee adr-0052 chipnet-validated redeem-p2pkh decoupled-currency | GMX as a game's stake currency — the FULL loop proven live on chipnet: oracle-signed tiered mints (both fee tiers), buy-in into GamePoolEscrowFlat via BOTH paths (Case B atomic mint-into-escrow for a BCH-only player + plain FT send for a GMX holder, async shared-pot Mode 1), a REAL engine-driven checkers match deciding the winner, arbiter resolveArbiter paying 49 GMX to the winner + 1 GMX flat fee, and winner cash-out GMX→BCH by plain P2PKH. 7/7 txs accepted; currency and escrow stayed fully decoupled. |
| 0227 | wallet | wallet keystore multi-wallet 0083 consolidate ui | Multi-wallet UI wired to MultiKeyStore — all-in-one boot via unlockAll, Settings→Wallets live (add/import/remove), Consolidate broadcast on chipnet |
| 0228 | wallet | wallet artemision genesis issuance nba cashtokens registry adr-0054 chipnet | Artemision Create wizard broadcasts for real — MBA genesis wired, NBA genesis designed + built (ADR-0054: fungible supply is fixed at genesis), derive-and-verify register bridge; 3 genesis txs on chipnet |
| 0228 | wallet | wallet spv headers merkle-proof pow server-pool quorum failover electrum whitepaper-s8 trust-model chipnet | SPV core BUILT (user-directed: multi-node 5–10, failover, keep own Fulcrum): shells/app/src/core/spv/ — headers.ts (80-byte parse, PoW check, checkpoint-anchored HeaderChain, cumulative work, rollback), merkle.ts (electrum get_merkle branch → PoW-backed inclusion), pool.ts (ServerPool: WSS pool of N endpoints, targetLive=5, automatic failover rotation, quorum-compared requests with majority-wins + divergence alarm, broadcast fan-out, per-server header subscriptions + tip-spread alarm, own-endpoint slot first). 9 tests against REAL chipnet fixtures incl. a genuine merkle proof of our own tx — 158/158, tsc clean. Current wallet classified honestly: non-custodial client-signing but SERVER-TRUSTING (0218 was the proof); this module is the S1–S3 delta to whitepaper §8. ASERT validation deferred (S1b); wiring into wallet.ts crosses the keystore seam (contract posted). |
| 0229 | wallet | wallet spv p2p transport handshake chipnet mainnet phase-0 capacitor mobile trust-model whitepaper-s8 | Phase 0 (gating) DONE: BCH P2P version/verack handshake proven end-to-end against real chipnet + mainnet peers (6/6 nodes, BCHN 28/29 EB2/EB32). scripts/spv-p2p-handshake.mjs — stdlib-only Node spike, authoritative BCHN chainparams (chipnet magic e2b7daaf port 48333). PHASE-0-TRANSPORT-FINDING.md picks the mobile transport: shells/mobile ruled out (skeleton, unbuilt), option 2 Capacitor community TCP plugin (@devioarts/capacitor-tcpclient) recommended for spike, option 3 first-party Kotlin/Swift native plugin as the durable pre-mainnet target, option 4 desktop-only as the honest interim state. Two-lane rollout: 1a Node transport into shells/app SPV core NOW (real headers on desktop/Vitest), 1b Capacitor plugin behind a P2PTransport seam, 1c native plugin before mainnet. Badge stays server-reported anywhere the socket cannot open. |
| 0229 | wallet | wallet spv s2 verifier merkle-proof sliding-window pow-badge activity-feed trust-model chipnet | SPV S2 WIRED: new src/core/spv/verifier.ts — SpvVerifier builds a 210-block VERIFIED sliding window (checkpoint-anchored, PoW+link-checked; live chipnet: 211 headers in ~2.3 s through the app's own provider) and grades every confirmed tx: 'chained' (in-window) / 'header-pow' (older — lone PoW-checked header + inclusion proof) / 'mempool' / 'unverified'; proof caching, advanceTip with reorg rollback, fromProvider (today) + fromPool (S3). Minimal flagged keystore-seam touch: HistoryItem.spv? + getActivityItems(s, spv?) annotates via verifyAll. UI badge contract posted ('PoW-verified ✓' vs server-reported). Validated: 8 fixture tests (all levels, cache, tamper refusal, advanceTip) + live chipnet smoke 2/2 (real txs graded correctly). Suite 561/561, tsc clean. |
| 0230 | wallet | wallet spv p2p headers wire-protocol transport node-net header-sync chipnet phase-1a whitepaper-s8 trust-model | Phase 1a DONE end-to-end on desktop: shells/app/src/core/spv/p2p/ ships browser-safe wire layer (framing, version/getheaders/headers encode-decode, magic-scan MessageParser with resync + 32 MB payload cap), P2PTransport seam (NodeNetTransport for tests/desktop; BrowserStubTransport fails loudly; slots for Capacitor plugin Phase 1b + first-party native Phase 1c), Peer (version/verack + NODE_NETWORK gate + sendheaders opt-in + getHeaders(locator) + tip subscription), and syncHeaders() (opens N peers in parallel, highest-tip leader, getheaders 2000-batches feed the existing 0228 HeaderChain — PoW + link + anchor unchanged, divergent peer dropped and next-highest survivor retries). Proven live: 1010 chipnet headers PoW-verified in 1.6s from 6 independent peers (scripts/spv-p2p-headersync-chipnet.mjs). 175/175 vitest (17 new: wire round-trip, parser resync/oversized-guard, Peer state machine over MockTransport handshake success + NODE_NETWORK reject + refuse + getheaders; live E2E gated SPV_P2P_LIVE=1); tsc clean. |
| 0231 | wallet | wallet spv chain-view asert phase-2 pow-verified divergence provenance whitepaper-s8 trust-model chipnet | Phase 2 DONE: shells/app/src/core/spv/chain-view.ts + asert.ts ship the unified 'is this tx confirmed & under how much work' surface. verifyTx returns provenance-tagged Verification { source: 'pow-verified' | 'server-reported' | 'absent', depth, workUnder, proofRoot, chainRoot } — 'pow-verified' ONLY when the electrum-supplied merkle branch commits to a root the P2P-sourced HeaderChain assembled itself. ChainView layers on divergence alarms (server-vs-chain hash mismatch, p2p-tip-below-server-tip beyond tolerance) via onDivergence — alarms not log lines. ASERT-3D validator (S1b) implemented from BCHN aserti32d.cpp (bigint fixed-point, cubic-fit factor, testnet 20-min EDA carve-out); wired into ChainView via optional verifyBits hook — HeaderChain (0228) UNTOUCHED, composition. End-to-end proven on live chipnet: 1159 real headers synced from 5 peers → verified real chipnet tx c5c7a6ec… at height 315680 pos 94 branch-len 7 → source=pow-verified, depth=1156, chainRoot matches proofRoot exactly (scripts/spv-p2p-verify-tx-chipnet.mjs). 189/189 vitest (was 175, +14 for ChainView provenance + tamper cases + divergence + ASERT identity/EDA/reject-easy-target); tsc clean. Persistence, wallet.ts wiring (keystore seam), UI badge component still pending — contract published in WALLET-COORDINATION.md. |
| 0232 | wallet | wallet wizardconnect connect nostr walletkit session-rehydration lgpl chunking wc cc wz | WizardConnect punch-list §6, §7.3, §7.5 closed (WIZARDCONNECT-INTEGRATION-GUIDE.md items now green: §7.1 fake pre-flight, §7.2 signCancelled+remoteDisconnect, §7.4 WIF honest message were already done). §7.5 decoupled WZ from VITE_WC_PROJECT_ID: getWalletKit() returns null (not throws) when the env var is unset, ResponderConfig.walletKit is nullable, responder wraps every WalletKit call in a guard, pair() surfaces a clear 'CashConnect/WalletConnect pairing requires VITE_WC_PROJECT_ID — WizardConnect still works' — WZ (Nostr) has no Reown dependency and must not be held hostage by a missing project ID. §7.3 wallet.getActiveSessions() rehydration at responder boot: WC/CC sessions WalletKit restored from its own IndexedDB now reappear in the responder's map after reload, protocol classified by whether CC-only methods are present. §6 LGPL §4(d)(1) vendor-wizardconnect chunk added to vite.config.ts manualChunks (the 'separately replaceable chunk' obligation for linking, LGPL §4 Combined Work — copyleft does NOT propagate to Deviant since we don't modify the library). Guide updated with 2026-07-29 status note. 195/195 vitest (was 189, +6: 3 WZ-only mode + 3 rehydration), tsc clean. Still open: §7.6 ADR, §7.7 relay-URL settings surface, §8 on-device verification (needs a device). |
| 0233 | wallet | wallet audit release ui terminology bits connectors chipnet apps settings main agora artemision | Wallet release audit pass 1 — drove shells/app end-to-end on chipnet Wallet C in the browser preview, walked every top-level tab (Main / Agora / Artemision / Apps / Settings) plus sub-tabs (Assets|Wallets, Anthemus Swap|Exchange|Deposit, Create|Katalogos, Discover|Connected, dev-wallet picker). One functional bug FIXED live: chipnet dev-wallet mode surfaced 'account is locked; unlock() first' as a red banner on the Apps tab — WZ init hit KeyStore.exportXpub while the vault-less dev session was locked. Same silent-skip pattern as §7.4 WIF-restored, missed for the 'locked' code (my snapshot 0232 fix). Fix in useConnect.ts:220-231, verified: banner gone, honest console.info fires in its place. Rest of the audit is a punch list of terminology (systematic 'sat'→'bits' violations across Main hero, Wallets rows, Backed-Assets drill-down, Settings token definitions, Agora My Assets), IA (Settings gear only on MAIN, 'WALLETS: No wallets yet' misleading in dev-mode, MAIN tab lacks a glyph while others have ⬡/△/⧉), and polish (undecoded PNV acronym, missing BCH suffix on hero category strip). No fake data surfaced — every 'demo' surface (Anthemus book, Deposit catalog) already carries an honest label. See snapshot body for the full findings list + suggested fix locations. |
| 0234 | asm | potidaea orbital-swap asm-ui cosmo-genesis landing-site desktop-app artifact dist-deploy bns ipfs katalogos pinax metroon-rename glossary bits-terminology fiatm uniform-usd hybrid-usd mixed-backing cdp che gmx deviant-tiered-mint-oracle single-template-canonical nba-fee-open | Potidaea ASM design build-out — a desktop landing site + a responsive Orbital-Swap web app (Swap/Katalogos/Olympia/Yield) on CosmoGenesis, published as an Artifact + a deployable dist/ with a VPS/BNS/IPFS runbook; the Metroon directory split into Katalogos (read/catalogue) + Pinax (write/registration); the project-wide sat→bits terminology rule added to CLAUDE.md and swept across 54 wiki/Parameters docs + the app-shell UI; and the fiat-asset economics pinned — FIATμ (BCH-backed, ASM-swappable) vs Uniform USD (deposited-stablecoin reserve, NBA, DEX-only), with a hybrid mixed-backing 'dial' simulation. CHE + GMX game-coin descriptors verified (two mint templates). |
| 0234 | wallet | wallet ui terminology bits copy release-polish chipnet | Terminology sweep DONE per project rule bit ≠ sat: user-facing 'sat/sats' → 'bit/bits' across shells/app. Touched 12 files (MainScreen hero + Wallets rows + BCH-row unit label + Backed-Assets drill-down backing rate; AgoraScreen My Assets PNV + rate lines; ArtemisionScreen wizard rate copy; AssetDetail backing/rate lines; ConsolidateFlow + SweepFlow fee lines; SettingsScreen token-definition rows; TokenImportModal field label + rate row + validation copy; SendFlow raw amount; AsmCore rate/fee/change lines; core/genesis error message). Code identifiers (rateSats / feeSats / satsToBch / fmtSats / satoshis / backingRateSats / sats param names) LEFT ALONE — the rule scopes to display only. Live-verified in browser (Wallet C): Backed drill-down 1 CAP = 100 bits and 1 ASM2 = 1,000 bits ✓; Agora My Assets PNV 200,000 bits ✓; Settings token defs 100/1000 BITS/UNIT · 1% FEE ✓; wallet card + BCH row show 16,191,348 bits. 203/203 vitest, tsc clean. Grep confirms zero user-facing 'sat' or 'sats' remain — every match now is a param/identifier/comment. |
| 0235 | wallet | wallet ui ia header settings persistent empty-state dev-wallet vps deploy chipnet | IA fixes from audit 0233 landed + Deviant VPS access recorded. (1) Persistent header — the ⚙ Settings + ⛶ WalletConnect buttons + Deviant wordmark now render on ALL 4 tabs (Main/Agora/Artemision/Apps), not just Main; CurrencyPicker stays Main-only since it drives the wallet-card fiat readout. App.tsx refactor moves the topbar out of the tab==='main' branch, wraps every tab in a single fragment. Verified live: MAIN {topbar, gear, WC, currency} · AGORA/ARTEMISION/APPS {topbar, gear, WC, no currency}. (2) Settings WALLETS empty-state — 'No wallets yet.' → 'No vault-managed wallets yet — dev-wallet mode is active (see below).' when activeDev is non-null; WalletsGroup component signature extended with activeDev prop, threaded from SettingsScreen. Live verified: 'No vault-managed wallets yet — dev-wallet mode is active (see below).' (3) MAIN tab glyph — flagged in 0233 as missing but was a false positive: the tab renders SVG (28×33 px), and my innerText probe couldn't see SVG content. Kept as-is by design (BCH mark = wallet home). (4) VPS access — recorded at D:\Dev\SilentMode\VPS\Deviant\vps-access.md: shared box with Checkers at 130.12.242.84, testchipnet.duckdns.org, /opt/checkers/nginx/html/deviant/, key ~/.ssh/checkers_deploy, redeploy script + nginx bind-mount trap. No private key material stored. 203/203 vitest, tsc clean. |
| 0236 | wallet | wallet ui polish hero donut legend pnv jargon anthemus demo-chip artemision wizard spec-terminology | Polish fixes from audit 0233 landed + live-verified. (1) MainScreen donut label is now scope-aware — 'BCH net worth' (single-wallet), 'wallet C · BCH' (one of many selected), '3 of 7 wallets' (partial), '7 wallets · portfolio' (all) — replaces the misleading always-'N wallets' text that made the donut number's meaning ambiguous when it equalled the wallet card. (2) Legend rows carry a small muted 'BCH' suffix via new .uni CSS — 0.270 BCH / 0.003 BCH / ~0.000 BCH — no more unit-less numbers. (3) PNV badges on MainScreen backed-drill and AgoraScreen My Assets carry a hover tooltip citing spec §4.4 (Protocol Net Value = units × backing rate — glossary/decisions.md wording, not 'Principal'); AssetDetail already spelled out 'Protocol Net Value' so it stays. (4) Wallets rows spell out 'token UTXOs' (was 'tok utxos'). (5) Anthemus 'demo book' / 'demo catalog' tags were technically chip-styled but 8px + 0.6 opacity — now uppercase 10px orange chip when demo, green when live · relay. (6) Artemision create-card gains a 5-pill step preview under the copy — 'Identity › Asset type › Rate/Supply › Fee/Draw › Review' — sets expectations before the wizard commits. Anthemus taker-fee disclosure verified as ALREADY correct: market → 'taker X% = Y quote', limit → 'maker 0%'. 203/203 vitest, tsc clean. |
| 0237 | wallet | wallet audit pass-2 asset-detail activity fuse sweep consolidate sign onboarding tier-b-cleanup founder-fee mint-side-fee | Wallet audit pass 2 — walked the drill-downs (AssetDetail via Agora → CAP), flows (Sweep, Fuse, Consolidate), tools (Sign / Verify), modal (TokenImportModal), and Onboarding CREATE/RESTORE/IMPORT source paths. Three fixes shipped inline: (1) AssetDetail Mint-side fee was hardcoded 0.5% (cap 2.0%) regardless of the real founderFeeBps — added founderFeeBps to AssetDetailToken, threaded through tierAToDetail in AgoraScreen + KatalogosPanel + registryToDetail, live-verified CAP now reads 'Mint-side fee 1% (cap 5.0% 🔒)' matching its real 100 bps and the real protocol cap. (2) ActivityScreen demo fixture 'ZCoin [B]' → 'ZCoin' (stale Tier-B badge, retired snapshot 0210). (3) Onboarding 'concept' screen callout still described the retired Tier B model ('A = native CashTokens, B = plain BCH your wallet displays through a local definition') — replaced with the current MBA / NBA family model matching every other screen. Findings NOT fixed this pass: FuseFlow is a full UI simulation with hardcoded UTXOs (120 NOVA fixture) — clicking 'FUSE X BCH' does not run CashFusion on-chain; needs an honest 'SIMULATION' banner or the panel hidden until wired; AssetDetail ⋯ menu icon has role='button' but no onClick; AssetDetail Founder address is truncated with no expand/copy; AssetDetail BCMR link is literal placeholder text. Sweep + Consolidate + Sign/Verify + TokenImportModal + ActivityScreen live-history path all real and clean. 203/203 vitest, tsc clean. |
| 0238 | wallet | wallet ui fuse cashfusion feature-flag honesty release-polish settings main-screen | Fuse affordance hidden per snapshot 0237 finding — FuseFlow is a UI simulation with hardcoded UTXOs and setTimeout-driven progress; clicking FUSE did nothing on-chain. New buildInfo.ts FUSE_ENABLED = false gates: MainScreen wallet-card Fuse button (row now shows SIGN | SWEEP only), Settings entire Privacy group (CashFusion + Auto-fuse switches + Rule-4 note all hidden together), and App.tsx case 'fuse' route returns null when disabled (fallback in case a stale pushed state survives a reload). FuseFlow.tsx + code path preserved unchanged — flipping FUSE_ENABLED to true restores every affordance at once when real CashFusion wiring lands. Live-verified on Wallet C: wallet-actions = ['SIGN','SWEEP']; Settings dump has no 'PRIVACY' / 'CashFusion' / 'Auto-fuse' strings. 203/203 vitest, tsc clean. |
| 0239 | asm | potidaea asm openmint swap-relay platform-fee adr-0053 chipnet-validated multi-source-broadcast potidaea-wallet keystore | Potidaea platform-fee model proven live on chipnet: fresh DeviantOpenMintFT asset (R=1000, feeBps=100) swap-relayed by 9 wallets with a client-added 0.5% platform-fee output per claim; 26,599 total swaps across three sessions (11,167 → 13,414 → 26,114 → 26,599), 15.02 M bits real platform revenue to a fresh potidaea platform wallet + 30.03 M bits founder revenue to gmx, ratio 2:1 as ADR-0053 spec, peak rate 44 swaps/sec, cumulative session miner reward ≈ 58 M bits. |
| 0239 | wallet | wallet ui send token-send mba nba asset-detail honest-labeling tier-a cashtokens release-polish | Real per-asset send wired for MBA + honest MBA/NBA separation on AssetDetail. Was: token AssetDetail's Send button opened the BCH-only SendFlow — a user viewing CAP could tap Send and end up sending BCH not CAP (snapshot 0237 finding, user direction to fix). Now: MBA (backed on-chain) shows ORBITAL SWAP · SEND · RECEIVE with a real TokenSendFlow modal that plans via existing DeviantWallet.planTierASend (src/wallet/send-tier-a.ts) — moves N units of the token's category with backing (N × rateSats) traveling to the recipient's CashTokens-aware address, runs the D-1 canonical-contract check, surfaces warnings (non-canonical, self-recipient), executes via executeTierASend. NBA (non-backed) shows TRADE ON MARKET · RECEIVE with no Send + a rev-note: 'No direct send for non-backed tokens in this build — they have no protocol floor and their transfer flow is handled outside this wallet (external DEX / peer channel). Backed assets (MBA) send with their BCH backing intact via the button above.' NBA send needs a rateSats=0 planner variant (would fail sub-dust in the MBA planner) — documented as follow-on. New shells/app/src/components/TokenSendFlow.tsx (details → review → result modal); shells/app/src/core/wallet.ts adds planTokenSend + executeTokenSend + TierASendError re-export; AssetDetail owns sendOpen state and renders TokenSendFlow inline (session-gated); App.tsx drops onSend prop, adds onBroadcast to refresh balance. Live-verified on Wallet C: MBA drill actions ['ORBITAL SWAP','SEND','RECEIVE'] with Send NOVA modal opening; NBA drill actions ['TRADE ON MARKET','RECEIVE'] with the explainer. Two side findings surfaced (deferred): AgoraScreen My Assets shows demo fixtures instead of live Wallet C tokens even when unlocked; MainScreen Backed-Assets drill rows aren't clickable to AssetDetail. 210/210 vitest, tsc clean. |
| 0240 | wallet | wallet ui send nba token-send tier-a backing cashtokens hosting bns sia silentmode deviant-x doc | Two deliverables: (1) NBA send wired — prepareTierASend now has a rateSats-branch that handles NBA tokens (backing='token', rateSats=0). FT output sats source CT_DUST from the general input pool via a generalized conservation calc (totalIn − totalFtOutputs − minerFee = bchChange); MBA path unchanged because ftInputTotalSats = totalFtOutputSats cancels the FT terms. Skips D-1 canonical-contract verification for NBA (there's no contract to verify) and emits an nba-no-backing warning instead. AssetDetail no longer hides Send for NBA — the button appears and opens TokenSendFlow with copy that adapts: 'Backed token — BCH backing travels with the tokens at X bits/unit' vs 'Non-backed token — only the token units move. No BCH floor, no redemption rate.' Review card 'Verification' row also relabels for NBA. Registry validator (src/token/registry.ts:190) already allowed rateSats=0 for backing='token' — no change there. 3 new unit tests in test/unit/wallet/send-tier-a.test.ts (NBA happy path, exact send, no-bch-input under dust top-up); 192 core wallet tests pass, 210 shell tests pass, tsc clean. Live-verified NBA drill (MRD demo): actions ['TRADE ON MARKET','SEND','RECEIVE'], modal 'Non-backed token — only the token units move.' (2) Hosting reference — Parameters/Hosting-DeviantX.md written sourcing every command from D:/Dev/SilentMode (Argus register CLI, sia-upload.js, updateName record-setting, navigate.st gateway verify). Doc explains multi-TLD BNS is live on chipnet (.bch/.p2p/.deviant/.bit/.de/.nav/.x/.silentmode), picks 's3' (Sia) as the recommended storage backend for the ~10 MB wallet bundle, with 'p' proxy to the existing DuckDNS VPS as fallback. Cannot execute on-chain registration or Sia upload from a Claude session (touches secrets + funds) — the doc is a runbook for operator execution. |
| 0240 | wallet | wallet spv s3 server-pool boot failover quorum divergence race-fix session chipnet trust-model | SPV S3 BOOTED: new src/core/spv/session.ts startSpv(network) fuses ServerPool + SpvVerifier.fromPool into one background-booted unit — pool.onHeader → advanceTip (the 210-block verified window follows the live tip, reorg-safe), status() exposes phase/live-servers/tips/window/divergences/tip-spread for the UI indicator; boot is NON-BLOCKING + NON-FATAL (no endpoint ⇒ 'unavailable', wallet stays server-trusting, pool retries with backoff). Wired into sessionFromKeys via a guarded flagged touch (skipped in tests/no-WebSocket; VITE_SPV_OWN_ENDPOINT adds our own Fulcrum as the preferred first vote). The new tests caught + fixed a REAL fill() race (drop-during-fill overshot targetLive; fill serialized with an in-flight ledger). 7/7 pool tests (failover, quorum majority + divergence, drop→refill on a different candidate, broadcast, tip-spread, full boot → 'chained', unavailable safety) + LIVE chipnet smoke: bogus endpoint skipped, 2 real WSS servers, 211-header window quorum-fetched in ~1.9 s, 0 divergences. Suite green, tsc clean. |
| 0241 | wallet | wallet ui agora hydration honest-labeling unknown-tokens empty-state release-polish | AgoraScreen My Assets was showing 'Demo assets shown' fallback on real unlocked wallets whenever the live-mapping produced an empty list — either because balance was still loading (null) or because the wallet had no MBA/token_std entries but many unknown-category UTXOs. Two fixes: (1) gate demo on !session not !live?.length — an unlocked wallet's empty list is honest ('No backed assets held' / 'No tokens held'), never demo; (2) also surface balance.unknownTokens in the live list via a new unknownToDetail helper, mirroring MainScreen's Non-backed Assets card which already includes them. Live-verified on Wallet C (currently 0 MBA / 123 unknown-category token UTXOs): MBA filter shows 'No backed assets held.' (honest), Tokens filter shows all 123 real UTXOs as 'Unknown token · MTU · no peg' rows sorted by holdings, no demo banner anywhere. Empty-state copy also tightened: 'No {LABEL} assets here' → 'No backed assets held' / 'No tokens held' (matches MainScreen phrasing). 210/210 shell tests, tsc clean. |
| 0242 | wallet | wallet spv s1b asert aserti3-2d daa difficulty mainnet-validated min-difficulty chain-view collision-resolution trust-model | SPV S1b DONE — ASERT (aserti3-2d) difficulty validation: src/core/spv/asert.ts implements the BCH DAA (fixed-point cubic, floor-div exponent, [1, powLimit] clamps) with RELATIVE in-window validation (no hardcoded historical anchors; 1/256 tolerance for re-anchoring drift), the testnet 20-min min-difficulty rule, whole-window validateWindow (surfaced in session status().asert) and a checkAppendBits guard that hard-rejects headers claiming >4× easier than consensus requires (rollback + counted). LIVE MAINNET PROOF: 119/119 window headers carry exactly the ASERT-required difficulty, max re-anchoring drift 15 ppm vs 3906 ppm tolerance (260× margin). Chipnet path proven on the real fixture window (live leg blocked by a full public-electrum chipnet outage — itself the argument for the own endpoint). CONCURRENT-SESSION COLLISION RESOLVED: chain-view.ts's expected API (computeAsertTarget/ASERT_HALF_LIFE/AsertAnchor) exported over the same asertCore — two calling conventions, one math. 223 passed, tsc clean. |
| 0243 | wallet | wallet spv s4 self-tracked outpoints client-side-history anti-resurrection journal reconcile lean-endpoint privacy trust-model | SPV S4 DONE — the wallet becomes its own source of truth: src/core/spv/tracker.ts SelfTracker rolls the outpoint set forward from OUR OWN broadcasts (recordSend: spent coins leave immediately + enter an anti-resurrection ledger; change re-enters at 0-conf), keeps a persisted CLIENT-SIDE journal (self-custody of history, SPV grades attached), and demotes the quorum-compared server view to a REPAIR SIGNAL: reconcile() adopts SPV-verified incoming payments, detects external spends (confirmed-only; 0-conf change survives a lagging index), and REFUSES to resurrect a locally-spent outpoint a stale server offers back — the 0218 failure class closed CLIENT-side. Wired: session.attachTracker + sessionFromKeys binding + sendBch as the reference self-bookkeeping path. 7/7 tests (anti-resurrection, external-spend, unprovable-refused, persistence); suite 230 green. Completes the S1→S4 SPV ladder and converges with lean-utxo-endpoint tier-1 (self-tracked outpoints need NO standing address index). |
| 0244 | wallet | doublespend dsproof p2sh p2pkh 0conf chipnet merchant-safety | Empirical chipnet test — P2SH-input 0-conf safe against double-spend (first-seen holds), but DSProof spec does not cover P2SH inputs; merchant early-warning is P2PKH-only. |
| 0245 | infra | infra hosting bns deviant-x sia silentmode navigate.st deploy landing | deviant.x now serves the static landing page (Parameters/webfiles/deviant_website.html) via Sia — repointed from p→testchipnet.duckdns.org to s3→bns/deviant.x/ in UPD tx c0914f24…; wallet CTAs on the page swapped to https://deviant.navigate.st (still needs an nginx vhost + DNS). |
| 0246 | infra | infra hosting bns deviant-x navigate.st silentmode sia letsencrypt nginx brand social deploy | Three deploys: (1) https://deviant.navigate.st live on Checkers VPS 130.12.242.84 (nginx vhost + LetsEncrypt via webroot, ICANN mirror of the wallet — same docroot as testchipnet.duckdns.org); (2) landing page mirrored to SilentMode VPS 195.184.247.106 at https://navigate.st/deviant/ (new nginx location on the navigate-st site, alias /opt/silent-mode/site/deviant/); (3) deviant.x BNS record updated to {p: https://navigate.st/deviant/, s3: bns/deviant.x/} in UPD tx f7c030d4… — SilentMode is now the intended primary via p, Sia stays as s3 fallback. Discovered: navigate.st gateway prefers s3 over p (content-length delta 38678 via /bns/ vs 38649 direct), so the gateway route still serves Sia; direct BNS clients may pick p per their own precedence. Options to force SilentMode primary across the gateway captured in follow-ups. Plus: brand/ SVGs now @import the site's own fonts (Fraunces + DM Sans + JetBrains Mono), 4 new social sizes (twitter card 1200×675, twitter header 1500×500, FB cover, LinkedIn banner, IG square), retired the wrong twitter card 1200×600. Deploy script bugs fixed for greenfield re-runs. |
| 0247 | infra | infra hosting bns deviant-x anthemus anthemus.dex silentmode sia landing dex | Anthemus now has a first-party landing at https://deviant.x/anthemus (self-hosted on SilentMode + Sia, links from the deviant.x main nav + pathways). Registered anthemus.dex BNS name (tx 3867797854d67a6dda6876bc4c4a8f2826f9175bf094f2fa3eb32d2c35cbe481, cat 0a70e739…) with records {p: https://navigate.st/deviant/anthemus/, s3: bns/deviant.x/anthemus/} — same content, three URLs (deviant.x/anthemus, anthemus.dex, anthemus.bch left in place as the mockup home). Plus: refreshed 'tests passing' metric on the landing 445 → 564 based on this session's npm test (564 pass, 0 fail). New deployment source-of-truth at site/deviant/; Parameters/webfiles/deviant_website.html is now frozen archive. |
| 0248 | wallet | wallet katalogos pinax registry oracle adr-0055 adr-0052 adr-0048 chipnet | Shared Katalogos registry v1 shipped on chipnet — oracle-priced $1 in DEA, immutable per-entry NFTs (ADR-0055); Publish button live in Pinax, swap picker reads shared list; CHE + ATD inscribed |
| 0249 | wallet | wallet katalogos pinax publish chipnet adr-0055 esm verification | Publish button verified end-to-end on chipnet by driving the exact modules the browser imports; test caught a require() in the shell publisher that only survived under Vite's CJS polyfill and would have thrown at first click in a plain-ESM build |
| 0250 | wallet | keystore capacitor mobile 0083 multi-account native biometric | CapacitorKeyStore ported to the 0083 all-in-one multi-account model — sealed material in the OS secure store, public catalogue in localStorage, 18/18 test green with mocked plugins. |
| 0251 | wallet | anthemus taker dex chipnet | 0251 — Anthemus taker path: buildTakeTx end-to-end (ExchangePanel market button → covenant take()) |
| 0251 | wallet | wallet wizardconnect lgpl attribution settings licences mainnet-gate | Closes §6 UI (LGPL §4(a)/(b)/(c)) for WizardConnect — ships LGPL-3.0 + GPL-3.0 texts under public/licenses/ with a small index page, adds a Licences row to Settings → About carrying the required Riften Labs attribution. Together with the vendor-wizardconnect chunk (0232) this clears the mainnet-blocking LGPL obligations. |
| 0252 | wallet | wallet katalogos pinax preflight ux error-mapping chipnet adr-0055 | Pinax now shows a preflight status line above the Publish button and speaks in user language on every failure path — no more raw ECONNREFUSED or 'no DEA UTXO ≥ 231 atomic' error strings; button self-disables when preflight blocks and offers a retry after broadcast failures |
| 0253 | wallet | wallet katalogos pinax swap-picker reactive freshness chipnet adr-0055 | Live Katalogos refresh — the swap picker sees a newly-published asset without an app reload; module-scoped rev counter + useKatalogosRev hook, bumped from doPublish, consumed by AsmCore's discovery effect |
| 0254 | wallet | wallet katalogos pinax ux directory chip reactive chipnet adr-0055 | Katalogos directory rows carry a Public or Local chip so users can see at a glance which of their MBA entries are inscribed on the shared registry vs live only in their wallet's local list; flips live on publish (uses the 0253 rev bus) |
| 0255 | wallet | wallet katalogos polling freshness chipnet adr-0055 visibility-api | Background poll of the shared Katalogos catches publishes made outside this wallet — another user's inscription, or one that landed while this session was closed, now propagates to the swap picker and Public/Local chip within one 30s interval, no reload required |
| 0256 | wallet | wallet katalogos pinax ux publish jump-to-action chipnet adr-0055 | Local chip in the Katalogos directory is now a jump-to-publish action — one click opens Pinax straight on the success/publish screen for that already-registered token; new publishOnly mode in TokenImportModal skips the form entirely |
| 0258 | wallet | wallet taxonomy asset-class artemision naming dea mba docs | Six of eight asset-class labels swap to their regular mint·supply·category form (MCA→MUA, MTA→MLA, PTU→PUT, PTL→PLT, MTU→MUT, MTL→MLT); DEA keeps its flagship code but its long name becomes 'Direct Emission Asset' (the 'Deviant Equilibrium Asset' name is reserved for a specific asset to be minted); internal codes stay canonical for storage compatibility; taxonomy HTML doc updated in parallel |
| 0259 | asm | covenant fee adr-0011 nft-commitment chipnet negative-tests | Adjustable founder-fee-with-cap covenant chipnet-validated — mutable NFT commitment carries feeBps, founder-signed updateFee bounded by immutable maxFeeBps |
| 0259 | wallet | wallet artemision genesis cashtokens ux prep-flow deviantx deploy silentmode | Artemision Review wall now recovers the 'no eligible genesis UTXO' dead-end with a one-click Prepare wallet button (auto self-send creates the missing vout-0 output, re-plan re-runs); redeploy.sh repointed from the retired duckdns box to the current deviant.x infra (silentmode.st/deviant/wallet) |
| 0260 | wallet | wallet artemision pinax ux bug-fix rate-tier class-cards chipnet | Four UX fixes from a live wallet walk-through: rate warning no longer false-positives at decimals>0 (compares whole-unit rate not atomic), Type-CREATE gate removed from the Review wall (Create is already gated by the wizard + irreversible banner; reserve DELIST for typed-phrase friction), class cards now show full regular-form names + plain-language axis summaries, and Pinax Scan tab explains it's for assets someone else sent you |
| 0261 | wallet | wallet katalogos pinax ux founder-actions listed unlisted adr-0055 chipnet | Katalogos reframed with Listed / Unlisted top tabs (was MBA/NBA/All) matching the ADR-0055 free-vs-paid model — Listed = human-readable metadata inscribed on-chain, Unlisted = contract-only, only-creator-sees; MBA/NBA becomes a sub-filter with a My-assets chip; AssetDetail gets a Founder actions block (Publish, Modify fee disabled with reason, Delist disabled with reason) |
| 0262 | wallet | wallet katalogos artemision ux unlisted publish-step adr-0055 dea-flagship | Unlisted tab is now genuinely contract-only (glyph, name, ticker all suppressed — only the categoryId and a discreet Yours chip for the creator); post-Genesis Publish step wired on the Artemision receipt for MBAs (opens the 0256 publishOnly modal with the freshly-minted TokenTierA); reports on the DEA-flagship state as a follow-up |
| 0263 | wallet | wallet ux fab agora potidaea orbital-swap chipnet bug-fix | FAB (New tx) now toggles instead of re-opening + the sheet-backdrop covers the full desktop viewport so outside clicks dismiss (fixes the stuck-open sheet the user reported); Agora Hub gets a Potidaea tab that embeds AsmCore inline |
| 0264 | wallet | wallet ux pin-pad unlock onboarding mobile-first chipnet | New on-screen numeric PinPad component (3×4 grid + masked dots) wired into both Unlock and Onboarding PIN steps; keyboard input still bound (0..9 / Backspace) so desktop typing feeds the same state; live-verified in the deployed wallet — Onboarding renders two pads (Choose + Confirm) with 24 keys total and dots update on tap |
| 0265 | wallet | wallet agora potidaea asmcore ux polish | AsmCore gains an embedded prop that suppresses the top-level back arrow on the builder view — used by the Agora Potidaea tab (where the segmented tabs are the navigation surface); the arrow still appears on internal quote/confirm/result sub-views, and the pushed-screen path from Asset Detail leaves it unset so the full screen still shows the arrow |
| 0266 | wallet | wallet covenant adjustable-fee adr-0011 artemision asset-detail updatefee scriptnum chipnet route-b | DeviantAdjustableFeeCapped covenant (chipnet-validated in 0259) wired end-to-end into the wallet — Artemision fee-mode toggle (Fixed / Adjustable) with honest two-knob sliders; TokenTierA.adjustableFee descriptor; ScriptNum codec (10/10 tests match the on-chain commitments byte-for-byte); GenesisExecutor nftOverride so the reservoir NFT lands as mutable + bytes(startingFeeBps); executeUpdateFee shell flow + Modify-fee modal on AssetDetail that rotates the on-chain commitment |
| 0267 | cross-chain | cross-chain deposit-covenant rename wrap-mint-iou dgb digibyte correspondent bonded-operator mainnet dry-run dgb-api-gap user-broadcast deposit-not-iou | Two things: (a) new contracts/Deposit.cash — byte-identical rename of DeviantWrapMintIOU with exchange-style naming (mint→deposit; ticker stays 'DGB'/'USDT', no wrapped/IOU language user-facing per updated wrapped-asset-source-chain-marker rule); old covenant kept + marked superseded; 3/3 mock. (b) new services/correspondent/dgb.mjs — DGB mainnet correspondent rail (P2WPKH+P2PKH input signing, auto-detect; bonded-operator custody, same trust as EVM/Solana; no HTLC); scripts/onboard-dgb-mainnet-real.mjs dry-run-gated with --dgb-txid= mode for user-broadcast (DGB free APIs are thin: Trezor Blockbook retired, Blockchair dropped DGB, BlockCypher never had it — driver reads via digiexplorer.info/api/tx). Ready; waiting on user's small DGB deposit before broadcast. |
| 0268 | cross-chain | cross-chain dgb digibyte deposit live-mainnet chipnet deposit-covenant native-coin correspondent first-real-run cashtoken | DGB deposit LIVE end-to-end — 10 DGB locked on DigiByte mainnet (tx f334cd5293… block 24154002, vault dgb1q7p09cwq…) → 10 DGB credited to Alice as a CashToken on the Bitcoin Cash chipnet via the new contracts/Deposit.cash covenant (mint tx e21ceafcd8…, category 74b6e111446253bb…). Independently verified both chains: locked == credited. First native-coin (non-stablecoin) deposit; first live use of Deposit.cash and services/correspondent/dgb.mjs. |
| 0269 | cross-chain | cross-chain dgb digibyte redeem round-trip live-mainnet chipnet deposit-covenant bonded-operator-custody security-truth bip143 p2wpkh min-relay-fee dust | DGB REDEEM round-trip closed end-to-end, both chains verified. Alice surrendered 10 DGB CashToken on chipnet (return tx d67d9205…) → operator released 9.9995 DGB from the mainnet vault to her P2PKH (release tx 317e73d3… confirmed block 24154111); ~0.0005 DGB absorbed as network fee. Also: fixed real P2WPKH-signing bug in dgb.mjs (BIP143 scriptCode must be P2PKH-shape, not P2WPKH output), DGB min-relay is ~200 sat/vB (not 20), and honestly documented that vault DGB is bonded-operator-custodied (plain P2WPKH), NOT covenant-enforced by the BCH burn — same trust floor as evm/tron/solana rails. |
| 0270 | cross-chain | cross-chain atomic-swap htlc design deposit withdrawal covenant sketch mpc trust-model deposit-covenant | Design sketch — atomic-swap deposit/withdrawal for the cross-chain rails, using paired HTLCs. WithdrawalHTLC.cash (BCH side, burn-on-claim) sketched in full; DepositHTLC.cash sibling (BCH side, burn-on-refund) sketched in outline; mocked driver walks the choreography (Phases 1-5). Fixes the deposit-time and withdrawal-time trust window in the current bonded-operator rails (0267-0269). Honestly bounded: does NOT reduce accumulated custody trust in the DEX's source-chain address — that still needs MPC/multi-sig + slashable-bond scaffolding. Design-only, not committed to any live rail. |
| 0271 | cross-chain | cross-chain atomic-swap dgb design-decision deposit withdrawal htlc non-custodial trust-model deposit-covenant anthemus digibyte | Design decision — the DGB rail commits to ATOMIC-SWAP-PRIMARY. Two alternatives fully explored and killed: (a) self-custodial Taproot vault with owner-fallback creates a cross-chain double-spend rug-pull because Alice can sell CashToken to Bob then recover DGB via fallback leaf; (b) any pool-with-cosign design that hopes to gate the DGB spend on a BCH burn is impossible on DGB Script alone — DGB is completely detached from BCH and doesn't care if CashToken burned. Atomic swap sidesteps both because it never asks DGB to know about BCH — the cryptographic linkage is a shared preimage that unlocks both sides. Snapshot 0270's three covenants (WithdrawalHTLC, DepositHTLC, Deposit.burn) are the BCH-side foundation and need no changes; the remaining lift is DGB-side HTLC primitives + a swap driver + a matching layer (Anthemus) + MM float bootstrap. |
| 0271 | wallet | wallet keystore bulk-import multi-account ui chipnet master-password aes-gcm pbkdf2 subtle-crypto multi-key-store settings | Design spec for Settings→Wallets → "Import from encrypted keystore": UI-side loop over MultiKeyStore.importWif/importSeed that reads Keys/chipnet-keystore.json (chipnet-keystore/2-encrypted, PBKDF2-SHA256/200k + AES-256-GCM), prompts once for the master password, previews entries with labels/categories/cashaddrs, checkbox-selects, and imports N wallets under one PIN entry. No MultiKeyStore API changes; uses the stable importWif/importSeed shipped 2026-07-07. |
| 0272 | wallet | wallet asm orbital-swap potidaea agora chipnet retry zero-contention | AsmCore beta wires the tier-4 client-side optimistic chain + retry pattern — swap/mint/swap-all now silently re-plan against the mempool-inclusive reservoir tip and re-broadcast on txn-mempool-conflict, resolving the same-target reservoir race client-side (chipnet-measured 1/6 → N/N on the naïve path) |
| 0273 | asm | asm dea distribution-vault adr-0042 potidaea platform-fee posture-a chipnet | DEA yield engine v1 shipped: 0.5% platform fee client-appended (posture A) to every Potidaea claim, split 40% platform · 60% consensus-locked DistributionVault; off-chain attributor pays holders pro-rata via oracle-signed outpoint-bound payouts. Chipnet-proven end-to-end (fee-collection tx 7452a086…, 3 payouts 1f3270bf…/fadefb41…/d4a13b33…), deployed live to navigate.st/bns/potidaea.asm |
| 0274 | asm | asm dea distribution-vault adr-0042 potidaea platform-fee posture-c covenant multi-utxo chipnet | DEA-yield v2 batch: (1) new DeviantPlatformMBA.cash covenant enforces platform fee at consensus (posture C — proven chipnet: correct claim ACCEPTED tx 2bafa03b…, malformed bypass REJECTED at cash:110); (2) multi-UTXO attributor sums all spendable vault UTXOs and splits large entitlements across UTXOs (v2 attributor drained 50,400 → 8,400 bits, G's 14k split across 3 UTXOs); (3) last-vault-activity txid link on Katalogos DEA Yield tab (queries chipnet address history) |
| 0275 | asm | asm potidaea orbital-swap retry zero-contention chipnet proof contention-doc | Chipnet force-race + tier-4 retry proof: same 6-wallet parallel-broadcast harness that measured 1/6 in Parameters/ASM_Native/ASM-no-shared-state-contention.md §4 now shows 6/6 accepted when each claim is wrapped in the shared client-side retry loop (20 broadcasts total, mean 3.3 attempts, all under 3 s). Closes the 'parallel reservoir contention test' gap with a resolved result rather than a collision measurement. |
| 0275 | wallet | wallet auto-update release deviant.x capacitor | Auto-update banner on-launch + published release channel on deviant.x (manifest + APK). |
| 0276 | wallet | potidaea ui chart oracle price-history plan | Design for a Potidaea Chart tab — historical price chart of any asset in USD, powered by a lean off-chain oracle history + on-chain covenant rate for MBAs |
| 0276 | wallet | wallet bns multisig aegis cosign nostr consolidation sweep 0.1.2 | BNS Send targets (alice.bch), Multisig cosign inbox (aegis.cosign.v1 interop), 600-coin cap on Sweep + Consolidate. |
| 0277 | asm | asm potidaea orbital-swap retry zero-contention chipnet wallet-parity | Potidaea dApp (navigate.st/bns/potidaea.asm) adopts the tier-4 client-side optimistic chain + retry pattern shipped in the beta wallet AsmCore (snapshot 0272): claimViaWc / claimViaLocalSigner / claimViaLocalSignerShare wrapped with silent re-broadcast on txn-mempool-conflict, retry-status banner in pendingSheet, resolved-via-N badge on doneSheet. tsc clean, dApp built. |
| 0277 | wallet | wallet deviant.x download sia bns seo release-channel | deviant.x/wallet download landing page — Sia-hosted + silentmode.st mirror, live manifest fetch. |
| 0278 | asm | asm potidaea orbital-swap sequencer tier-2 zero-contention chipnet proof daemon relay | Tier-2 ASM sequencer service drafted as a coordinator-funded HTTP relay + tested end-to-end on chipnet. 5 simultaneous /claim requests → 5/5 accepted with the daemon-assigned order forming a single reservoir chain (each tx spent the previous tx's reservoir output). Complements the tier-4 wallet retry from 0272/0275/0277 by adding the low-latency relay path with the wallet retry as fallback. |
| 0279 | asm | asm sequencer tier-2 zero-contention chipnet systemd user-funded wallet-wire potidaea proof | Three-part completion of the tier-2 sequencer arc: (1) systemd unit + deploy README for running the daemon as a long-lived service; (2) user-funded /tip + /submit endpoints that remove the 'relay holds funds' trust step, chipnet-proved 5/5 (users signed their own BCH inputs, mean 3 attempts via 409-stale retry); (3) wallet-side sequencerRelay.ts client in both shells/app and design/potidaea with probe-first-then-commit race-free dispatch. Plus a chipnet-fund-from-h.mjs helper that topped up A/C/E/F/G from wallet H. |
| 0280 | asm | asm sequencer tier-2 zero-contention settings-ui wallet-wire potidaea cors | Settings-UI toggle for the ASM sequencer relay in both surfaces. Beta wallet gets a new 'ASM sequencer relay' group in SettingsScreen with URL input + live reachability probe. Potidaea's dynamic walletMenu gains the same input + status chip (drafted, not yet committed — needs the DEA session's co-mingled main.ts/app.html changes to land first). Server gained permissive CORS so browser probes succeed. Browser-verified reachable↔unreachable transitions against a live chipnet daemon. |
| 0281 | wallet | potidaea bug-fix cleanup balance-paint theseus | Potidaea's "0.82 BCH flash → empty" balance race fixed by removing the pending-swap optimistic overlay layer (−251 lines) and the wc.on('idle') auto-wipe. |
| 0282 | infra | chipnet wallet-h consolidation ft-redeem mba-redeem nba-burn | All chipnet FT holdings (MBA + non-state NBA) redeemed to BCH across A-H + gmx; everything consolidated to wallet H. 9 txs, 51 covenant-state NFTs preserved. |
Wallet UI (shells/app) (107)
- 0023-wallet-display-layer — wallet display layer — D-1/D-2/D-4/D-6 surfaced in one structure · wallet
- 0024-wallet-send-import-d5 — Phase 2 Step 5 — tier-B send + import flows with D-5 · wallet
- 0025-wallet-send-tier-a — tier-A send flow lifted into the wallet library · wallet
- 0026-wallet-swap-plan — atomic swap plan lifted into the wallet library · wallet, swap
- 0027-wallet-shell-tx-builder — wallet shell — tx-shape builders for every plan · wallet
- 0028-wallet-finalized — wallet finalized — runtime adapter, orchestrator, public API · wallet
- 0034-tierb-live-and-address-fix — tier-B live broadcast + an integration bug the smoke test caught
- 0035-wallet-cli — a usable CLI over DeviantWallet · wallet, cli
- 0036-web-ui — local web UI
- 0040-keystore-interface — KeyStore — cross-shell key-custody contract · keystore
- 0041-rn-mobile-shell-slice — RN mobile shell — runtime decision (ADR-0022) + bridge/KeyStore slice · keystore, bridge
- 0043-rn-shell-decision-reopened-capacitor-spike — RN mobile shell — decision reopened (Capacitor spike) before any UI
- 0044-capacitor-spike-go — cap-web spike — core runs client-side in a browser → GO for Capacitor
- 0050-tote-refund-sweep-and-denomination — Tier-2 tote refund + sweep backstops chipnet-validated; ADR-0025 denomination schedule · sweep, tote
- 0053-cashconnect-scaffold-and-mba-rake-chipnet — CashConnect dApp adapter scaffold + MBA-rake chipnet-validated · cashconnect, mba
- 0053-cosmogenesis-wallet-ui-four-tab-shell-ri — cosmogenesis wallet ui — four-tab shell, risk scale, dual-protocol apps · wallet, cosmogenesis
- 0054-nba-taxonomy-correction-bch-logo-nav-fix — nba taxonomy correction + bch-logo nav fix + asset-type detail sheets
- 0055-taxonomy-adr0028-remaining-mockups-cashfusion-trade-consolidation — ADR-0028 taxonomy peer-labels, remaining mockups, CashFusion, Trade→Market consolidation
- 0055-walletconnect-handshake-device-validated — WalletConnect handshake device-validated (Cashonize) · walletconnect
- 0056-cosmogenesis-four-tab-shell-built — CosmoGenesis four-tab shell built + wired (shells/app) · cosmogenesis
- 0056-reusable-proposer-core — reusable dApp-side proposer core (WC / CashConnect), unit-tested · cashconnect
- 0057-shell-avalanche-wizard-and-adr0027-0028-reconcile — shell Avalanche — full Create wizard + ADR-0027/0028 reconcile
- 0057-walletconnect-cosign-validated — WalletConnect co-sign (bch_signTransaction) validated end-to-end · walletconnect
- 0059-shell-slices-4-through-8-built — Shell slices 4–8 built
- 0060-shell-slice9-live-data-wired — Shell Slice 9 + live data wiring
- 0061-cashconnect-adapter-pinned-to-installed-api — CashConnect dApp adapter pinned to the installed
cashconnect@0.0.25API · cashconnect - 0062-cashconnect-arch-limit-and-project-id-validated — CashConnect V0 cannot co-sign covenant txs; project ID + relay validated; sign-client bundle patch · cashconnect, covenant
- 0069-buyer-funded-cashback-wallet-feature — buyer-funded PoS cashback (ADR-0034) — wallet split feature, chipnet-validated · wallet
- 0074-capacitor-device-build-keystores — Capacitor device build: CapacitorKeyStore
- 0082-cosmogenesis-wizard-portfolio-refinements — CosmoGenesis: wizard + portfolio refinements · cosmogenesis
- 0083-multi-wallet-direction-and-consolidate — Multi-wallet direction (Bitcoin.com model) + Consolidate feature · wallet
- 0083-seed-sweep-wallet-feature — Seed sweep wallet feature · wallet, sweep
- 0084-redeem-all-batch-mba-to-bch-sweep — redeem-all batch MBA to BCH sweep · sweep, mba, redeem
- 0087-unpegged-sweep-tokens-for-non-mba-catego — unpegged sweep-tokens for non-MBA categories plus ADR-0037 supply semantics · sweep, mba
- 0091-qr-activity-token-import-code-split — qr-activity-token-import-code-split
- 0097-chipnet-beta-launch-pwa — Chipnet beta launch (PWA) · pwa, beta
- 0100-alpha-hardening-shell-tests-derivation-f — Alpha hardening: shell tests, R-017 fix, native runbook
- 0102-shell-splash-manifesto-ux — Shell splash + manifesto UX
- 0103-sideshift-tier-3-in-wallet-shift-level-b — sideshift tier-3 in-wallet shift level-b · wallet
- 0142-connector-responder-adr — connector — wallet-side WC v2 responder, ADR + design doc + typed scaffold · wallet, connector
- 0151-cosmogenesis-ui-pass-agora-inline-swap-n — cosmogenesis ui pass — agora inline swap, naming reconcile (artemision/agora/orbital/spectrum), asterae planitae · cosmogenesis, agora, artemision, swap, orbital
- 0152-multi-protocol-wallet-responder — Multi-protocol wallet responder — WC + CashConnect over one WC2 client, dispatched by shape · wallet, cashconnect
- 0153-agora-orbital-swap-spectrum-naming-tier- — agora orbital-swap spectrum naming, tier-b retired, single-tier, gold-cert-nba taxonomy, mca-mta one-way swap · agora, swap, orbital
- 0153-qr-scanner-cross-platform — Cross-platform QR scanner — native Capacitor + web getUserMedia, wired into 3 callsites
- 0156-shell-agora-propagation-tierb-retired-ad — Shell Agora propagation (Tier-B retired · adaptive swap) · agora, swap
- 0164-appsscreen-rewired-to-live-responder — AppsScreen rewired to the live responder — "Cauldron connected" misroute fixed · cauldron
- 0166-shell-ux-rules-agora-swap-bugfix — Shell UX rules + Agora/Swap live-data bug fixes · agora, swap
- 0167-shell-hero-balance-artemision-inplace-bch-mint — Hero balance · Backed-Assets card · Artemision in-place detail · BCH-default mint · artemision, hero
- 0168-shell-main-page-redesign-subtabs-walletconnect — Main-page redesign: Assets|Wallets sub-tabs · WalletConnect hero · per-wallet activity · wallet, hero, walletconnect
- 0179-t6-aware-wallet-ux-onetap-sendreceive — T6-aware wallet UX: one-tap send/receive over the validated stack · wallet, receive
- 0191-cashconnect-wiring-and-hd-derivation — CashConnect network wiring + KeyStore HD derivation for WizardConnect · keystore, wizardconnect, cashconnect
- 0192-cashconnect-covenant-correction-and-checkers-instructions — CashConnect covenant-carrier claim corrected; Checkers-session instructions written; research pass on BCH Guru + Cauldron · cashconnect, covenant, cauldron, checkers
- 0193-wizardconnect-adapter-and-signer-inputPaths — WizardConnect adapter + signer inputPaths + KeyStore exportXpub (Task 3 Phase 1 + Phase 2) · keystore, wizardconnect
- 0194-wizardconnect-responder-integration — WizardConnect responder integration + multi-protocol compatibility tests + Checkers reply · wizardconnect, checkers
- 0196-wallet-multi-account-keystore-0083 — Multi-account keystore reworked to the 0083 all-in-one model (Bitcoin.com) — HD sub-accounts + independent seed/WIF, shared PIN, unlockAll · wallet, keystore, multi-wallet, 0083, security
- 0220-wallet-anthemus-dex-mvp-engine-relay-two-uis — Anthemus DEX MVP — AnthemusOrderBook covenant (token↔token + BID + taker fee, 7/7 mock + 8/8 live chipnet), discovery relay, and TWO Agora interfaces (Swap + Exchange) over one engine · anthemus, dex, order-book, relay, agora, ui, chipnet
- 0221-wallet-uniform-fiat-usd-eur-ui-m6b — M6b BUILT (user-directed handover from the UI session): the Uniform Fiat 'USD'/'EUR' surface in Agora — new self-contained Fiat panel (screens/UniformFiat: Hold/Deposit/Swap) implementing the posted WALLET-COORDINATION contract exactly: plain tickers one row per currency, MANDATORY oracle-price deposit disclosure ('USDT is trading at $0.9992 — you will receive 9.99 USD'), 'Swap' copy with the RoutePlan desk·market split rendered as a normal fill, honest label + live transparency (backing/circulating/collateralization + cells as backend detail) and pro-rata withdraw on integrated rails. Typed engine ports router.mjs + ledger semantics; AgoraScreen touch is the minimal 4-line Anthemus pattern. tsc clean · 149/149 · flows driven in-browser. · wallet, uniform-fiat, m6b, ui, agora, usd, eur, deposit-disclosure, swap, route-plan, honest-label, adr-0051, adr-0053
- 0222-wallet-anthemus-amm-v2-lp-tokens-curve-fee — SharePairAmmV2 — fractional LP tokens + 0.30% curve fee validated (4/4 mock, 5/5 live chipnet incl. fee accrual on burn); pool-as-maker levels in the relay; ADR-0049 ratifies the Anthemus business model against real bytecode · anthemus, dex, amm, lp-tokens, curve-fee, adr-0049, chipnet
- 0223-wallet-anthemus-no-stablecoin-pairs-deposit-rail — Anthemus lists NO USD-stablecoin pairs (unified USD eliminates the USDT/USDC/PYUSD matrix) — pairs are EUR/USD + BCH/USD; new Deposit tab (asset × chain chosen separately → correspondent rail → unified USD at the user's BCH address, price disclosure enforced); ADR-0049 amended · anthemus, dex, uniform-fiat, deposit, correspondent, ui, adr-0049
- 0224-wallet-agora-ia-reorg-fiat-in-my-assets-metroon-scan — Agora IA reorg (user-directed) — Fiat tab removed; My Assets filters = MBA | Tokens | Fiat with the Uniform-Fiat surface (USD/EUR + Deposit/Swap) embedded; Metroon add-asset gains a Scan mode that detects unregistered on-chain holdings (40 found live) and prefills registration · agora, ui, uniform-fiat, metroon, scan, ia, my-assets
- 0227-wallet-multi-wallet-ui-wiring-consolidate — Multi-wallet UI wired to MultiKeyStore — all-in-one boot via unlockAll, Settings→Wallets live (add/import/remove), Consolidate broadcast on chipnet · wallet, keystore, multi-wallet, 0083, consolidate, ui
- 0228-wallet-artemision-issuance-nba-genesis-register-bridge — Artemision Create wizard broadcasts for real — MBA genesis wired, NBA genesis designed + built (ADR-0054: fungible supply is fixed at genesis), derive-and-verify register bridge; 3 genesis txs on chipnet · wallet, artemision, genesis, issuance, nba, cashtokens, registry, adr-0054, chipnet
- 0228-wallet-spv-core-headers-merkle-pool — SPV core BUILT (user-directed: multi-node 5–10, failover, keep own Fulcrum): shells/app/src/core/spv/ — headers.ts (80-byte parse, PoW check, checkpoint-anchored HeaderChain, cumulative work, rollback), merkle.ts (electrum get_merkle branch → PoW-backed inclusion), pool.ts (ServerPool: WSS pool of N endpoints, targetLive=5, automatic failover rotation, quorum-compared requests with majority-wins + divergence alarm, broadcast fan-out, per-server header subscriptions + tip-spread alarm, own-endpoint slot first). 9 tests against REAL chipnet fixtures incl. a genuine merkle proof of our own tx — 158/158, tsc clean. Current wallet classified honestly: non-custodial client-signing but SERVER-TRUSTING (0218 was the proof); this module is the S1–S3 delta to whitepaper §8. ASERT validation deferred (S1b); wiring into wallet.ts crosses the keystore seam (contract posted). · wallet, spv, headers, merkle-proof, pow, server-pool, quorum, failover, electrum, whitepaper-s8, trust-model, chipnet
- 0229-wallet-spv-p2p-phase0-handshake-transport-finding — Phase 0 (gating) DONE: BCH P2P version/verack handshake proven end-to-end against real chipnet + mainnet peers (6/6 nodes, BCHN 28/29 EB2/EB32). scripts/spv-p2p-handshake.mjs — stdlib-only Node spike, authoritative BCHN chainparams (chipnet magic e2b7daaf port 48333). PHASE-0-TRANSPORT-FINDING.md picks the mobile transport: shells/mobile ruled out (skeleton, unbuilt), option 2 Capacitor community TCP plugin (@devioarts/capacitor-tcpclient) recommended for spike, option 3 first-party Kotlin/Swift native plugin as the durable pre-mainnet target, option 4 desktop-only as the honest interim state. Two-lane rollout: 1a Node transport into shells/app SPV core NOW (real headers on desktop/Vitest), 1b Capacitor plugin behind a P2PTransport seam, 1c native plugin before mainnet. Badge stays server-reported anywhere the socket cannot open. · wallet, spv, p2p, transport, handshake, chipnet, mainnet, phase-0, capacitor, mobile, trust-model, whitepaper-s8
- 0229-wallet-spv-s2-verifier-wired — SPV S2 WIRED: new src/core/spv/verifier.ts — SpvVerifier builds a 210-block VERIFIED sliding window (checkpoint-anchored, PoW+link-checked; live chipnet: 211 headers in ~2.3 s through the app's own provider) and grades every confirmed tx: 'chained' (in-window) / 'header-pow' (older — lone PoW-checked header + inclusion proof) / 'mempool' / 'unverified'; proof caching, advanceTip with reorg rollback, fromProvider (today) + fromPool (S3). Minimal flagged keystore-seam touch: HistoryItem.spv? + getActivityItems(s, spv?) annotates via verifyAll. UI badge contract posted ('PoW-verified ✓' vs server-reported). Validated: 8 fixture tests (all levels, cache, tamper refusal, advanceTip) + live chipnet smoke 2/2 (real txs graded correctly). Suite 561/561, tsc clean. · wallet, spv, s2, verifier, merkle-proof, sliding-window, pow-badge, activity-feed, trust-model, chipnet
- 0230-wallet-spv-p2p-phase1a-node-transport-headersync — Phase 1a DONE end-to-end on desktop: shells/app/src/core/spv/p2p/ ships browser-safe wire layer (framing, version/getheaders/headers encode-decode, magic-scan MessageParser with resync + 32 MB payload cap), P2PTransport seam (NodeNetTransport for tests/desktop; BrowserStubTransport fails loudly; slots for Capacitor plugin Phase 1b + first-party native Phase 1c), Peer (version/verack + NODE_NETWORK gate + sendheaders opt-in + getHeaders(locator) + tip subscription), and syncHeaders() (opens N peers in parallel, highest-tip leader,
getheaders2000-batches feed the existing 0228 HeaderChain — PoW + link + anchor unchanged, divergent peer dropped and next-highest survivor retries). Proven live: 1010 chipnet headers PoW-verified in 1.6s from 6 independent peers (scripts/spv-p2p-headersync-chipnet.mjs). 175/175 vitest (17 new: wire round-trip, parser resync/oversized-guard, Peer state machine over MockTransport handshake success + NODE_NETWORK reject + refuse + getheaders; live E2E gated SPV_P2P_LIVE=1); tsc clean. · wallet, spv, p2p, headers, wire-protocol, transport, node-net, header-sync, chipnet, phase-1a, whitepaper-s8, trust-model - 0231-wallet-spv-phase2-chainview-asert-pow-verified — Phase 2 DONE: shells/app/src/core/spv/chain-view.ts + asert.ts ship the unified 'is this tx confirmed & under how much work' surface. verifyTx returns provenance-tagged Verification { source: 'pow-verified' | 'server-reported' | 'absent', depth, workUnder, proofRoot, chainRoot } — 'pow-verified' ONLY when the electrum-supplied merkle branch commits to a root the P2P-sourced HeaderChain assembled itself. ChainView layers on divergence alarms (server-vs-chain hash mismatch, p2p-tip-below-server-tip beyond tolerance) via onDivergence — alarms not log lines. ASERT-3D validator (S1b) implemented from BCHN aserti32d.cpp (bigint fixed-point, cubic-fit factor, testnet 20-min EDA carve-out); wired into ChainView via optional verifyBits hook — HeaderChain (0228) UNTOUCHED, composition. End-to-end proven on live chipnet: 1159 real headers synced from 5 peers → verified real chipnet tx c5c7a6ec… at height 315680 pos 94 branch-len 7 → source=pow-verified, depth=1156, chainRoot matches proofRoot exactly (scripts/spv-p2p-verify-tx-chipnet.mjs). 189/189 vitest (was 175, +14 for ChainView provenance + tamper cases + divergence + ASERT identity/EDA/reject-easy-target); tsc clean. Persistence, wallet.ts wiring (keystore seam), UI badge component still pending — contract published in WALLET-COORDINATION.md. · wallet, spv, chain-view, asert, phase-2, pow-verified, divergence, provenance, whitepaper-s8, trust-model, chipnet
- 0232-wallet-wizardconnect-punch-list-completion — WizardConnect punch-list §6, §7.3, §7.5 closed (WIZARDCONNECT-INTEGRATION-GUIDE.md items now green: §7.1 fake pre-flight, §7.2 signCancelled+remoteDisconnect, §7.4 WIF honest message were already done). §7.5 decoupled WZ from VITE_WC_PROJECT_ID: getWalletKit() returns null (not throws) when the env var is unset, ResponderConfig.walletKit is nullable, responder wraps every WalletKit call in a guard, pair() surfaces a clear 'CashConnect/WalletConnect pairing requires VITE_WC_PROJECT_ID — WizardConnect still works' — WZ (Nostr) has no Reown dependency and must not be held hostage by a missing project ID. §7.3 wallet.getActiveSessions() rehydration at responder boot: WC/CC sessions WalletKit restored from its own IndexedDB now reappear in the responder's map after reload, protocol classified by whether CC-only methods are present. §6 LGPL §4(d)(1) vendor-wizardconnect chunk added to vite.config.ts manualChunks (the 'separately replaceable chunk' obligation for linking, LGPL §4 Combined Work — copyleft does NOT propagate to Deviant since we don't modify the library). Guide updated with 2026-07-29 status note. 195/195 vitest (was 189, +6: 3 WZ-only mode + 3 rehydration), tsc clean. Still open: §7.6 ADR, §7.7 relay-URL settings surface, §8 on-device verification (needs a device). · wallet, wizardconnect, connect, nostr, walletkit, session-rehydration, lgpl, chunking, wc, cc, wz
- 0233-wallet-release-audit-pass-1 — Wallet release audit pass 1 — drove shells/app end-to-end on chipnet Wallet C in the browser preview, walked every top-level tab (Main / Agora / Artemision / Apps / Settings) plus sub-tabs (Assets|Wallets, Anthemus Swap|Exchange|Deposit, Create|Katalogos, Discover|Connected, dev-wallet picker). One functional bug FIXED live: chipnet dev-wallet mode surfaced 'account is locked; unlock() first' as a red banner on the Apps tab — WZ init hit KeyStore.exportXpub while the vault-less dev session was locked. Same silent-skip pattern as §7.4 WIF-restored, missed for the 'locked' code (my snapshot 0232 fix). Fix in useConnect.ts:220-231, verified: banner gone, honest console.info fires in its place. Rest of the audit is a punch list of terminology (systematic 'sat'→'bits' violations across Main hero, Wallets rows, Backed-Assets drill-down, Settings token definitions, Agora My Assets), IA (Settings gear only on MAIN, 'WALLETS: No wallets yet' misleading in dev-mode, MAIN tab lacks a glyph while others have ⬡/△/⧉), and polish (undecoded PNV acronym, missing BCH suffix on hero category strip). No fake data surfaced — every 'demo' surface (Anthemus book, Deposit catalog) already carries an honest label. See snapshot body for the full findings list + suggested fix locations. · wallet, audit, release, ui, terminology, bits, connectors, chipnet, apps, settings, main, agora, artemision
- 0234-wallet-terminology-sweep-sat-to-bits — Terminology sweep DONE per project rule bit ≠ sat: user-facing 'sat/sats' → 'bit/bits' across shells/app. Touched 12 files (MainScreen hero + Wallets rows + BCH-row unit label + Backed-Assets drill-down backing rate; AgoraScreen My Assets PNV + rate lines; ArtemisionScreen wizard rate copy; AssetDetail backing/rate lines; ConsolidateFlow + SweepFlow fee lines; SettingsScreen token-definition rows; TokenImportModal field label + rate row + validation copy; SendFlow raw amount; AsmCore rate/fee/change lines; core/genesis error message). Code identifiers (rateSats / feeSats / satsToBch / fmtSats / satoshis / backingRateSats / sats param names) LEFT ALONE — the rule scopes to display only. Live-verified in browser (Wallet C): Backed drill-down 1 CAP = 100 bits and 1 ASM2 = 1,000 bits ✓; Agora My Assets PNV 200,000 bits ✓; Settings token defs 100/1000 BITS/UNIT · 1% FEE ✓; wallet card + BCH row show 16,191,348 bits. 203/203 vitest, tsc clean. Grep confirms zero user-facing 'sat' or 'sats' remain — every match now is a param/identifier/comment. · wallet, ui, terminology, bits, copy, release-polish, chipnet
- 0235-wallet-ia-fixes-persistent-header-empty-state-vps-record — IA fixes from audit 0233 landed + Deviant VPS access recorded. (1) Persistent header — the ⚙ Settings + ⛶ WalletConnect buttons + Deviant wordmark now render on ALL 4 tabs (Main/Agora/Artemision/Apps), not just Main; CurrencyPicker stays Main-only since it drives the wallet-card fiat readout. App.tsx refactor moves the topbar out of the tab==='main' branch, wraps every tab in a single fragment. Verified live: MAIN {topbar, gear, WC, currency} · AGORA/ARTEMISION/APPS {topbar, gear, WC, no currency}. (2) Settings WALLETS empty-state — 'No wallets yet.' → 'No vault-managed wallets yet — dev-wallet mode is active (see below).' when activeDev is non-null; WalletsGroup component signature extended with activeDev prop, threaded from SettingsScreen. Live verified: 'No vault-managed wallets yet — dev-wallet mode is active (see below).' (3) MAIN tab glyph — flagged in 0233 as missing but was a false positive: the tab renders SVG (28×33 px), and my innerText probe couldn't see SVG content. Kept as-is by design (BCH mark = wallet home). (4) VPS access — recorded at D:\Dev\SilentMode\VPS\Deviant\vps-access.md: shared box with Checkers at 130.12.242.84, testchipnet.duckdns.org, /opt/checkers/nginx/html/deviant/, key ~/.ssh/checkers_deploy, redeploy script + nginx bind-mount trap. No private key material stored. 203/203 vitest, tsc clean. · wallet, ui, ia, header, settings, persistent, empty-state, dev-wallet, vps, deploy, chipnet
- 0236-wallet-polish-hero-legend-pnv-anthemus-artemision — Polish fixes from audit 0233 landed + live-verified. (1) MainScreen donut label is now scope-aware — 'BCH net worth' (single-wallet), 'wallet C · BCH' (one of many selected), '3 of 7 wallets' (partial), '7 wallets · portfolio' (all) — replaces the misleading always-'N wallets' text that made the donut number's meaning ambiguous when it equalled the wallet card. (2) Legend rows carry a small muted 'BCH' suffix via new .uni CSS — 0.270 BCH / 0.003 BCH / ~0.000 BCH — no more unit-less numbers. (3) PNV badges on MainScreen backed-drill and AgoraScreen My Assets carry a hover tooltip citing spec §4.4 (Protocol Net Value = units × backing rate — glossary/decisions.md wording, not 'Principal'); AssetDetail already spelled out 'Protocol Net Value' so it stays. (4) Wallets rows spell out 'token UTXOs' (was 'tok utxos'). (5) Anthemus 'demo book' / 'demo catalog' tags were technically chip-styled but 8px + 0.6 opacity — now uppercase 10px orange chip when demo, green when live · relay. (6) Artemision create-card gains a 5-pill step preview under the copy — 'Identity › Asset type › Rate/Supply › Fee/Draw › Review' — sets expectations before the wizard commits. Anthemus taker-fee disclosure verified as ALREADY correct: market → 'taker X% = Y quote', limit → 'maker 0%'. 203/203 vitest, tsc clean. · wallet, ui, polish, hero, donut, legend, pnv, jargon, anthemus, demo-chip, artemision, wizard, spec-terminology
- 0237-wallet-audit-pass-2-drilldowns-flows-onboarding — Wallet audit pass 2 — walked the drill-downs (AssetDetail via Agora → CAP), flows (Sweep, Fuse, Consolidate), tools (Sign / Verify), modal (TokenImportModal), and Onboarding CREATE/RESTORE/IMPORT source paths. Three fixes shipped inline: (1) AssetDetail Mint-side fee was hardcoded 0.5% (cap 2.0%) regardless of the real founderFeeBps — added founderFeeBps to AssetDetailToken, threaded through tierAToDetail in AgoraScreen + KatalogosPanel + registryToDetail, live-verified CAP now reads 'Mint-side fee 1% (cap 5.0% 🔒)' matching its real 100 bps and the real protocol cap. (2) ActivityScreen demo fixture 'ZCoin [B]' → 'ZCoin' (stale Tier-B badge, retired snapshot 0210). (3) Onboarding 'concept' screen callout still described the retired Tier B model ('A = native CashTokens, B = plain BCH your wallet displays through a local definition') — replaced with the current MBA / NBA family model matching every other screen. Findings NOT fixed this pass: FuseFlow is a full UI simulation with hardcoded UTXOs (120 NOVA fixture) — clicking 'FUSE X BCH' does not run CashFusion on-chain; needs an honest 'SIMULATION' banner or the panel hidden until wired; AssetDetail ⋯ menu icon has role='button' but no onClick; AssetDetail Founder address is truncated with no expand/copy; AssetDetail BCMR link is literal placeholder text. Sweep + Consolidate + Sign/Verify + TokenImportModal + ActivityScreen live-history path all real and clean. 203/203 vitest, tsc clean. · wallet, audit, pass-2, asset-detail, activity, fuse, sweep, consolidate, sign, onboarding, tier-b-cleanup, founder-fee, mint-side-fee
- 0238-wallet-hide-fuse-button-until-cashfusion-wired — Fuse affordance hidden per snapshot 0237 finding — FuseFlow is a UI simulation with hardcoded UTXOs and setTimeout-driven progress; clicking FUSE did nothing on-chain. New buildInfo.ts FUSE_ENABLED = false gates: MainScreen wallet-card Fuse button (row now shows SIGN | SWEEP only), Settings entire Privacy group (CashFusion + Auto-fuse switches + Rule-4 note all hidden together), and App.tsx
case 'fuse'route returns null when disabled (fallback in case a stale pushed state survives a reload). FuseFlow.tsx + code path preserved unchanged — flipping FUSE_ENABLED to true restores every affordance at once when real CashFusion wiring lands. Live-verified on Wallet C: wallet-actions = ['SIGN','SWEEP']; Settings dump has no 'PRIVACY' / 'CashFusion' / 'Auto-fuse' strings. 203/203 vitest, tsc clean. · wallet, ui, fuse, cashfusion, feature-flag, honesty, release-polish, settings, main-screen - 0239-wallet-real-per-asset-send-mba-nba-separation — Real per-asset send wired for MBA + honest MBA/NBA separation on AssetDetail. Was: token AssetDetail's Send button opened the BCH-only SendFlow — a user viewing CAP could tap Send and end up sending BCH not CAP (snapshot 0237 finding, user direction to fix). Now: MBA (backed on-chain) shows ORBITAL SWAP · SEND · RECEIVE with a real TokenSendFlow modal that plans via existing DeviantWallet.planTierASend (src/wallet/send-tier-a.ts) — moves N units of the token's category with backing (N × rateSats) traveling to the recipient's CashTokens-aware address, runs the D-1 canonical-contract check, surfaces warnings (non-canonical, self-recipient), executes via executeTierASend. NBA (non-backed) shows TRADE ON MARKET · RECEIVE with no Send + a rev-note: 'No direct send for non-backed tokens in this build — they have no protocol floor and their transfer flow is handled outside this wallet (external DEX / peer channel). Backed assets (MBA) send with their BCH backing intact via the button above.' NBA send needs a rateSats=0 planner variant (would fail sub-dust in the MBA planner) — documented as follow-on. New shells/app/src/components/TokenSendFlow.tsx (details → review → result modal); shells/app/src/core/wallet.ts adds planTokenSend + executeTokenSend + TierASendError re-export; AssetDetail owns sendOpen state and renders TokenSendFlow inline (session-gated); App.tsx drops onSend prop, adds onBroadcast to refresh balance. Live-verified on Wallet C: MBA drill actions ['ORBITAL SWAP','SEND','RECEIVE'] with Send NOVA modal opening; NBA drill actions ['TRADE ON MARKET','RECEIVE'] with the explainer. Two side findings surfaced (deferred): AgoraScreen My Assets shows demo fixtures instead of live Wallet C tokens even when unlocked; MainScreen Backed-Assets drill rows aren't clickable to AssetDetail. 210/210 vitest, tsc clean. · wallet, ui, send, token-send, mba, nba, asset-detail, honest-labeling, tier-a, cashtokens, release-polish
- 0240-wallet-nba-send-wired-plus-deviantx-hosting-reference — Two deliverables: (1) NBA send wired — prepareTierASend now has a rateSats-branch that handles NBA tokens (backing='token', rateSats=0). FT output sats source CT_DUST from the general input pool via a generalized conservation calc (totalIn − totalFtOutputs − minerFee = bchChange); MBA path unchanged because ftInputTotalSats = totalFtOutputSats cancels the FT terms. Skips D-1 canonical-contract verification for NBA (there's no contract to verify) and emits an nba-no-backing warning instead. AssetDetail no longer hides Send for NBA — the button appears and opens TokenSendFlow with copy that adapts: 'Backed token — BCH backing travels with the tokens at X bits/unit' vs 'Non-backed token — only the token units move. No BCH floor, no redemption rate.' Review card 'Verification' row also relabels for NBA. Registry validator (src/token/registry.ts:190) already allowed rateSats=0 for backing='token' — no change there. 3 new unit tests in test/unit/wallet/send-tier-a.test.ts (NBA happy path, exact send, no-bch-input under dust top-up); 192 core wallet tests pass, 210 shell tests pass, tsc clean. Live-verified NBA drill (MRD demo): actions ['TRADE ON MARKET','SEND','RECEIVE'], modal 'Non-backed token — only the token units move.' (2) Hosting reference — Parameters/Hosting-DeviantX.md written sourcing every command from D:/Dev/SilentMode (Argus register CLI, sia-upload.js, updateName record-setting, navigate.st gateway verify). Doc explains multi-TLD BNS is live on chipnet (.bch/.p2p/.deviant/.bit/.de/.nav/.x/.silentmode), picks 's3' (Sia) as the recommended storage backend for the ~10 MB wallet bundle, with 'p' proxy to the existing DuckDNS VPS as fallback. Cannot execute on-chain registration or Sia upload from a Claude session (touches secrets + funds) — the doc is a runbook for operator execution. · wallet, ui, send, nba, token-send, tier-a, backing, cashtokens, hosting, bns, sia, silentmode, deviant-x, doc
- 0240-wallet-spv-s3-serverpool-booted — SPV S3 BOOTED: new src/core/spv/session.ts startSpv(network) fuses ServerPool + SpvVerifier.fromPool into one background-booted unit — pool.onHeader → advanceTip (the 210-block verified window follows the live tip, reorg-safe), status() exposes phase/live-servers/tips/window/divergences/tip-spread for the UI indicator; boot is NON-BLOCKING + NON-FATAL (no endpoint ⇒ 'unavailable', wallet stays server-trusting, pool retries with backoff). Wired into sessionFromKeys via a guarded flagged touch (skipped in tests/no-WebSocket; VITE_SPV_OWN_ENDPOINT adds our own Fulcrum as the preferred first vote). The new tests caught + fixed a REAL fill() race (drop-during-fill overshot targetLive; fill serialized with an in-flight ledger). 7/7 pool tests (failover, quorum majority + divergence, drop→refill on a different candidate, broadcast, tip-spread, full boot → 'chained', unavailable safety) + LIVE chipnet smoke: bogus endpoint skipped, 2 real WSS servers, 211-header window quorum-fetched in ~1.9 s, 0 divergences. Suite green, tsc clean. · wallet, spv, s3, server-pool, boot, failover, quorum, divergence, race-fix, session, chipnet, trust-model
- 0241-wallet-agora-live-token-hydration-fix — AgoraScreen My Assets was showing 'Demo assets shown' fallback on real unlocked wallets whenever the live-mapping produced an empty list — either because balance was still loading (null) or because the wallet had no MBA/token_std entries but many unknown-category UTXOs. Two fixes: (1) gate demo on
!sessionnot!live?.length— an unlocked wallet's empty list is honest ('No backed assets held' / 'No tokens held'), never demo; (2) also surfacebalance.unknownTokensin the live list via a newunknownToDetailhelper, mirroring MainScreen's Non-backed Assets card which already includes them. Live-verified on Wallet C (currently 0 MBA / 123 unknown-category token UTXOs): MBA filter shows 'No backed assets held.' (honest), Tokens filter shows all 123 real UTXOs as 'Unknown token · MTU · no peg' rows sorted by holdings, no demo banner anywhere. Empty-state copy also tightened: 'No {LABEL} assets here' → 'No backed assets held' / 'No tokens held' (matches MainScreen phrasing). 210/210 shell tests, tsc clean. · wallet, ui, agora, hydration, honest-labeling, unknown-tokens, empty-state, release-polish - 0242-wallet-spv-s1b-asert-validation — SPV S1b DONE — ASERT (aserti3-2d) difficulty validation: src/core/spv/asert.ts implements the BCH DAA (fixed-point cubic, floor-div exponent, [1, powLimit] clamps) with RELATIVE in-window validation (no hardcoded historical anchors; 1/256 tolerance for re-anchoring drift), the testnet 20-min min-difficulty rule, whole-window validateWindow (surfaced in session status().asert) and a checkAppendBits guard that hard-rejects headers claiming >4× easier than consensus requires (rollback + counted). LIVE MAINNET PROOF: 119/119 window headers carry exactly the ASERT-required difficulty, max re-anchoring drift 15 ppm vs 3906 ppm tolerance (260× margin). Chipnet path proven on the real fixture window (live leg blocked by a full public-electrum chipnet outage — itself the argument for the own endpoint). CONCURRENT-SESSION COLLISION RESOLVED: chain-view.ts's expected API (computeAsertTarget/ASERT_HALF_LIFE/AsertAnchor) exported over the same asertCore — two calling conventions, one math. 223 passed, tsc clean. · wallet, spv, s1b, asert, aserti3-2d, daa, difficulty, mainnet-validated, min-difficulty, chain-view, collision-resolution, trust-model
- 0243-wallet-spv-s4-self-tracked-state — SPV S4 DONE — the wallet becomes its own source of truth: src/core/spv/tracker.ts SelfTracker rolls the outpoint set forward from OUR OWN broadcasts (recordSend: spent coins leave immediately + enter an anti-resurrection ledger; change re-enters at 0-conf), keeps a persisted CLIENT-SIDE journal (self-custody of history, SPV grades attached), and demotes the quorum-compared server view to a REPAIR SIGNAL: reconcile() adopts SPV-verified incoming payments, detects external spends (confirmed-only; 0-conf change survives a lagging index), and REFUSES to resurrect a locally-spent outpoint a stale server offers back — the 0218 failure class closed CLIENT-side. Wired: session.attachTracker + sessionFromKeys binding + sendBch as the reference self-bookkeeping path. 7/7 tests (anti-resurrection, external-spend, unprovable-refused, persistence); suite 230 green. Completes the S1→S4 SPV ladder and converges with lean-utxo-endpoint tier-1 (self-tracked outpoints need NO standing address index). · wallet, spv, s4, self-tracked, outpoints, client-side-history, anti-resurrection, journal, reconcile, lean-endpoint, privacy, trust-model
- 0244-wallet-doublespend-p2sh-validated — Empirical chipnet test — P2SH-input 0-conf safe against double-spend (first-seen holds), but DSProof spec does not cover P2SH inputs; merchant early-warning is P2PKH-only. · doublespend, dsproof, p2sh, p2pkh, 0conf, chipnet, merchant-safety
- 0248-wallet-katalogos-shared-registry-v1-chipnet — Shared Katalogos registry v1 shipped on chipnet — oracle-priced $1 in DEA, immutable per-entry NFTs (ADR-0055); Publish button live in Pinax, swap picker reads shared list; CHE + ATD inscribed · wallet, katalogos, pinax, registry, oracle, adr-0055, adr-0052, adr-0048, chipnet
- 0249-wallet-katalogos-publish-button-chipnet-verified — Publish button verified end-to-end on chipnet by driving the exact modules the browser imports; test caught a require() in the shell publisher that only survived under Vite's CJS polyfill and would have thrown at first click in a plain-ESM build · wallet, katalogos, pinax, publish, chipnet, adr-0055, esm, verification
- 0250-wallet-capacitor-keystore-0083 — CapacitorKeyStore ported to the 0083 all-in-one multi-account model — sealed material in the OS secure store, public catalogue in localStorage, 18/18 test green with mocked plugins. · keystore, capacitor, mobile, 0083, multi-account, native, biometric
- 0251-wallet-anthemus-taker-path — 0251 — Anthemus taker path:
buildTakeTxend-to-end (ExchangePanel market button → covenanttake()) · anthemus, taker, dex, chipnet - 0251-wallet-wizardconnect-lgpl-attribution-ui — Closes §6 UI (LGPL §4(a)/(b)/(c)) for WizardConnect — ships LGPL-3.0 + GPL-3.0 texts under public/licenses/ with a small index page, adds a Licences row to Settings → About carrying the required Riften Labs attribution. Together with the vendor-wizardconnect chunk (0232) this clears the mainnet-blocking LGPL obligations. · wallet, wizardconnect, lgpl, attribution, settings, licences, mainnet-gate
- 0252-wallet-pinax-preflight-friendly-publish-errors — Pinax now shows a preflight status line above the Publish button and speaks in user language on every failure path — no more raw ECONNREFUSED or 'no DEA UTXO ≥ 231 atomic' error strings; button self-disables when preflight blocks and offers a retry after broadcast failures · wallet, katalogos, pinax, preflight, ux, error-mapping, chipnet, adr-0055
- 0253-wallet-katalogos-live-refresh-after-publish — Live Katalogos refresh — the swap picker sees a newly-published asset without an app reload; module-scoped rev counter + useKatalogosRev hook, bumped from doPublish, consumed by AsmCore's discovery effect · wallet, katalogos, pinax, swap-picker, reactive, freshness, chipnet, adr-0055
- 0254-wallet-katalogos-public-local-chip — Katalogos directory rows carry a Public or Local chip so users can see at a glance which of their MBA entries are inscribed on the shared registry vs live only in their wallet's local list; flips live on publish (uses the 0253 rev bus) · wallet, katalogos, pinax, ux, directory, chip, reactive, chipnet, adr-0055
- 0255-wallet-katalogos-external-publish-polling — Background poll of the shared Katalogos catches publishes made outside this wallet — another user's inscription, or one that landed while this session was closed, now propagates to the swap picker and Public/Local chip within one 30s interval, no reload required · wallet, katalogos, polling, freshness, chipnet, adr-0055, visibility-api
- 0256-wallet-katalogos-local-chip-jump-to-publish — Local chip in the Katalogos directory is now a jump-to-publish action — one click opens Pinax straight on the success/publish screen for that already-registered token; new publishOnly mode in TokenImportModal skips the form entirely · wallet, katalogos, pinax, ux, publish, jump-to-action, chipnet, adr-0055
- 0258-wallet-taxonomy-regular-forms-plus-dea-direct-emission — Six of eight asset-class labels swap to their regular mint·supply·category form (MCA→MUA, MTA→MLA, PTU→PUT, PTL→PLT, MTU→MUT, MTL→MLT); DEA keeps its flagship code but its long name becomes 'Direct Emission Asset' (the 'Deviant Equilibrium Asset' name is reserved for a specific asset to be minted); internal codes stay canonical for storage compatibility; taxonomy HTML doc updated in parallel · wallet, taxonomy, asset-class, artemision, naming, dea, mba, docs
- 0259-wallet-artemision-prep-utxo-plus-deviantx-redeploy — Artemision Review wall now recovers the 'no eligible genesis UTXO' dead-end with a one-click Prepare wallet button (auto self-send creates the missing vout-0 output, re-plan re-runs); redeploy.sh repointed from the retired duckdns box to the current deviant.x infra (silentmode.st/deviant/wallet) · wallet, artemision, genesis, cashtokens, ux, prep-flow, deviantx, deploy, silentmode
- 0260-wallet-artemision-rate-bug-plus-ux-tighten — Four UX fixes from a live wallet walk-through: rate warning no longer false-positives at decimals>0 (compares whole-unit rate not atomic), Type-CREATE gate removed from the Review wall (Create is already gated by the wizard + irreversible banner; reserve DELIST for typed-phrase friction), class cards now show full regular-form names + plain-language axis summaries, and Pinax Scan tab explains it's for assets someone else sent you · wallet, artemision, pinax, ux, bug-fix, rate-tier, class-cards, chipnet
- 0261-wallet-katalogos-listed-unlisted-plus-founder-actions — Katalogos reframed with Listed / Unlisted top tabs (was MBA/NBA/All) matching the ADR-0055 free-vs-paid model — Listed = human-readable metadata inscribed on-chain, Unlisted = contract-only, only-creator-sees; MBA/NBA becomes a sub-filter with a My-assets chip; AssetDetail gets a Founder actions block (Publish, Modify fee disabled with reason, Delist disabled with reason) · wallet, katalogos, pinax, ux, founder-actions, listed, unlisted, adr-0055, chipnet
- 0262-wallet-katalogos-unlisted-contract-only-plus-post-genesis-publish — Unlisted tab is now genuinely contract-only (glyph, name, ticker all suppressed — only the categoryId and a discreet Yours chip for the creator); post-Genesis Publish step wired on the Artemision receipt for MBAs (opens the 0256 publishOnly modal with the freshly-minted TokenTierA); reports on the DEA-flagship state as a follow-up · wallet, katalogos, artemision, ux, unlisted, publish-step, adr-0055, dea-flagship
- 0263-wallet-fab-toggle-plus-agora-potidaea-tab — FAB (New tx) now toggles instead of re-opening + the sheet-backdrop covers the full desktop viewport so outside clicks dismiss (fixes the stuck-open sheet the user reported); Agora Hub gets a Potidaea tab that embeds AsmCore inline · wallet, ux, fab, agora, potidaea, orbital-swap, chipnet, bug-fix
- 0264-wallet-pin-pad-plus-fab-agora-verification — New on-screen numeric PinPad component (3×4 grid + masked dots) wired into both Unlock and Onboarding PIN steps; keyboard input still bound (0..9 / Backspace) so desktop typing feeds the same state; live-verified in the deployed wallet — Onboarding renders two pads (Choose + Confirm) with 24 keys total and dots update on tap · wallet, ux, pin-pad, unlock, onboarding, mobile-first, chipnet
- 0265-wallet-asmcore-embedded-mode-for-agora-potidaea — AsmCore gains an
embeddedprop that suppresses the top-level back arrow on the builder view — used by the Agora Potidaea tab (where the segmented tabs are the navigation surface); the arrow still appears on internal quote/confirm/result sub-views, and the pushed-screen path from Asset Detail leaves it unset so the full screen still shows the arrow · wallet, agora, potidaea, asmcore, ux, polish - 0266-wallet-adjustable-fee-end-to-end-artemision-updatefee — DeviantAdjustableFeeCapped covenant (chipnet-validated in 0259) wired end-to-end into the wallet — Artemision fee-mode toggle (Fixed / Adjustable) with honest two-knob sliders; TokenTierA.adjustableFee descriptor; ScriptNum codec (10/10 tests match the on-chain commitments byte-for-byte); GenesisExecutor nftOverride so the reservoir NFT lands as mutable + bytes(startingFeeBps); executeUpdateFee shell flow + Modify-fee modal on AssetDetail that rotates the on-chain commitment · wallet, covenant, adjustable-fee, adr-0011, artemision, asset-detail, updatefee, scriptnum, chipnet, route-b
- 0271-wallet-bulk-import-from-encrypted-keystore — Design spec for Settings→Wallets → "Import from encrypted keystore": UI-side loop over
MultiKeyStore.importWif/importSeedthat readsKeys/chipnet-keystore.json(chipnet-keystore/2-encrypted, PBKDF2-SHA256/200k + AES-256-GCM), prompts once for the master password, previews entries with labels/categories/cashaddrs, checkbox-selects, and imports N wallets under one PIN entry. No MultiKeyStore API changes; uses the stableimportWif/importSeedshipped 2026-07-07. · wallet, keystore, bulk-import, multi-account, ui, chipnet, master-password, aes-gcm, pbkdf2, subtle-crypto, multi-key-store, settings - 0272-wallet-asmcore-optimistic-chain-retry — AsmCore beta wires the tier-4 client-side optimistic chain + retry pattern — swap/mint/swap-all now silently re-plan against the mempool-inclusive reservoir tip and re-broadcast on
txn-mempool-conflict, resolving the same-target reservoir race client-side (chipnet-measured 1/6 → N/N on the naïve path) · wallet, asm, orbital-swap, potidaea, agora, chipnet, retry, zero-contention - 0275-wallet-auto-update-published — Auto-update banner on-launch + published release channel on deviant.x (manifest + APK). · wallet, auto-update, release, deviant.x, capacitor
- 0276-potidaea-chart-tab-plan — Design for a Potidaea Chart tab — historical price chart of any asset in USD, powered by a lean off-chain oracle history + on-chain covenant rate for MBAs · potidaea, ui, chart, oracle, price-history, plan
- 0276-wallet-bns-multisig-consolidate-cap — BNS Send targets (alice.bch), Multisig cosign inbox (aegis.cosign.v1 interop), 600-coin cap on Sweep + Consolidate. · wallet, bns, multisig, aegis, cosign, nostr, consolidation, sweep, 0.1.2
- 0277-wallet-download-page-deviant-x-wallet — deviant.x/wallet download landing page — Sia-hosted + silentmode.st mirror, live manifest fetch. · wallet, deviant.x, download, sia, bns, seo, release-channel
- 0281-wallet-potidaea-balance-flash-overlay-removed — Potidaea's "0.82 BCH flash → empty" balance race fixed by removing the pending-swap optimistic overlay layer (−251 lines) and the wc.on('idle') auto-wipe. · potidaea, bug-fix, cleanup, balance-paint, theseus
ASM / Orbital Swap / Potidaea / Anthemus (45)
- 0002-swap-core — swap core landed · swap
- 0005-q4-handoff — Q4 answer + chipnet validation plan, pre-switch handoff
- 0007-cashtokens-contract — CashTokens-aware contract compiles; tier floor raised to 1000
- 0008-q4-result — Q4 ANSWERED YES on chipnet
- 0009-cross-founder-mint — cross-founder open-mint validated; design questions answered
- 0012-vulnerability-audit — vulnerability audit round 1 — rogue minting NFT found, negatives clean
- 0013-asm-flow-batching — ASM token end-to-end flow with P2P transfers and 100-output batching · asm
- 0014-asm-asm2-bidirectional-swap — ASM ↔ ASM2 bidirectional swaps with founder fee · asm, swap
- 0015-bulk-swap-100x100 — bulk swap stress test — 96 swaps across A and C · swap
- 0016-bulk-swap-100-complete — C reaches 100 swaps; combined 129 swaps in the bulk run · swap
- 0017-swap-mechanism-threat-report — swap-mechanism threat report · swap
- 0018-non-canonical-contract-rug — non-canonical-contract rug — threat write-up
- 0019-b-model-definition-poisoning — B-model definition poisoning — threat write-up & conceptual frame
- 0020-t001-poc-chipnet — T-001 non-canonical-contract rug — chipnet PoC
- 0024-protocol-boundary-empirical — Protocol boundary — three empirical tests
- 0025-escalating-rate-bonding-curve — escalating-rate (bonding-curve) variant — empirical
- 0026-rate-mechanics-and-consolidated-report — rate-escalation mechanics + consolidated protocol-vs-wallet report · wallet
- 0027-bonding-curve-swap-and-premium-feature — bonding-curve ASM swap works + dynamic-rate premium feature (ADR-0015) · asm, swap
- 0028-unbacked-tokens-not-asm-swappable — unbacked (Token-family) assets are not ASM-swappable · asm
- 0032-phase3-claim-integration — Phase 3 — open-mint claim in the wallet library · wallet
- 0036-swap-mechanics-divisibility-denomination — swap mechanics, divisibility, denomination economics & redemption safety · swap
- 0058-escalating-fee-feasibility-chipnet — escalating founder-fee — 3-trigger CashScript feasibility test (chipnet)
- 0059-escalating-fee-adr-and-decreasing-variant — ADR-0029 accepted — stepped founder fee, decreasing sibling, D-1 wiring
- 0060-family-d-collateralized-binary-share-mar — Family D collateralized binary share market (Polymarket model) design + ADR-0030
- 0062-family-d-config-1-pure-bch-clob-split-me — Family D config 1 pure-BCH CLOB split/merge chipnet-validated · clob
- 0064-family-d-on-chain-resting-limit-orders-s — Family D on-chain resting limit orders (ShareLimitOrderBCH) chipnet-validated
- 0065-family-d-amm-sharepairamm-adr-0031-oracl — Family D AMM (SharePairAMM) + ADR-0031 oracle-priced vault spike chipnet-validated · oracle
- 0076-nba-readers-guide-asset-landscape — NBA reader's guide added to
wiki/asset-landscape.md - 0078-swap-flow-live-rates-route-detection — SwapFlow: live rates + route detection · swap
- 0081-swap-broadcast-two-phase-plan-execute — Swap broadcast: two-phase plan → execute · swap
- 0088-swap-all-target-two-step-redeem-all-then — swap-all target two-step redeem-all then claim chipnet validated · swap, redeem
- 0154-retire-legacy-op-return-swap-files-swapm — retire legacy OP_RETURN swap files (swapMath swapBuilder OpenMintToken) · swap
- 0164-adr-0044-bch-native-non-custodial-p2p-fi — ADR-0044 BCH-native non-custodial P2P fiat market (design)
- 0165-adr-0045-p2p-dispute-resolution-launch-d — ADR-0045 P2P dispute resolution launch design (lean)
- 0207-asm-tiered-mint-oracle-game-currency — DeviantTieredMintOracleFT — a standalone free-floating BCH-backed game currency with a tiered mint fee ($0.01 flat up to $1, 1% above), expressed as one continuous max()/"$1-minimum-billable" curve. Oracle sizes the fee ONLY (peg/redeem stay oracle-free), so oracle blast radius is ~1c. Built + compiled + chipnet-validated 5/5 (3 tiers + floor-underpay rejection + P2PKH redeem). ADR-0052; currency stays decoupled from any pari escrow. · game-currency, tiered-mint-fee, minimum-billable, oracle-fee, checkdatasig, free-floating-mba, deviant-tiered-mint-oracle-ft, adr-0052, chipnet-validated, decoupled-currency, pari-escrow-consumer, anti-dust
- 0234-asm-potidaea-ui-katalogos-pinax-bits-hybrid-usd — Potidaea ASM design build-out — a desktop landing site + a responsive Orbital-Swap web app (Swap/Katalogos/Olympia/Yield) on CosmoGenesis, published as an Artifact + a deployable dist/ with a VPS/BNS/IPFS runbook; the Metroon directory split into Katalogos (read/catalogue) + Pinax (write/registration); the project-wide sat→bits terminology rule added to CLAUDE.md and swept across 54 wiki/Parameters docs + the app-shell UI; and the fiat-asset economics pinned — FIATμ (BCH-backed, ASM-swappable) vs Uniform USD (deposited-stablecoin reserve, NBA, DEX-only), with a hybrid mixed-backing 'dial' simulation. CHE + GMX game-coin descriptors verified (two mint templates). · potidaea, orbital-swap, asm-ui, cosmo-genesis, landing-site, desktop-app, artifact, dist-deploy, bns, ipfs, katalogos, pinax, metroon-rename, glossary, bits-terminology, fiatm, uniform-usd, hybrid-usd, mixed-backing, cdp, che, gmx, deviant-tiered-mint-oracle, single-template-canonical, nba-fee-open
- 0239-asm-potidaea-openmint-swap-relay-11167 — Potidaea platform-fee model proven live on chipnet: fresh DeviantOpenMintFT asset (R=1000, feeBps=100) swap-relayed by 9 wallets with a client-added 0.5% platform-fee output per claim; 26,599 total swaps across three sessions (11,167 → 13,414 → 26,114 → 26,599), 15.02 M bits real platform revenue to a fresh potidaea platform wallet + 30.03 M bits founder revenue to gmx, ratio 2:1 as ADR-0053 spec, peak rate 44 swaps/sec, cumulative session miner reward ≈ 58 M bits. · potidaea, asm, openmint, swap-relay, platform-fee, adr-0053, chipnet-validated, multi-source-broadcast, potidaea-wallet, keystore
- 0259-asm-adjustable-fee-with-cap-covenant — Adjustable founder-fee-with-cap covenant chipnet-validated — mutable NFT commitment carries feeBps, founder-signed updateFee bounded by immutable maxFeeBps · covenant, fee, adr-0011, nft-commitment, chipnet, negative-tests
- 0273-asm-dea-yield-v1-platform-fee-shipped — DEA yield engine v1 shipped: 0.5% platform fee client-appended (posture A) to every Potidaea claim, split 40% platform · 60% consensus-locked DistributionVault; off-chain attributor pays holders pro-rata via oracle-signed outpoint-bound payouts. Chipnet-proven end-to-end (fee-collection tx 7452a086…, 3 payouts 1f3270bf…/fadefb41…/d4a13b33…), deployed live to navigate.st/bns/potidaea.asm · asm, dea, distribution-vault, adr-0042, potidaea, platform-fee, posture-a, chipnet
- 0274-asm-dea-yield-v2-covenant-multi-utxo-history — DEA-yield v2 batch: (1) new DeviantPlatformMBA.cash covenant enforces platform fee at consensus (posture C — proven chipnet: correct claim ACCEPTED tx 2bafa03b…, malformed bypass REJECTED at cash:110); (2) multi-UTXO attributor sums all spendable vault UTXOs and splits large entitlements across UTXOs (v2 attributor drained 50,400 → 8,400 bits, G's 14k split across 3 UTXOs); (3) last-vault-activity txid link on Katalogos DEA Yield tab (queries chipnet address history) · asm, dea, distribution-vault, adr-0042, potidaea, platform-fee, posture-c, covenant, multi-utxo, chipnet
- 0275-asm-forced-race-retry-proof-chipnet — Chipnet force-race + tier-4 retry proof: same 6-wallet parallel-broadcast harness that measured 1/6 in Parameters/ASM_Native/ASM-no-shared-state-contention.md §4 now shows 6/6 accepted when each claim is wrapped in the shared client-side retry loop (20 broadcasts total, mean 3.3 attempts, all under 3 s). Closes the 'parallel reservoir contention test' gap with a resolved result rather than a collision measurement. · asm, potidaea, orbital-swap, retry, zero-contention, chipnet, proof, contention-doc
- 0277-potidaea-orbital-swap-retry-adaptation — Potidaea dApp (navigate.st/bns/potidaea.asm) adopts the tier-4 client-side optimistic chain + retry pattern shipped in the beta wallet AsmCore (snapshot 0272): claimViaWc / claimViaLocalSigner / claimViaLocalSignerShare wrapped with silent re-broadcast on txn-mempool-conflict, retry-status banner in pendingSheet, resolved-via-N badge on doneSheet. tsc clean, dApp built. · asm, potidaea, orbital-swap, retry, zero-contention, chipnet, wallet-parity
- 0278-asm-sequencer-service-drafted-and-proved — Tier-2 ASM sequencer service drafted as a coordinator-funded HTTP relay + tested end-to-end on chipnet. 5 simultaneous /claim requests → 5/5 accepted with the daemon-assigned order forming a single reservoir chain (each tx spent the previous tx's reservoir output). Complements the tier-4 wallet retry from 0272/0275/0277 by adding the low-latency relay path with the wallet retry as fallback. · asm, potidaea, orbital-swap, sequencer, tier-2, zero-contention, chipnet, proof, daemon, relay
- 0279-asm-sequencer-full-stack-userfunded-wallet-wire-systemd — Three-part completion of the tier-2 sequencer arc: (1) systemd unit + deploy README for running the daemon as a long-lived service; (2) user-funded /tip + /submit endpoints that remove the 'relay holds funds' trust step, chipnet-proved 5/5 (users signed their own BCH inputs, mean 3 attempts via 409-stale retry); (3) wallet-side sequencerRelay.ts client in both shells/app and design/potidaea with probe-first-then-commit race-free dispatch. Plus a chipnet-fund-from-h.mjs helper that topped up A/C/E/F/G from wallet H. · asm, sequencer, tier-2, zero-contention, chipnet, systemd, user-funded, wallet-wire, potidaea, proof
- 0280-asm-sequencer-settings-ui-toggle — Settings-UI toggle for the ASM sequencer relay in both surfaces. Beta wallet gets a new 'ASM sequencer relay' group in SettingsScreen with URL input + live reachability probe. Potidaea's dynamic walletMenu gains the same input + status chip (drafted, not yet committed — needs the DEA session's co-mingled main.ts/app.html changes to land first). Server gained permissive CORS so browser probes succeed. Browser-verified reachable↔unreachable transitions against a live chipnet daemon. · asm, sequencer, tier-2, zero-contention, settings-ui, wallet-wire, potidaea, cors
FIATm / BCHm / MBA (backed currency) (58)
- 0011-rate-peg-attack — rate-peg attack demonstrated — vulnerable contract drained in one tx
- 0021-fee-economics-and-stablecoin-frame — fee economics + stablecoin worked example · stablecoin
- 0037-denomination-and-dra-template — denomination (decimals) + DRA bonding-curve template · dra
- 0038-redeem-register-cli-gui-enrichment — redeem + register flows, CLI/GUI value enrichment · redeem, cli
- 0045-oracle-markets-chipnet — oracle-settled prediction markets — Family B + fixed-roster tote, chipnet-validated · oracle, tote, prediction
- 0049-tier2-mba-tote-chipnet — Tier-2 open tote, MBA-denominated (2-UTXO) — chipnet-validated · mba, tote
- 0062-synthetic-usd-hedge-adr0031 — Non-custodial synthetic-USD stablecoin (AnyHedge-class) — ADR-0031 · stablecoin, anyhedge
- 0063-family-d-configs-2-3-mba-collateral-fung — Family D configs 2+3 — MBA-collateral + fungible two-category CLOB chipnet-validated · clob, mba
- 0066-expiringmba-time-boxed-self-backed-instr — ExpiringMBA time-boxed self-backed instrument (ADR-0032) chipnet-validated
- 0067-adr-0033-cdp-stablecoin-taxonomy-collate — ADR-0033 CDP stablecoin taxonomy: collateral backs the debt not the token; token is unbacked PTU · stablecoin
- 0068-propagate-adr-0033-cdp-stablecoin-placem — Propagate ADR-0033 CDP-stablecoin placement into Knowledgebase taxonomy docs · stablecoin
- 0070-propagate-cdp-stablecoin-ptu-into-glossa — Propagate CDP-stablecoin=PTU into glossary + Avalanche detail sheets (ADR-0033) · stablecoin
- 0071-adr-0033-asset-landscape-glossary-the-vo — ADR-0033 + asset-landscape + glossary: the volatility paradox (CDP overcollateralized AND most volatility-exposed)
- 0072-adr-0033-decision-8-secured-is-not-backe — ADR-0033 Decision 8: secured-is-not-backed, token+debt decoupled, neither side has per-unit backing
- 0073-adr-0033-decision-9-leverage-value-flow- — ADR-0033 Decision 9: leverage + value-flow asymmetry (upside always flows past the holder)
- 0075-bch-usd-rail-adr0035-and-adr0031-amend — BCH as a USD rail — ADR-0035 +
wiki/usd-rail.md+ ADR-0031 rejected-alternative amendment - 0077-basket-stable-and-mba-floored-meta-stable —
usd-rail.md§4.4 — basket-stable, diversification-vs-offsetting, MBA-floored meta-stable · mba - 0079-sim-cdp-hedge-bch-frame — BCH-frame CDP + AnyHedge numerical simulation (
scripts/sim-cdp-hedge-bch-frame.mjs) · anyhedge - 0084-anyhedge-paryon-turn0-compat-validated — AnyHedge + ParyonUSD chipnet integration — Turn 0 (compat validated, scope refined) · paryon, anyhedge
- 0086-metal-mbas-gld-slv-cup-decreasing-fee-an — metal MBAs GLD SLV CUP decreasing fee and founder revenue test · metal
- 0089-route-b-deviantdescfeesupply-wired-into- — Route B DeviantDescFeeSupply wired into wallet GLD SLV CUP first-class · wallet
- 0090-divisible-metal-variants-gldd-slvd-fract — divisible metal variants GLDd SLVd fractional transfer and old-to-new migration · metal
- 0093-caveated-divisible-cupd-and-claim-confir — caveated divisible CUPd and claim confirmation whole-unit display
- 0094-sim-rescaled-to-canonical-paryon — simulation rescaled to canonical ParyonUSD; dUSD future track recorded · dusd, paryon
- 0095-three-way-cdp-model-comparison — three-way CDP liquidation model comparison @ 150% init; dUSD design space sharpened · dusd
- 0096-pre-turn1-anyhedge-oracle-format — pre-Turn 1 — AnyHedge oracle message format + signing utility, 18/18 self-test pass · oracle, anyhedge
- 0099-path-c-confirmed-pre-turn2-priceoracle-read — Path C confirmed — pre-Turn-2 PriceContract oracle format read; Turn 2 deployment plan · oracle
- 0101-adr-0039-mba-divisible-by-default-denomi — ADR-0039 MBA divisible-by-default denomination rule in create flow · mba
- 0104-default-denomination-refined-to-uniform- — default denomination refined to uniform 2dp with wallet-side minimum threshold · wallet
- 0128-exponential-dra-global-self-backed-rate- — exponential DRA global self-backed rate doubling chipnet proven · dra
- 0129-bounded-unroll-batch-claim-claim3-for-ex — bounded-unroll batch claim (claim3) for exponential DRA · dra
- 0130-step-tiered-dra-flat-rate-per-tier-bound — step/tiered DRA — flat rate per tier, boundary-capped batch · dra
- 0136-oracle-priced-mba-usdm-stablecoin-covena — oracle-priced MBA (USDm stablecoin) covenant + chipnet round-trip · covenant, mba, stablecoin, usdm, oracle
- 0137-eurm-multi-oracle-asset-market-atomic-cr — EURm + multi-oracle-asset market, atomic cross-stablecoin swap (stage 3) · swap, stablecoin, eurm, oracle
- 0138-dea-market-111-chipnet-swaps-across-6-as — DEA market + 111 chipnet swaps across 6 assets + DEA large-claim proof · dea
- 0139-pegstate-single-oracle-usdm-price-adjust — PegState single-oracle USDm price adjustment (epoch peg + deadband) on chipnet · usdm, oracle
- 0140-usdm-multi-swap-behavior-run-oracle-unit — USDm multi-swap behavior run + oracle unit tests folded into classifier · swap, usdm, oracle
- 0141-zero-fee-usdm0-eurm0-cross-swaps-covenan — zero-fee USDm0/EURm0 cross-swaps + covenant fee asymmetry · covenant, usdm, eurm
- 0143-usdm-design-amend-section17-tvl-oracle — USDm design amendment — §17 + new §17b (TVL oracle as third option) · usdm, oracle
- 0144-mba-shares-design-record-adr-0042 — MBA shares design record + ADR-0042 · mba
- 0144-multi-currency-bchm-and-merchant-pos — multi-currency BCHm chipnet (GBPm/JPYm/INRm) + merchant POS dApp scaffold · bchm, gbpm, jpym, inrm
- 0145-shares-collection-side-proven-naming-pan — shares collection-side proven + naming pantheon + Avalanche rename map
- 0145-sound-money-primer-public-facing — public-facing sound-money primer landed in wiki
- 0146-usdm-design-six-layer-controller — USDm design record — §12 expanded into six-layer adaptive monetary controller · usdm, controller
- 0147-five-layer-controller-correction-plus-simulator — USDm controller correction — five layers (not six); simulator added · usdm, controller
- 0148-usdm-historical-backtest-2017-2026 — USDm 9-year historical back-test — Aug 2017 fork → Jun 2026 · usdm, backtest
- 0149-usdm-docs-updated-with-backtest — USDm / sound-money docs updated with 9-year back-test evidence · usdm, backtest
- 0150-session-synthesis-usdm-family-and-controller — SESSION SYNTHESIS — USDm family + five-layer controller + back-test · usdm, controller
- 0155-fiatm-design-record-promoted-to-family-l — FIATm — design record promoted to family level · fiatm
- 0157-fiatm-multi-redeem-chipnet-experiment — FIATm multi-redeem chipnet experiment · fiatm, redeem
- 0158-usdm-22-calibration-sweep-first-cut — USDm §22 calibration sweep — first cut · sweep, usdm
- 0159-fiatm-hyperinflating-currency-backtests- — FIATm hyperinflating-currency backtests (ARSm, TRYm) · fiatm, arsm, trym
- 0160-arsm-trym-chipnet-live-multi-state-traje — ARSm/TRYm chipnet live + multi-state trajectory + §7b §14a · arsm, trym
- 0161-catalytic-converter-mini-scale-tests-hyp — catalytic-converter mini + scale tests — hypothesis validates · catalytic
- 0162-catalytic-converter-cross-substrate-test — catalytic-converter cross-substrate test — substrate is load-bearing · catalytic
- 0163-consolidation-7a-1-artemision-7b-lag-8-1 — consolidation — §7a.1 Artemision + §7b lag + §8.1 institutional asymmetry + hypothesis doc · artemision
- 0168-fiatm-exchange-demo-and-adaptive-layer-design — FIATμ Exchange demo + adaptive response layer design · fiatm
- 0169-real-data-historical-sim-empirical-7b-va — real-data historical sim — empirical §7b validation + data-source paywall finding
Cross-chain / interchain hub / T6 (51)
- 0170-chipnet-amm-usdm-pusd-and-crosschain-wrap-tusdt — chipnet USDm/PUSD AMM + real cross-chain wrap (USDt → τUSDt) · usdm, cross-chain, crosschain, wrap
- 0171-crosschain-wrap-safeerc20-fix-robustness-naming — cross-chain wrap hardening: SafeERC20 fix, robustness suite, naming model, source-chain selector · cross-chain, crosschain, wrap
- 0172-htlc-atomic-swap-bch-validated-btc-on-bch-rails-t1 — HTLC atomic swap validated on chipnet (T1 of "BTC on BCH rails") · swap, btc, htlc
- 0173-bch-native-payment-channel-validated-t2 — BCH-native payment channel validated on chipnet (T2 of "BTC on BCH rails") · btc
- 0174-bch-as-btc-l2-swap-model-validated-roundtrip-t5 — "BCH as BTC's L2", swap model validated end-to-end (T5 + round-trip) · swap, btc
- 0175-t6-bch-board-btc-channel-validated-real-coins — T6 validated end-to-end with real coins: BCH records, BTC settles · btc
- 0177-t6-ln-to-t6-routing-validated-real-coins — LN→T6 routing validated end-to-end with real coins (one preimage, two chains)
- 0178-t6-trustless-gaps-closed-honestclose-t4swap-bonded-mofn — T6 trustless gaps closed: honest-close, real BTC↔BCH swap, bonded M-of-N · swap, btc
- 0181-build-b-usdt-tron-bch-rail-complete-interchain-hub — Build B complete: USDT(Tron)↔BCH rail (both flavors) + the interchain hub · interchain, tron
- 0182-t6-swapout-pathA-and-mofn-mint-B1 — T6 swap-out (Path A) + M-of-N IOU mint (Path B / B1), validated · swap
- 0183-pathB-b2-iou-redeem-pooled-release — Path B / B2: BTC-IOU redeem (burn ↔ bonded pooled release), validated · redeem, btc
- 0184-anthemus-btc-t6-usdc-orderbook-spot-fill — Anthemus: order-book-matched BTC-over-T6 ↔ USDc spot fill, validated · anthemus, btc
- 0185-t6-mvp-engine-and-selfcustody-board — T6 MVP: engine library + self-custodial board update (Phases 1–2)
- 0186-t6-mvp-btc-2of2-selfcustody-psbt — T6 MVP Phase 3: real BTC 2-of-2, self-custodial settlement (PSBT) · btc
- 0187-t6-mvp-selfcustodial-wallet-protocol — T6 MVP Phase 4a: two-party self-custodial wallet protocol · wallet
- 0188-t6-mvp-phase4b-selfcustodial-agents-relay — T6 MVP Phase 4b: self-custodial wallet agents + keyless relay · wallet
- 0189-interchain-hub-extended-ttrx-sepolia-anthemus-dex — interchain hub extended: τTRX + Sepolia (both flavors) + Anthemus DEX · anthemus, interchain, ttrx, sepolia
- 0190-t6-mvp-btc-lifecycle-in-wallet-open-close — T6 MVP: full channel lifecycle in the wallet (BTC 2-of-2 open + cooperative close) · wallet, btc
- 0197-cross-chain-unified-usdt-reserve-covenant — unified-USDT per-chain reserve covenant — one fungible token + on-chain reserve ledger, enforced + validated on chipnet · correspondent, reserve-ledger, covenant, cashtoken, unified-usdt, chipnet, asset-generic
- 0198-cross-chain-correspondent-phase1-deposit — Phase-1 correspondent deposit rail — service + MetaMask UI on the reserve covenant; Sepolia USDC → BCH validated end-to-end · correspondent, phase-1, deposit, sepolia, usdc, metamask, service, reserve-ledger, mint-equals-lock
- 0199-cross-chain-correspondent-tron-ledger — P1-6 — second correspondent ledger (Tron/TronLink → USDT) live; Nile USDT → BCH validated end-to-end; the rail is now multi-chain · correspondent, phase-1, tron, tronlink, usdt, nile, second-ledger, multi-chain
- 0200-cross-chain-correspondent-redeem-leg — correspondent REDEEM leg (BCH → origin, single-chain): burn IOU on BCH → release real USDC/USDT on Sepolia/Nile; round-trip validated both chains; UI Deposit/Withdraw toggle · correspondent, redeem, withdraw, burn-and-release, round-trip, single-chain, tron, ethereum
- 0201-cross-chain-named-gateway-and-wallet-plan — human-named source gateway (DeviantBitcoinCashGateway — wallets show 'Deposit To Bitcoin Cash'); intent review UX; verify tooling; From→To own-wallet Send UI planned · correspondent, gateway, wallet-legibility, verification, intent-ux, multichain-wallet, plan
- 0202-cross-chain-multichain-wallet-w1-derive — W1 — derive the wallet's own Ethereum + Tron addresses in-app from its key (no ethers, no external wallet); wired into the withdraw flow, verified against tronweb + EIP-55 · multichain-wallet, w1, derivation, ethereum, tron, self-custodial, mobile
- 0203-cross-chain-multichain-wallet-w2-signer — W2 — in-app EVM signer: sign approve + depositToBitcoinCash with the wallet's derived key (hand-rolled RLP/EIP-155, no ethers); full deposit driven through the app with NO external wallet, validated on real Sepolia + chipnet · multichain-wallet, w2, in-app-signer, ethereum, rlp, eip-155, no-metamask, mobile
- 0204-cross-chain-uniform-reserve-basket-m3 — M3 — UniformReserve.cash: the (issuer×chain) basket covenant for one unified currency (USD/EUR), generalizing UnifiedUsdtReserve with oracle-priced deposit, per-cell caps, pro-rata redemption, buffer, and pause; 6/6 on MockNetworkProvider · uniform-usd, uniform-eur, basket-reserve, issuer-x-chain, oracle-priced-deposit, pro-rata, buffer, pause, adr-0051, m3, covenant, mock-vm
- 0205-cross-chain-uniform-fx-swap-desk-m3b — M3b — UniformReserve.fxSwap: the counterparty-free USD↔EUR FX desk wired onto the M3 baskets; co-spends both controllers, mints out-currency against reserve headroom (band floor → over-band refuses to DEX), burns in-currency, cells/buffer/pause untouched; 4/4 on MockNetworkProvider · uniform-usd, uniform-eur, fx-swap, cross-currency, band-floor, headroom, batch-rebalance, shared-fx-oracle, adr-0051, m3b, covenant, mock-vm
- 0206-cross-chain-uniform-router-and-fiat-docs-m4 — M4 — uniform-router: off-chain DEX-overflow router (desk-first, over-band/dry-basket → Anthemus constant-product DEX; compose desk+market); 5/5 node test. MVP (M3+M3b+M4, debit) reached. Plus the UniformFiat/ doc home: currency-agnostic design + per-currency USD & EUR folders each with a stablecoin×chain track record. · uniform-usd, uniform-eur, uniform-fiat, dex-overflow-router, market-provider, band-refusal, mvp, adr-0051, m4, stablecoin-tracking, issuer-x-chain, docs
- 0207-cross-chain-uniform-oracle-hardening-m5 — M5 slice 1 — oracle-trust hardening on UniformReserve: 2-of-3 oracle quorum on deposit + fxSwap (no single oracle moves the reserve), outpoint-bound staleness rejection, maxPrice ceiling, int64-overflow guard; 5/5 new + 26/26 across the suite. Honest finding: a wall-clock freshness bound is NOT expressible in BCH script. · uniform-usd, uniform-fiat, oracle-hardening, multi-oracle, quorum, 2-of-3, nullfail, staleness, outpoint-binding, overflow-guard, maxprice, adr-0051, m5, covenant, mock-vm, testnet-funding
- 0208-cross-chain-uniform-fiat-chipnet-e2e-m6 — M6a — the Uniform Fiat loop VALIDATED ON LIVE CHIPNET with real testnet coins: genesis USD+EUR baskets → prefund headroom → oracle-priced deposits (10 USDC credited 8.70 USD at $0.87) → counterparty-free USD→EUR fxSwap → pro-rata EUR withdraw. Surfaced + fixed a real gap (no way to prefund redeemable inventory) and hit BCH's 1650-byte script limit twice, forcing two covenant merges. · uniform-usd, uniform-eur, chipnet, e2e, adjustreserve, prefunded-headroom, script-size-limit, 1650-bytes, oracle-priced-deposit, fxswap, pro-rata, adr-0051, m6, wallet-ui-contract
- 0209-cross-chain-fast-median-oracle-controller-m5 — M5 slice 2a — the FAST signaling controller: smoothing by CROSS-SECTIONAL MEDIAN across phase-staggered oracles (wick killed on the first tick, zero lag) instead of temporal EMA lag; staggering gives cadence T/N (4x60s->15s, 5x75s->15s, 6x60s->10s), all deciding in 60s = 10% of a 10-min budget; HOLD fail-safe. 7/7 + sim. · uniform-fiat, fiatm-controller, oracle-median, phase-staggered, cadence, wick-rejection, zero-lag, signaling-machine, fail-safe-hold, adr-0051, m5, off-chain
- 0210-cross-chain-credit-ladder-40-30-30-m5 — M5 slice 2b — the credit ladder + 40/30/30 risk-incidence split: desk/swapper/withdrawer as simplex vertices, reproducing ADR-0051's worked example (swapper 1.5% of swap, withdrawer 0.167% of base, desk 0.2% of pool, all-in $1.67/$100 < Ethereum gas); desk worst case = alphabandmove = 0.8% of reserve; DEBIT is default and any credit rung REFUSES without explicit opt-in + the entire §3 stack. 10/10. M5 COMPLETE. · uniform-fiat, credit-ladder, risk-incidence-simplex, 40-30-30, debit-default, opt-in-gating, drift-margin, not-a-cdp, band, pro-rata, adr-0051, m5-complete, off-chain
- 0211-cross-chain-uniform-cell-registry-and-ceiling — Scaling the basket — a (currency -> issuer x chain cell) registry replacing the old UnifiedUsdtReserve CHAIN_INDEX model; USDC-Base added as a config-only row (Base Sepolia funded, generic EVM rail); and the 40-byte commitment's FOUR-CELL ceiling made explicit + ENFORCED. USD is now FULL, which puts it in real tension with constraint 3 — the next architecture decision, with costed options. · uniform-fiat, cell-registry, issuer-x-chain, capacity-ceiling, 40-byte-commitment, four-cells, usdc-base, config-not-code, diversification-tension, adr-0051, scaling
- 0212-cross-chain-uniform-aggregate-prototype — Prototype validated — UniformReserveAggregate.cash proves the aggregate-commitment model (cell-capacity.md Option 1a): 40-byte commitment = aggregateBacking(8) || ledgerRoot(32), cells fully off-chain + UNLIMITED, hot paths read only the aggregate, caps quorum-attested. 5/5 mock. Redeem script 560 B vs UniformReserve's 1282 B (2.3× smaller); two controllers co-spend at ~1120 B < the 1650-byte limit UniformReserve hit at 1666. Confirms the recommendation; not yet productionized (needs an ADR). · uniform-fiat, aggregate-commitment, cell-capacity, unlimited-cells, ledger-root, quorum-attested-caps, monoid, redeem-script-size, 1650-bytes, prototype, adr-needed, cross-chain
- 0213-cross-chain-aggregate-migration-chipnet — ADR-0053 migration DONE + VALIDATED ON LIVE CHIPNET — UniformReserveAggregate (aggregate(8)+root(32) commitment, cells unlimited off-chain, caps quorum-attested) is now the production covenant, superseding the 4-cell UniformReserve. fxSwap at parity; off-chain indexer services/uniform-registry/ledger.mjs. Chipnet loop 5/5 with 6 cells (>4) + the two-controller fxSwap co-spend ACCEPTED under the 1650-byte per-input limit UniformReserve hit at 1662. · uniform-fiat, aggregate-commitment, adr-0053, migration, chipnet, e2e, unlimited-cells, ledger-indexer, quorum-attested-caps, fxswap-cospend, 1650-bytes, production-covenant, cross-chain
- 0214-cross-chain-uniform-basket-scaling-catalog — Basket scaling — repurposed services/uniform-registry/registry.mjs from the obsolete 4-cell/slot model to the aggregate-era VETTED CATALOG (code-keyed, unlimited, capUsd+status+rail per cell; buildLedger feeds ledger.mjs). Populated USD with 10 cells + EUR with 4, all on the funded testnets. Scaling is now a config row, not code. 9/9 test; chipnet driver sources cells from the catalog. Off-chain suites 40/40. · uniform-fiat, basket-scaling, vetted-catalog, issuer-x-chain, unlimited-cells, funded-testnets, buildledger, config-not-code, adr-0053, caps, cross-chain
- 0215-cross-chain-pyusd-onboarding-two-chains — PYUSD (PayPal USD) onboarded into the Uniform USD basket on LIVE CHIPNET — the SAME issuer on TWO chains (Ethereum + Solana) became two distinct (issuer×chain) cells folding into ONE unified USD aggregate. Added PYUSD.Ethereum + PYUSD.Solana to the vetted catalog (USD now 12 cells); deposits driven from buildLedger + 2-of-3 quorum; verified on-chain (user holds 7.00 USD = 4.00 + 3.00). EVM real-lock rail ready for PYUSD.Ethereum; Solana rail is a follow-on. · uniform-fiat, pyusd, onboarding, issuer-x-chain, same-asset-two-chains, chipnet, e2e, vetted-catalog, aggregate-covenant, adr-0053, scaling, cross-chain
- 0216-cross-chain-pyusd-ethereum-real-lock-integrated — PYUSD·Ethereum onboarded FOR REAL — a genuine PYUSD lock on Ethereum Sepolia (5.00 PYUSD into an EVM vault, real on-chain tx) backs 5.00 unified USD minted on chipnet via the aggregate covenant. locked == minted, independently verified both chains (Sepolia lock tx SUCCESS + vault holds 5 PYUSD; BCH Alice holds 5 USD). Cell graduates vetting → INTEGRATED (3rd validated USD rail). PYUSD·Solana stays vetting (no Solana rail yet). · uniform-fiat, pyusd, real-lock, sepolia, cross-chain, lock-and-mint, evm-vault, aggregate-covenant, integrated, correspondent, adr-0053, adr-0047, cross-chain
- 0217-cross-chain-solana-rail-pyusd-two-chains-real — Solana correspondent rail BUILT (services/correspondent/solana.mjs, Token-2022 aware, websocket-free) + PYUSD·Solana onboarded FOR REAL — a genuine PYUSD lock on Solana devnet (3 PYUSD into an operator vault, real Token-2022 tx finalized) backs 3 unified USD minted on chipnet. Verified both chains. PYUSD is now a TWO-CHAIN issuer with BOTH legs real & integrated (Ethereum 0216 + Solana 0217). USD basket: 4 integrated rails. · uniform-fiat, solana-rail, correspondent, token-2022, pyusd, real-lock, two-chains, devnet, aggregate-covenant, integrated, adr-0047, cross-chain
- 0219-cross-chain-pyusd-redeem-roundtrip-closed — REDEEM ROUND-TRIP CLOSED — the full Uniform USD circle proven with real coins on BOTH PYUSD chains in one run: real lock 2 PYUSD on Sepolia (EVM vault) + 2 on Solana devnet (Token-2022) → chipnet mint 4 unified USD into both cells → covenant pro-rata withdraw burns all 4 (FT back to controller, aggregate → 0) → REAL releases (Sepolia vault.release + Solana rail release) matched to the ledger's largest-first cell debits. 10/10 checks; every balance round-trips; independently re-verified on all three chains. · uniform-fiat, redeem, round-trip, withdraw, release, pyusd, sepolia, solana, correspondent, aggregate-covenant, chipnet, real-lock, adr-0053, cross-chain
- 0220-cross-chain-solana-first-class-correspondent-ledger — Solana wired into services/correspondent as a FIRST-CLASS ledger: config row PYUSD (Solana) + solana-adapter.mjs (vault = operator ATA, BCH recipient rides an SPL Memo in the lock tx, tx signature IS the lockId, Token-2022 aware) joining evm/tron behind the same server interface. bch.mjs mint operator hardened onto chipnet-safe + wallet D (off corrupted C). Validated by scripts/correspondent-e2e-solana.mjs 7/7 through the REAL service handlers: quote → memo-lock on devnet → confirm (finalization-gated, idempotent) → BCH mint → redeem quote → covenant burn → release on Solana; all txs re-verified independently. · uniform-fiat, correspondent, solana, adapter, memo, token-2022, deposit-rail, redeem, service, chipnet-safe, pyusd, devnet, cross-chain
- 0222-cross-chain-eurc-ethereum-first-real-eur-cell — EURC·Ethereum onboarded FOR REAL — the FIRST real EUR cell: a genuine Circle EURC lock on Sepolia (5 EURC, vault 0x5fE18BEa…, tx 0x17f8cc26…) backs 5.00 unified EUR minted on chipnet (cat e9aca38c…) via the aggregate covenant; 4/4 reconciled locked==minted, both legs independently re-verified. Uniform EUR is now real the same way Uniform USD is. Catalog: EURC.Ethereum candidate → integrated (EUR 1 integrated of 4). Basket-scaling audit: Base/Arbitrum/BSC/Fuji hold tokens (EURC·Base 20, USDC·Arbitrum 20) but ZERO gas ETH on the operator address — those graduations are gas-blocked, not code-blocked. · uniform-fiat, eurc, euro, sepolia, real-lock, integrated, basket-scaling, aggregate-covenant, chipnet, cross-chain, adr-0053
- 0223-cross-chain-service-aggregate-migration-and-burn-binding — The correspondent SERVICE now speaks the PRODUCTION aggregate covenant + burns are marker-bound. (1) Burn↔redeem BINDING: /redeem/quote issues an OP_RETURN marker DVRD: the burn tx must carry; /redeem/confirm verifies marker AND ledger drop — validated live on the Solana rail 8/8 incl. the negative (a rogue ticket pointing at the same burn REFUSED; one burn can never satisfy two redeems). (2) AGGREGATE MIGRATION: config rows carrying currency: route through new bch-aggregate.mjs onto UniformReserveAggregate (per-CURRENCY controller, 2-of-3 quorum, persisted off-chain cell ledger, largest-first burn debits); EURC (Ethereum) row validated end-to-end with real coins 7/7 — real EURC lock → unified EUR mint (cell credited) → marker-bound aggregate burn → real vault.release; on-chain aggregate == ledger throughout. Phase-1 rows unchanged. · uniform-fiat, correspondent, aggregate-covenant, migration, op-return, redeem-binding, marker, quorum, eurc, service, chipnet, sepolia, adr-0053, cross-chain
- 0224-cross-chain-aggregate-axis-caps — AGGREGATE-AXIS caps shipped (the gap flagged since 0214): UniformLedger now enforces per-ISSUER and per-CHAIN sum caps across cells (constraint §3 'cap on BOTH axes') — ten USDC cells can no longer quietly concentrate the basket in Circle or in Ethereum. Caps configured per currency in the catalog (issuerCapsUsd/chainCapsUsd, scaled by buildLedger), enforced in deposit AND fund alongside the per-cell cap; absent name = unbounded axis. Off-chain suites 41/41. · uniform-fiat, axis-caps, issuer-cap, chain-cap, ledger, registry, diversification, adr-0053, cross-chain
- 0225-cross-chain-live-oracle-feeds-market-priced-deposits — LIVE oracle price feeds shipped + the service's aggregate deposits are now MARKET-PRICED (constraint §4, the Gresham fix, from real markets): services/uniform-oracle/feeds.mjs medians CoinGecko+CoinPaprika+Coinbase (keyless, per-source failure isolation, sanity band, <2 sources ⇒ DEGRADED ⇒ par fallback DISCLOSED); /quote returns a live disclosure ('EURC is trading at €1.0000 — you will receive ≈ 2.00 EUR'), /confirm re-fetches and mints amount × median (discount stays in the vault as backing ⇒ reconcile now checks locked ≥ circulating + reports overCollateralizedBy). Validated: 8 injected-fetch unit tests (incl. the 0.87 Gresham case) + live E2E 8/8 on the EURC aggregate row (real 2-source median at both quote and confirm; controller + ledger PERSISTENCE across runs proven). Off-chain suites 49/49. Phase-1 rows stay par (their covenant can't express pricing — one more reason aggregate is production). · uniform-fiat, oracle, live-feeds, median, market-priced-deposit, gresham, coingecko, coinpaprika, coinbase, aggregate-covenant, disclosure, cross-chain, adr-0053
- 0226-cross-chain-deposit-band-and-withdrawal-policy — DEPOSIT BAND shipped (user decision) + withdrawal policy analyzed (report-16): deposits credit 1=1 within 3% of par (no punishment for jitter), MARKET value beyond it, premium capped at par — implemented in feeds.mjs creditedAmount (UNIFORM_DEPOSIT_BAND_BPS, default 300) + the M6b UI engine/disclosure; validated 9/9 unit + LIVE E2E 8/8 where EURC's real median €0.9995 correctly credited par-in-band. Withdrawal scenarios (Bob: 100 USDT @ 0.94) simulated in sim-uniform-withdraw-policy.mjs: value-compensated release (100 claims → 106.38 units) REJECTED — the only policy that shrinks the reservoir, creates a last-holder bag + a USDC→USDT drain arbitrage; RECOMMENDED = fixed 1:1 UNITS per rail (reservoir never shrinks, depegged-rail exits self-select and clean the basket) PLUS the timely band-triggered writedown+pro-rata (without it, healthy-rail exits dump the whole loss on the last holder). Withdrawal policy awaits user confirmation before an ADR. · uniform-fiat, deposit-band, withdrawal-policy, report-16, gresham, pro-rata, writedown, reservoir, simulation, feeds, cross-chain, adr-0051
- 0267-cross-chain-deposit-covenant-rename-and-dgb-rail — Two things: (a) new contracts/Deposit.cash — byte-identical rename of DeviantWrapMintIOU with exchange-style naming (mint→deposit; ticker stays 'DGB'/'USDT', no wrapped/IOU language user-facing per updated wrapped-asset-source-chain-marker rule); old covenant kept + marked superseded; 3/3 mock. (b) new services/correspondent/dgb.mjs — DGB mainnet correspondent rail (P2WPKH+P2PKH input signing, auto-detect; bonded-operator custody, same trust as EVM/Solana; no HTLC); scripts/onboard-dgb-mainnet-real.mjs dry-run-gated with --dgb-txid= mode for user-broadcast (DGB free APIs are thin: Trezor Blockbook retired, Blockchair dropped DGB, BlockCypher never had it — driver reads via digiexplorer.info/api/tx). Ready; waiting on user's small DGB deposit before broadcast. · cross-chain, deposit-covenant, rename, wrap-mint-iou, dgb, digibyte, correspondent, bonded-operator, mainnet, dry-run, dgb-api-gap, user-broadcast, deposit-not-iou
- 0268-cross-chain-dgb-deposit-live-mainnet-to-chipnet — DGB deposit LIVE end-to-end — 10 DGB locked on DigiByte mainnet (tx f334cd5293… block 24154002, vault dgb1q7p09cwq…) → 10 DGB credited to Alice as a CashToken on the Bitcoin Cash chipnet via the new contracts/Deposit.cash covenant (mint tx e21ceafcd8…, category 74b6e111446253bb…). Independently verified both chains: locked == credited. First native-coin (non-stablecoin) deposit; first live use of Deposit.cash and services/correspondent/dgb.mjs. · cross-chain, dgb, digibyte, deposit, live-mainnet, chipnet, deposit-covenant, native-coin, correspondent, first-real-run, cashtoken
- 0269-cross-chain-dgb-redeem-roundtrip-live — DGB REDEEM round-trip closed end-to-end, both chains verified. Alice surrendered 10 DGB CashToken on chipnet (return tx d67d9205…) → operator released 9.9995 DGB from the mainnet vault to her P2PKH (release tx 317e73d3… confirmed block 24154111); ~0.0005 DGB absorbed as network fee. Also: fixed real P2WPKH-signing bug in dgb.mjs (BIP143 scriptCode must be P2PKH-shape, not P2WPKH output), DGB min-relay is ~200 sat/vB (not 20), and honestly documented that vault DGB is bonded-operator-custodied (plain P2WPKH), NOT covenant-enforced by the BCH burn — same trust floor as evm/tron/solana rails. · cross-chain, dgb, digibyte, redeem, round-trip, live-mainnet, chipnet, deposit-covenant, bonded-operator-custody, security-truth, bip143, p2wpkh, min-relay-fee, dust
- 0270-atomic-swap-deposit-withdrawal-htlc-design — Design sketch — atomic-swap deposit/withdrawal for the cross-chain rails, using paired HTLCs. WithdrawalHTLC.cash (BCH side, burn-on-claim) sketched in full; DepositHTLC.cash sibling (BCH side, burn-on-refund) sketched in outline; mocked driver walks the choreography (Phases 1-5). Fixes the deposit-time and withdrawal-time trust window in the current bonded-operator rails (0267-0269). Honestly bounded: does NOT reduce accumulated custody trust in the DEX's source-chain address — that still needs MPC/multi-sig + slashable-bond scaffolding. Design-only, not committed to any live rail. · cross-chain, atomic-swap, htlc, design, deposit, withdrawal, covenant, sketch, mpc, trust-model, deposit-covenant
- 0271-cross-chain-atomic-swap-primary-rail-decision — Design decision — the DGB rail commits to ATOMIC-SWAP-PRIMARY. Two alternatives fully explored and killed: (a) self-custodial Taproot vault with owner-fallback creates a cross-chain double-spend rug-pull because Alice can sell CashToken to Bob then recover DGB via fallback leaf; (b) any pool-with-cosign design that hopes to gate the DGB spend on a BCH burn is impossible on DGB Script alone — DGB is completely detached from BCH and doesn't care if CashToken burned. Atomic swap sidesteps both because it never asks DGB to know about BCH — the cryptographic linkage is a shared preimage that unlocks both sides. Snapshot 0270's three covenants (WithdrawalHTLC, DepositHTLC, Deposit.burn) are the BCH-side foundation and need no changes; the remaining lift is DGB-side HTLC primitives + a swap driver + a matching layer (Anthemus) + MM float bootstrap. · cross-chain, atomic-swap, dgb, design-decision, deposit, withdrawal, htlc, non-custodial, trust-model, deposit-covenant, anthemus, digibyte
Games / Tote / AnyHedge / Pari-mutuel (14)
- 0039-game-pool-escrow — GamePoolEscrow — 2-party pari-mutuel prize pool (MBA), with arbiter fee · mba, pari, escrow
- 0040-escrow-flat-fee-and-irregular — arbiter-fee on irregular pots + GamePoolEscrowFlat (max($0.01, 1%)) · escrow
- 0044-event-prediction-and-tote-design — event-prediction & pari-mutuel tote — design + ADR (no code) · tote, pari, prediction
- 0046-parimutuel-tote-4party-chipnet — 4-party pari-mutuel tote — chipnet-validated · tote, pari
- 0047-open-entry-tote-nft-free-chipnet — open-entry NFT-free pari-mutuel tote (Tier 1) — chipnet-validated · tote, pari
- 0048-tier2-open-tote-chipnet — Tier-2 open-entry, covenant-enforced pari-mutuel tote — chipnet-validated · covenant, tote, pari
- 0051-tote-operator-rake-chipnet — Tier-2 open tote with operator rake (ADR-0017) — chipnet-validated · tote
- 0052-rake-folded-into-canonical-totes — operator rake folded into the canonical tote templates + D-1 · tote
- 0054-k2-multioutcome-approach1-inline — K>2 multi-outcome tote — approach #1 (fixed K, inline totals), chipnet-validated · tote
- 0097-turn1-anyhedge-chipnet-validated — Turn 1 — AnyHedge v0.12 hedge-leg settlement validated on live chipnet · anyhedge
- 0098-turn1-5-anyhedge-liquidation-plus-turn2-prep — Turn 1.5 — AnyHedge liquidation-path chipnet-validated; Turn 2 prep (8 Paryon artifacts compiled) · paryon, anyhedge
- 0176-football-tote-real-wc2026-fixture-bet-an — football tote — real WC2026 fixture bet and settled live on chipnet; deployable platform · tote, football
- 0180-standalone-tote-platform-multi-market-cr — standalone Tote platform — multi-market, create/bet/embed, live on chipnet; football launch category · tote, football
- 0226-games-tote-gmx-checkers-full-loop-chipnet — GMX as a game's stake currency — the FULL loop proven live on chipnet: oracle-signed tiered mints (both fee tiers), buy-in into GamePoolEscrowFlat via BOTH paths (Case B atomic mint-into-escrow for a BCH-only player + plain FT send for a GMX holder, async shared-pot Mode 1), a REAL engine-driven checkers match deciding the winner, arbiter resolveArbiter paying 49 GMX to the winner + 1 GMX flat fee, and winner cash-out GMX→BCH by plain P2PKH. 7/7 txs accepted; currency and escrow stayed fully decoupled. · gmx, game-currency, checkers, game-loop, case-b-mint-into-escrow, game-pool-escrow-flat, async-shared-pot, tiered-mint-fee, adr-0052, chipnet-validated, redeem-p2pkh, decoupled-currency
Governance (Athenae Politeia) (25)
- 0105-pollcovenant-binary-on-chain-voting-one- — PollCovenant binary on-chain voting (one-person-one-vote, permissionless expire) chipnet-validated · voting, vote
- 0106-voting-composition-trilogy-poll-as-oracl — Voting composition trilogy: poll-as-oracle + tally-as-oracle + stake-weighted-vote chipnet-validated · oracle, voting, vote
- 0107-voting-systems-wiki-doc-adr-0040-three-p — Voting-systems wiki doc + ADR-0040 (three primitives, three trust profiles, hashwar lesson) · voting
- 0108-bicameral-sortition-adaptive-bootstrap-e — Bicameral sortition + adaptive bootstrap + Elder/founder tiers: voting-systems.md §6 + ADR-0040 addendum (mechanism-complete design) · voting, sortition, elder
- 0110-voting-systems-7-historical-lineage-sort — voting-systems §7 — historical lineage (sortition+bicameralism+bidirectional accountability), 10-system comparison table, 4 capture-scenario simulations, maturity-curve analysis · voting, sortition
- 0111-voting-systems-6-2-three-stage-gating-6- — voting-systems §6.2 three-stage gating + §6.7.1 founder-capture mitigation stack · voting
- 0112-voting-systems-6-7-1-remove-dead-man-add — voting-systems §6.7.1: remove dead-man, add elevated founder/Elder demotion (strict mode + Elder supermajority) · voting, elder
- 0113-voting-systems-bootstrap-playbook-concre — voting-systems bootstrap playbook + concrete 15-phase schedule + Phase 0/Elder-emergence rules · voting, elder
- 0114-phase-a-citizentoken-applicationcovenant — Phase A: CitizenToken + ApplicationCovenant chipnet-validated (per-rank token + single-chamber voting + admission flow) + 3/3 Elder unanimous + Knowledgebase HTML · voting, elder
- 0115-voting-systems-addenda-4-5-6-removal-bon — voting-systems addenda 4+5+6: removal-bond economics + per-vote participation fee + three-layer vote-integrity framing; treasury-routing supersedes burn · voting, vote
- 0116-phase-b-chipnet-validated-registrystate- — Phase B chipnet-validated: RegistryState (adaptive threshold) + bicameral ApplicationCovenantB (Citizen + Delegated chambers) · citizen
- 0117-phase-c-chipnet-validated-applicationcov — Phase C chipnet-validated: ApplicationCovenantC with attempt cap + no-cascade fail-fast + anyone-callable fail()
- 0118-phase-d-chipnet-validated-applicationcov — Phase D chipnet-validated: ApplicationCovenantD with embedded fee escrow + 40/60 paid-regardless-of-vote (§6.5 anti-bribery) · escrow, vote
- 0119-phase-e-chipnet-validated-ballotcovenant — Phase E chipnet-validated: BallotCovenant + ApplicationCovenantE (commit-reveal secret ballot) + §6.1.5 no-KYC social-proof clarification · ballot
- 0120-voting-systems-6-1-5-sharpening-diminish — voting-systems §6.1.5 sharpening (diminishing-bribe-value, off-chain pre-gate rationale) + §0.1 active-resistance anchor tying voting design to Deviant opening · voting
- 0121-feasibility-nft-bound-x10-escalating-pri — feasibility NFT-bound x10 escalating price covenant chipnet proven · covenant
- 0123-anti-plutocracy-voting-asset-escalating- — anti-plutocracy voting asset escalating fee fixed-redeemable-backing chipnet proven · voting
- 0124-correction-pre-gate-is-on-chain-endorsem — Correction: pre-gate is ON-CHAIN — EndorsementCovenant.cash chipnet-validated; §6.1.5 + Knowledgebase HTML revised; off-chain rationale dropped
- 0125-dual-ladder-rate-x10-plus-fee-pct-x10-nf — dual-ladder rate x10 plus fee-pct x10 NFT-bound chipnet proven
- 0126-corrected-vote-dual-ladder-fixed-100k-re — corrected vote dual-ladder fixed 100k redeemable plus escalating fee chipnet proven · vote
- 0127-phase-f-chipnet-validated-elder-tier-ran — Phase F chipnet-validated: Elder tier (rank 0x03) + ElderFreezeAction (Layer-4 mitigation) + ComplaintCovenant (rising-cost ramp); cross-reference EscalatingVoteNFT in voting-systems.md §0.1 + §5.4 · voting, elder
- 0131-step-plutocrat-cost-ladder-super-exponen — step plutocrat cost ladder + super-exponential (r*3.14)^3 DRA · dra, plutocrat
- 0132-modest-2-votes-per-step-arithmetic-vote- — modest +2-votes-per-step arithmetic vote DRA (reuses BondingCurveFT) · dra, vote
- 0133-sortitionbeacon-commit-reveal-randomness — SortitionBeacon commit-reveal randomness (hybrid-E) proven on chipnet
- 0134-athenae-lifecycle-simulation-one-communi — Athenae lifecycle simulation — one community + multi-community coexistence/isolation · athenae
On-ramp / fiat rails (4)
- 0080-on-ramp-providers-adr-0036 — on-ramp providers ADR-0036 · on-ramp
- 0085-onramp-module-implementation — onramp module implementation · onramp
- 0092-onramp-api-verify-jurisdiction-discover- — onramp api-verify jurisdiction discover-ui · onramp, verify
- 0122-combined-x10-price-plus-share-ramp-escal — combined x10 price plus share-ramp escalating NFT chipnet proven
Infra / build / deploy / tooling (24)
- 0001-init — bootstrap
- 0003-regtest-harness — regtest harness landed
- 0004-spec-arrival — technical specification landed
- 0006-deps-pinned — dependencies pinned for CashTokens, Q2 + Q5 answered
- 0010-terminology-refresh — terminology refresh + clarifications
- 0018-phase2-token-registry — Phase 2 first slice — token registry + UTXO classifier · registry
- 0019-central-registry — central token registry — server + sync client · registry
- 0022-d1-d2-d3-production — D-1, D-2, D-3 production module + 10 BCH rate tier
- 0022-verify-module-d1-d2-d3 — production verify module — D-1, D-2, D-3 shipped · verify
- 0023-mutability-test-empirical — post-deployment mutability — empirical test
- 0029-chipnet-scripts-on-library — chipnet scripts delegate to the wallet library · wallet
- 0030-sqlite-registry — SQLite-backed TokenRegistry · registry
- 0031-verify-discover — chain-side bytecode discovery (D-1+) · verify
- 0033-live-chipnet-smoke-test — live chipnet smoke test — the library broadcasts
- 0042-noble-crypto-shim-libauth-wasm-replaced- — noble crypto shim — libauth WASM replaced for cross-shell core
- 0052-canonical-artifacts-embedded-json — D-3 canonical artifacts embedded as JSON imports (browser blocker removed)
- 0109-beta-deployed-live-testchipnet — Beta deployed live: testchipnet.duckdns.org · beta
- 0135-double-spend-empirically-tested-on-chipn — double-spend empirically tested on chipnet — first-seen + race both reject; reorg gated by hashpower economics
- 0195-infra-docs-by-domain-reorg — docs-by-domain reorg — snapshot frontmatter + generated Quick-find index; wiki foldered into domain branches with a router · docs, reorg, snapshots, wiki, index, registry
- 0218-infra-chipnet-stale-utxo-rootcause-fix — Root-caused + fixed the chipnet wallet-'stuck' bug ('Missing inputs' on broadcast). CAUSE: chipnet electrum servers return a STALE UTXO index — they list already-SPENT outpoints as unspent (measured: cashscript provider 94 vs mainnet-js 81, 14 phantom spent-change outputs); a driver building from that view includes a spent input → node rejects. FIX: scripts/lib/chipnet-safe.mjs (source wallet UTXOs from mainnet-js, prefer confirmed, accept fresh 0-conf, retry on stale-reject). Validated: fixed driver mints first-try on a healthy wallet. LIMIT: a wallet already corrupted by a stale index can't be recovered client-side — needs reindex/rotation + reliable endpoint (release recommendation). · infra, chipnet, electrum, stale-utxo, missing-inputs, root-cause, wallet-hygiene, chipnet-safe, correspondent, release-readiness, bugfix
- 0245-infra-deviantx-website-live — deviant.x now serves the static landing page (Parameters/webfiles/deviant_website.html) via Sia — repointed from p→testchipnet.duckdns.org to s3→bns/deviant.x/ in UPD tx c0914f24…; wallet CTAs on the page swapped to https://deviant.navigate.st (still needs an nginx vhost + DNS). · infra, hosting, bns, deviant-x, sia, silentmode, navigate.st, deploy, landing
- 0246-infra-deviantx-silentmode-primary-plus-navigate-st-vhost — Three deploys: (1) https://deviant.navigate.st live on Checkers VPS 130.12.242.84 (nginx vhost + LetsEncrypt via webroot, ICANN mirror of the wallet — same docroot as testchipnet.duckdns.org); (2) landing page mirrored to SilentMode VPS 195.184.247.106 at https://navigate.st/deviant/ (new nginx location on the navigate-st site, alias /opt/silent-mode/site/deviant/); (3) deviant.x BNS record updated to {p: https://navigate.st/deviant/, s3: bns/deviant.x/} in UPD tx f7c030d4… — SilentMode is now the intended primary via p, Sia stays as s3 fallback. Discovered: navigate.st gateway prefers s3 over p (content-length delta 38678 via /bns/ vs 38649 direct), so the gateway route still serves Sia; direct BNS clients may pick p per their own precedence. Options to force SilentMode primary across the gateway captured in follow-ups. Plus: brand/ SVGs now @import the site's own fonts (Fraunces + DM Sans + JetBrains Mono), 4 new social sizes (twitter card 1200×675, twitter header 1500×500, FB cover, LinkedIn banner, IG square), retired the wrong twitter card 1200×600. Deploy script bugs fixed for greenfield re-runs. · infra, hosting, bns, deviant-x, navigate.st, silentmode, sia, letsencrypt, nginx, brand, social, deploy
- 0247-infra-anthemus-subpath-plus-dex-tld — Anthemus now has a first-party landing at https://deviant.x/anthemus (self-hosted on SilentMode + Sia, links from the deviant.x main nav + pathways). Registered anthemus.dex BNS name (tx 3867797854d67a6dda6876bc4c4a8f2826f9175bf094f2fa3eb32d2c35cbe481, cat 0a70e739…) with records {p: https://navigate.st/deviant/anthemus/, s3: bns/deviant.x/anthemus/} — same content, three URLs (deviant.x/anthemus, anthemus.dex, anthemus.bch left in place as the mockup home). Plus: refreshed 'tests passing' metric on the landing 445 → 564 based on this session's npm test (564 pass, 0 fail). New deployment source-of-truth at site/deviant/; Parameters/webfiles/deviant_website.html is now frozen archive. · infra, hosting, bns, deviant-x, anthemus, anthemus.dex, silentmode, sia, landing, dex
- 0282-infra-chipnet-wallets-consolidated-to-h-ft-redeem — All chipnet FT holdings (MBA + non-state NBA) redeemed to BCH across A-H + gmx; everything consolidated to wallet H. 9 txs, 51 covenant-state NFTs preserved. · chipnet, wallet-h, consolidation, ft-redeem, mba-redeem, nba-burn