TurboTX Public API
Integrate Bitcoin transaction acceleration into any app. Real-time mempool data, smart fee analysis, and instant broadcasting to ~88% of network hashrate.
ttx_live_…). TX submission, batch broadcast, tiered rate limits./api/health = /api/v1?method=health — use Router unless you need TX submission or higher rate limits.curl "https://acelerat.vercel.app/api/price"
const res = await fetch('https://acelerat.vercel.app/api/status?txid=YOUR_TXID'); const d = await res.json(); console.log(d.status); // 'mempool' | 'confirmed' console.log(d.feeRate); // e.g. 12 sat/vB console.log(d.accelerationAdvice); // { action, urgency }
const res = await fetch('https://acelerat.vercel.app/api/v1?method=accelerate', { method: 'POST', headers: { 'Authorization': 'Bearer ttx_live_YOUR_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ txid: 'YOUR_64_HEX_TXID', plan: 'premium' }) }); const d = await res.json(); console.log(d.summary.hashrateReach); // 88 (percent)
Contact @Sup_TurboTX on Telegram. Keys look like ttx_live_…
api/router.js. No API key required.Price dynamically calculated from fee rate + mempool queue. Updates every minute.
{
"ok": true, "usd": 5, "btc": 0.000059, "sats": 5900,
"btcPrice": 84200, "feeRate": 8, "congestion": "medium",
"emoji": "🟡", "text": "Умеренная нагрузка", "textEn": "Moderate load",
"confLabel": "10–20 мин ⚡", "heartLevel": "mid",
"mempoolCongestion": { "level": "low", "txCount": 24965, "textEn": "Mempool normal" },
"bestTime": { "quality": "good", "tip": "✅ Good time for a transaction" }
}{
"ok": true,
"fees": { "fastest": 45, "halfHour": 30, "hour": 20, "economy": 8 },
"mempool": { "count": 28400, "vsizeMB": 28.4 },
"congestion": "medium", "congestionText": "Умеренная нагрузка",
"history24h": { "min": 8, "max": 62, "avg": 24 },
"timestamp": 1710000000000
}| Param | Type | Required | Description |
|---|---|---|---|
| txid | string | required | 64-char hex transaction ID |
{
"ok": true, "status": "mempool",
"confirmed": false, "feeRate": 12,
"needsBoost": true, "rbfEnabled": false,
"isStuck": false, "stuckHours": 3,
"accelerationAdvice": { "action": "cpfp_or_boost", "urgency": "high" }
}CPFP vs RBF vs TurboTX cost comparison, time forecast, miner detection, cheap-window, rescue plan for stuck TXs (24h+).
| Param | Type | Required | Description |
|---|---|---|---|
| txid | string | required | Parent transaction ID |
| target | string | optional | eco|std|fast. Default: fast |
Check BIP-125 availability and calculate minimum replacement fee. Compares RBF vs CPFP cost automatically.
Authorization: Bearer ttx_live_…{
"ok": true, "message": "pong", "apiVersion": "v1",
"keyInfo": { "tier": "pro", "name": "YourApp" },
"rateLimit": { "perMin": 500, "perDay": 50000 },
"remaining": { "perMin": 499, "perDay": 49999 }
}| Param | Type | Required | Description |
|---|---|---|---|
| txid | string | required | 64-char transaction ID |
| plan | string | optional | "free" or "premium". Pro/Partner auto-upgrade. |
| webhookUrl | string | optional | POST callback when acceleration starts |
{
"ok": true,
"results": [
{ "name": "mempool.space", "ok": true, "ms": 142, "tier": "node" },
{ "name": "AntPool", "ok": true, "ms": 380, "tier": "pool" }
],
"summary": { "ok": 28, "total": 30, "hashrateReach": 88, "ms": 4200 },
"waveStrategy": { "waves": 10, "label": "aggressive" },
"jobId": "a1b2c3d4_1710000000000"
}| Param | Type | Required | Description |
|---|---|---|---|
| txids | string[] | required | Array of 64-hex TXIDs, max 20 |
{ "txids": ["a1b2c3...64hex", "d4e5f6...64hex"] }Create, list, revoke API keys. Requires X-Admin-Token header.
POST /api/v1?method=keys
X-Admin-Token: your_admin_secret
{ "action": "create", "tier": "basic", "name": "MyApp" }Called every minute by cron-job.org. Reads active wave jobs from Firebase, fires due waves via /api/repeat. Fires even when user's browser is closed.
https://acelerat.vercel.app/api/cron every 1 min, header X-Cron-Secret: <CRON_SECRET>{
"ok": true, "processed": 2, "succeeded": 2,
"confirmed": 0, "ms": 894,
"jobs": [{ "txid": "abc...", "ok": true, "wave": 2, "nextWaveIn": "30 мин" }]
}Returns identical payload to /api/status with additional _meta object containing tier, remaining limits, requestId.
{
"ok": true,
"fees": { "fastest": 8, "halfHour": 5, "hour": 4, "economy": 2 },
"congestion": "low",
"mempool": { "count": 24965, "vsizeMB": 19.4 }
}_meta and response headers.500 req/day
5,000 req/day
50,000 req/day
SLA + support
X-RateLimit-Limit-Minute: 500 X-RateLimit-Remaining-Minute: 498 X-RateLimit-Limit-Day: 50000 X-RateLimit-Remaining-Day: 49997
| HTTP | Reason | Resolution |
|---|---|---|
| 200 | ok: false | TX not found or method returned empty |
| 400 | Invalid txid / method | Ensure txid = 64 hex chars. Check availableMethods in error body. |
| 401 | Unauthorized | API key missing or invalid. Check Authorization: Bearer header. |
| 429 | Rate limit exceeded | Slow down or upgrade tier. See retryAfter ms. |
| 500 | Internal error | Upstream Bitcoin node error. Retry with backoff. |
{
"ok": false,
"error": "Rate limit exceeded (per_minute)",
"limit": 30,
"retryAfter": 45000
}- heartLevel now synced with price tier (feeRate + mpCount + blockTime) — no more mismatch between price and heart animation
- Removed duplicate heart update in _rtApplyTicker — was causing flicker
- Full i18n for NI cards, FAQ answers, modal header, pool grid, mempool bar
- Wave history timer: confirmed TX shows "✅ confirmed" instead of frozen countdown
- WebSocket: max 2 retries + session-level disable flag — no more console spam
- Smart Advisor text had broken ternary — fixed lang-aware output
- Wave system rewritten: localStorage + setInterval replaces 10× setTimeout — survives tab close/refresh
- Server-side wave cron via cron-job.org + Firebase Realtime DB — waves fire even when browser closed
- Wave state key:
ttx_wave_v2_<txid>with nextWaveAt, wavesDone, active - Wave countdown in history detail reads actual nextWaveAt from localStorage
- Client PRICE_TIERS synced with router.js: low=5–10min, medium=10–15min, high=10–20min
- HMAC activation tokens — PREMIUM_SECRET no longer sent to client
- broadcast.js accepts both raw secret and HMAC token (backward compat)
- Fixed dynamic API keys (created via v1 now work in auth)
- Fixed Lightning bech32 invoice parser
- Fixed hashrateReach = 0 despite pools responding
- Fixed channel names mismatch (bitaccelerate, sochain.com, Lincoin)
- Result panel restored after F5 from localStorage
- History cards show feeRate, hashrate %, channels, ETA
- CSP via meta tag (Vercel Hobby plan header limitation)
- Merged acceleration.js into router (Vercel Hobby 12-function limit)
- Merged keys.js into v1.js
- Repeat waves upgraded 8 → 10
- Dual-signal pricing: fee rate + mempool queue
- Dynamic cheapWindowForecast with real 24h block data
- Q1 2026 hashrate: MaraSlipstream, EMCDPool, SBICrypto, 2Miners, Rawpool
- 30 channels: 8 nodes + 22 pools (~88% hashrate)
- MARA Slipstream private mempool bypass
- Public API v1 with Bearer auth and tiered rate limits
- Smart Advisor — decision engine with cost analysis