Home

Final verdict

14 Sep 2026. Independent Grok pass of elldeeone/kaspa-x402 v1.0.0-rc.1 (040b1ec), then retest of merged 216ad77. Windows, Node 24. Not Kaspa core. Not an audit. Not a v1 rubber stamp.

This desk’s tree: https://github.com/STP-KAS/kaspa-x402

Fork of Luke’s binding. Issue #11 / PR #12 merged as 216ad77. Luke tightened disk-sync (file fsync stays fail-closed; directory sync skipped on Windows) and added a windows-latest CI job. This machine retested merged main: npm test green, proof:offline 24/24.

kaspa-x402 is a real x402 v2 binding for native KAS. Bind this envelope. Do not invent a fourth. It is not v1, not mainnet, not in the upstream x402 registry, not a registered CAIP namespace.

Ishum is a coffee till, not x402. Zero PAYMENT-* headers. Quotes EUR/USD. Settles native KAS. Do not weld the names. Combo till: Till tab — original :8090/pos vs battle-tested KAS-only keypad.

Both problems — solved this pass

#BreakStatus
1 Windows npm test: .sil CRLF vs launch-identity SHA-256 pinned to LF (ab88ec5d… vs 065dff5d…) Reproduced. Merged. Retested on 216ad77: .sil is LF under core.autocrlf=true. Covenant 27/27.
2 Unix 0o600 (384 vs 438) and proof:offline fsync EPERM after 22/22 protocol checks Reproduced. Merged. Luke’s narrower patch is the one that landed: skip directory fsync on win32, keep file fsync fail-closed. npm test green. proof:offline 24/24 ok: true.

Issue: elldeeone/kaspa-x402#11 · PR: #12 (merged) · Fork: STP-KAS/kaspa-x402 · Long form: STP-KAS/grok-heavy-test

What landed: *.sil text eol=lf (enough — no CRLF hash canonicalization), skip Unix modes on win32, skip directory fsync on Windows, file fsync still fail-closed, windows-latest CI job. Swallowing file fsync EPERM was too broad; Luke was right to reject that.

What we ran

git clone --branch v1.0.0-rc.1 https://github.com/elldeeone/kaspa-x402.git
npm ci
npm --workspace @kaspa-x402/covenant test   # FAIL: ab88ec5d vs 065dff5d
# apply patch
npm --workspace @kaspa-x402/covenant test   # 27 pass
npm run build && npm test                   # green
npm run proof:offline                       # 24/24 ok: true

# after merge 216ad77 — fresh clone of main, core.autocrlf=true
git clone https://github.com/elldeeone/kaspa-x402.git
# .sil: 0 CRLF / 151 LF
npm ci && npm test                          # green
npm run proof:offline                       # 24/24 ok: true
ProbeResult
demo.kaspa-x402.org/healthok, 1.0.0-rc.1, testnet hosted exact on
/supportedx402Version: 2, exact + batch, kaspa:testnet-10 only, asset KAS
TN10 tx b46de1e1…is_accepted: true

Did not run a funded live harness. Did not pay the Worker.

Steps to take

Luke

  1. Read this page. Long form: 00-for-luke.md.
  2. Done: issue #11 / PR #12 merged as 216ad77. Windows CI is in-tree. Real Windows retest passed.
  3. Align pragma silverscript ^0.1.0 with the v1.0.0 3ed9733 compile.
  4. Do not drop the rc until the gates in docs/mainnet-readiness.md close. Do not take “Kaspa is in x402” until upstream lists you or rejects you in writing.

This desk

  1. Bind this envelope on TN10. One URL → 402 → pay → 200 + txid. No fourth dialect. No kUSD as this asset.
  2. Keep Ishum a till. Default kUSD/USDT off.
  3. Keep the master-file pin on v1.0.0-rc.1, TN10 only, mainnet blocked.
  4. Steal k402’s lock if a channel is needed. Credit Kali. Never “adopted KCC-0402.”

Anyone else

HTTP 402 ≠ x402. Native KAS ≠ USDC. accepted ≠ irreversible. A till that quotes EUR is allowed. Calling it x402 is not.

What to do next

WhenDo
TodayWindows clone-and-test is closed. Point Luke at this page + merged #12.
This weekBind exact standard-native on TN10. Do not pre-sign batch ceiling T beyond delivered work.
Before any “v1” sentenceIndependent covenant + replay audit. Fresh funded TN10 run and a paid Worker canary. Durable store. Confirmation policy written down.
Before mainnet KASEvery gate in mainnet-readiness.md. CAIP namespaces#193 merged or every public sentence says unregistered.
NeverallowMainnet: true early. Foreign readInputState / State[].split(). USDC/USDT/“kaspa dollar” as this asset. A fourth 402 envelope.

STP-KAS/kaspa-x402

Include this repo: https://github.com/STP-KAS/kaspa-x402

URLgithub.com/STP-KAS/kaspa-x402
Upstreamelldeeone/kaspa-x402 tag v1.0.0-rc.1
Patch branchwindows-clone-and-test (merged upstream)
PR into Lukeelldeeone/kaspa-x402#12216ad77
Clonegit clone https://github.com/elldeeone/kaspa-x402.git (merged main)
Schemesexact / kaspa-exact-v2; batch-settlement / kaspa-escrow-v3 + kaspa-x402-escrow-v4
Asset / networkKAS only. kaspa:testnet-10 only. Not mainnet.

What held / what is not v1

Held: x402 v2 headers; native KAS; claim successor locks value; no readInputState / State[].split(); exact replay 409; facilitator optional; mainnet gates written down.

Not v1: CAIP #193 open; not in upstream SDKs; spec still draft; batch claim/refund race; replay lives in the store; one RPC; accepted is not irreversible; 500 sompi vouchers lock ~10M sompi-class capital; compute budget guessed.

STP-KAS repositories

Live list from github.com/STP-KAS. This desk’s x402 row is kaspa-x402. The report to send is grok-heavy-test.

Links

This pagehttps://sixpack.wtf/
This desk’s kaspa-x402STP-KAS/kaspa-x402
Till (Ishum)STP-KAS/ishum · till tab · :8090/pos
Report (send this GitHub)STP-KAS/grok-heavy-test
For Lukedocs/00-for-luke.md
Final verdict mdFINAL-VERDICT.md
Windows issue / PR#11 closed · #12 merged 216ad77
Subject / forkelldeeone/kaspa-x402 · STP-KAS/kaspa-x402
Luke’s askx.com/elldeeone