deviant/snapshots/INDEX.md
Local Dev cdf197e751 docs(snapshots): 0282 chipnet A-H full FT redeem + consolidation to H
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>
2026-10-23 21:26:44 +03:00

217 KiB
Raw Blame History

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> (plus summary: and optional tags:) 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.25 API · 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, 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. · 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 !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. · 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: buildTakeTx end-to-end (ExchangePanel market button → covenant take()) · 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 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 · 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/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. · 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)

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)

Governance (Athenae Politeia) (25)

On-ramp / fiat rails (4)

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