You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix copy voice: replace "we/our" with "TxFix" throughout
Rewrite readme to match V1 implementation, use "I" for personal
opinion/direction and "TxFix" or "this tool" for the product. Updated
roadmap checkboxes, tech stack, pricing, and removed stale references
(Alby NWC, Vercel, Framer Motion). Fixed PsbtDelivery and plan.md.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: plan.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ The entire app is client-side JavaScript. There are zero server dependencies:
14
14
-**Build output**: `next build` with `output: 'export'` produces a plain `out/` folder of HTML/JS/CSS
15
15
-**No API routes, no SSR, no middleware** — just static files served by GitHub Pages
16
16
17
-
The only technical consideration is **browser polyfills for bitcoinjs-lib** (it uses Node.js `Buffer`). We handle this with explicit imports (`import { Buffer } from 'buffer'`) rather than webpack global polyfills, ensuring compatibility with both Turbopack (dev) and webpack (build).
17
+
The only technical consideration is **browser polyfills for bitcoinjs-lib** (it uses Node.js `Buffer`). TxFix handles this with explicit imports (`import { Buffer } from 'buffer'`) rather than webpack global polyfills, ensuring compatibility with both Turbopack (dev) and webpack (build).
18
18
19
19
---
20
20
@@ -31,7 +31,7 @@ User pastes TXID → Client fetches from mempool.space + Esplora APIs
31
31
→ User signs in own wallet → Broadcast → Live tracker → Rescue receipt
32
32
```
33
33
34
-
**No keys ever touch our code.** PSBTs are unsigned templates the user signs in their own wallet.
34
+
**No keys ever touch TxFix.** PSBTs are unsigned templates the user signs in their own wallet.
35
35
36
36
---
37
37
@@ -148,7 +148,7 @@ public/
148
148
> Config, theme, layout, network infrastructure
149
149
150
150
**Modify:**
151
-
-`next.config.ts` — Add `output: 'export'`, `trailingSlash: true`, `images: { unoptimized: true }`. **No webpack polyfills needed** — we use explicit `buffer` imports instead of global polyfills, which works with both Turbopack (dev) and webpack (build).
151
+
-`next.config.ts` — Add `output: 'export'`, `trailingSlash: true`, `images: { unoptimized: true }`. **No webpack polyfills needed** — TxFix uses explicit `buffer` imports instead of global polyfills, which works with both Turbopack (dev) and webpack (build).
Note: No `crypto-browserify` or `stream-browserify` needed — bitcoinjs-lib v7 with `@bitcoinerlab/secp256k1` handles crypto internally, and we use explicit `Buffer` imports instead of webpack shims.
174
+
Note: No `crypto-browserify` or `stream-browserify` needed — bitcoinjs-lib v7 with `@bitcoinerlab/secp256k1` handles crypto internally, and TxFix uses explicit `Buffer` imports instead of webpack shims.
175
175
176
176
**Verify:**`pnpm build` produces `out/` directory successfully. Dev server shows dark themed page with header + network selector.
177
177
@@ -454,7 +454,7 @@ Driven by `useDiagnosis` phase + local UI state. `useUrlState` syncs TXID and ne
-We keep same inputs, same outputs, only reduce change output value
457
+
-TxFix keeps same inputs, same outputs, only reduces change output value
458
458
- Change output identification: heuristic (match input address type → non-round amount → last output)
459
459
- If change too small after fee increase → error, suggest CPFP instead
460
460
- Full-RBF era (Bitcoin Core 28+): replacement works even without explicit RBF signal in most cases
@@ -469,7 +469,7 @@ Driven by `useDiagnosis` phase + local UI state. `useUrlState` syncs TXID and ne
469
469
470
470
### Browser Polyfill Strategy (No Webpack Hacks)
471
471
472
-
bitcoinjs-lib needs Node.js `Buffer` in the browser. Instead of fragile webpack `resolve.fallback` polyfills (which break with Turbopack in dev), we use**explicit imports**:
472
+
bitcoinjs-lib needs Node.js `Buffer` in the browser. Instead of fragile webpack `resolve.fallback` polyfills (which break with Turbopack in dev), TxFix uses**explicit imports**:
473
473
474
474
```ts
475
475
// src/lib/bitcoin/polyfills.ts — imported once before any bitcoinjs-lib usage
Free Bitcoin transaction diagnosis. 30-second rescue. Free and Open Source. No keys required.
5
+
Free Bitcoin transaction diagnosis. 30-second rescue. No keys required.
6
6
7
7
---
8
8
9
-
TxFix is the first diagnostic-first rescue tool for stuck Bitcoin transactions. Every other tool — accelerators, rebroadcasters, wallet bump buttons — assumes you already know what's wrong and jumps straight to the most expensive fix. txfix tells you what's actually happening, for free, then walks you to the cheapest resolution in 3 clicks.
9
+
TxFix is the first diagnostic-first rescue tool for stuck Bitcoin transactions. Every other tool — accelerators, rebroadcasters, wallet bump buttons — assumes you already know what's wrong and jumps straight to the most expensive fix. TxFix tells you what's actually happening, for free, then walks you to the cheapest resolution in 3 clicks.
10
10
11
11
Paste a TXID. Get a diagnosis in 3 seconds. Fix it in 30.
12
12
@@ -22,8 +22,6 @@ When a Bitcoin transaction gets stuck, the user experience is broken:
22
22
23
23
The entire existing toolkit — mempool.space Accelerator, ViaBTC, BitAccelerate, wallet-integrated bump buttons — skips the most important step: **diagnosis**. Nobody checks whether a simple $0.50 RBF bump would work before charging $40 for an out-of-band miner bribe.
24
24
25
-
Samourai's Afterburner was the closest thing to a standalone rescue tool, and it's dead (founders arrested April 2024, convicted November 2025).
26
-
27
25
The diagnostic layer doesn't exist. Until now.
28
26
29
27
## How It Works
@@ -32,7 +30,7 @@ The diagnostic layer doesn't exist. Until now.
32
30
33
31
One input field. Center screen. Nothing else. No signup, no wallet connect, no noise.
34
32
35
-
### 2. Watch the diagnosis (2–3 seconds)
33
+
### 2. Watch the diagnosis (2-3 seconds)
36
34
37
35
An animated diagnostic sequence fires in real-time:
38
36
@@ -48,11 +46,11 @@ An animated diagnostic sequence fires in real-time:
48
46
49
47
### 3. Get the verdict
50
48
51
-
A crystal-clear recommendation card tells you exactly what's happening and what to do:
49
+
A clear recommendation card tells you exactly what's happening and what to do:
Sometimes the verdict is: **"Relax. Your tx will confirm in ~45 minutes. Do nothing."**This tool belong to the users, it must stay honest.
65
+
Sometimes the verdict is: **"Relax. Your tx will confirm in ~45 minutes. Do nothing."**I built this tool to be honest, not to upsell.
68
66
69
67
### 4. Fix it
70
68
71
-
Click "Fix it" → txfix constructs the exact replacement transaction → presents it as a PSBT (QR code for hardware wallets, raw hex for Sparrow/Electrum). You sign in your own wallet. **We never touch your keys.** After broadcast, a live tracker shows confirmation in real-time.
69
+
Click "Fix it" → TxFix constructs the exact replacement transaction → presents it as a PSBT (QR code for hardware wallets, .psbt file for Sparrow/Electrum, raw hex for everything else). You sign in your own wallet. **TxFix never touches your keys.** After broadcast, a live tracker shows confirmation in real-time.
72
70
73
71
### 5. Share
74
72
75
-
After confirmation, get a shareable rescue receipt: what went wrong, what was done, how much it cost vs. how much an accelerator would have charged.
73
+
After confirmation, you get a shareable rescue receipt: what went wrong, what was done, how much it cost vs. how much an accelerator would have charged.
76
74
77
-
> *"Rescued by txfix — saved $37.30 vs. mempool.space Accelerator."*
75
+
> *"Rescued by TxFix — saved $37.30 vs. mempool.space Accelerator."*
# Optional — NWC connection for Lightning payments
197
-
NEXT_PUBLIC_NWC_RELAY=wss://relay.getalby.com/v1
198
-
```
199
-
200
182
### Build
201
183
202
184
```bash
203
185
pnpm build
204
-
pnpm start
205
186
```
206
187
188
+
Static output goes to `out/`. Serve it with any static file server.
189
+
207
190
## Pricing
208
191
192
+
I intend to keep the diagnosis permanently free. V1 is completely free — no payment gating at all. Future versions may charge a small Lightning fee for PSBT generation to sustain the service, but if you run TxFix locally, everything is free forever. It's FOSS.
193
+
209
194
| Tier | What you get | Cost |
210
195
|------|-------------|------|
211
-
|**Tecky: you run it locally**| Everything, free, forever | $0 |
212
-
|**Free forever**| Full diagnosis + recommendation. See exactly what's wrong and what to do. | $0 |
213
-
|**Rescue**| Auto-generated PSBT for RBF or CPFP. One-click fix. | 2,000-10,000 sats per rescue |
214
-
|**Copilot***(V2)*| Watchlist, send time advisor, fee alerts, pre-flight checks. |~$5/mo via Lightning |
215
-
216
-
The diagnosis is always free in [txfit.it](https://txfit.it), paid services are intended to sustain the service. If you go for the soverign route you can run this whole FOSS tool locally.
196
+
|**Run it yourself**| Everything, forever | $0 |
197
+
|**Free tier**| Full diagnosis + recommendation | $0 |
198
+
|**Rescue***(future)*| Auto-generated PSBT for RBF or CPFP | Small Lightning fee |
217
199
218
200
## Why Open Source
219
201
220
202
Bitcoin is a trust-minimized system. A transaction rescue tool should be too.
221
203
222
-
-**Verify the code** — You can read exactly what txfix does with your TXID. No hidden tracking, no data harvesting, no wallet fingerprinting.
204
+
-**Verify the code** — You can read exactly what TxFix does with your TXID. No hidden tracking, no data harvesting, no wallet fingerprinting.
223
205
-**Self-host** — Run it on your own infrastructure, connect to your own mempool.space instance, keep everything private.
224
-
-**Contribute** — Found an edge case? Better fee estimation logic? Submit a PR, everyone benefits.
206
+
-**Contribute** — Found an edge case? Better fee estimation logic? Submit a PR.
225
207
-**Fork it** — Build something better. I'd love that.
226
208
227
-
The PSBT generation is fully client-side. Your keys never leave your device. There is nothing to trust.
209
+
PSBT generation is fully client-side. Your keys never leave your device. There is nothing to trust.
0 commit comments