Registro de cambios
Sigue cada hito en el desarrollo de dTax — desde el motor principal hasta la plataforma fiscal completa.
Wallet Sync — Skipped Chains Are Now Visible Instead of Silent
Fixes a gap where blockchain wallet sync could silently skip chains it wasn't able to query (missing server-side API key for that specific chain, or a transient rate-limit/error) and still report the sync as fully complete. A wallet whose only activity was on one of the affected chains would show 'sync complete' with zero indication that chain was never actually checked. The sync engine now tracks every skipped chain with a machine-readable reason (missing key, rate limit, blocked configuration, etc.) and a flag for whether it's worth retrying. When any chains were skipped, the wallet card shows a clear inline notice (e.g. 'base, cronos — platform configuration pending') instead of the misleading 'already up to date' banner that used to appear regardless. Internal implementation details (third-party vendor names, security check names) are never exposed in this message — only a user-facing category and the affected chain names. Added regression tests covering the custom-chain, EVM, and Solana skip paths that were previously untested.
Binance.US API Sync — Fixed IPv6 Connection Rejection
Fixed a connection failure affecting Binance.US API sync on some hosting environments. Node.js 17+ changed its default DNS resolution order to no longer prefer IPv4, and on hosts with IPv6 network egress enabled, this could route outbound requests to an IPv6 address for domains that have both A and AAAA records. Binance.US's API explicitly rejects IPv6 client connections, which surfaced to users as a generic, unhelpful connection error. The API server now prefers IPv4 for all outbound DNS resolution at startup — this doesn't disable IPv6 for anything that needs it, it only changes which address family is tried first. Applies defensively to all exchange API connections, not just Binance.US.
Connect Exchange API — Clearer Error Messages
When connecting an exchange via API key failed for any reason, the error message was always the same generic 'Failed to verify API keys with exchange.' regardless of the actual cause — invalid key, IP restriction, clock drift, insufficient permissions, or an unsupported exchange all looked identical. This made it impossible to self-diagnose a failed connection. The error response now includes the exchange's actual rejection reason (e.g. the specific authentication error returned by the exchange's API), so you can tell immediately whether the problem is a bad key, a permissions issue, or something else. Applies to all supported exchanges, not just one.
Binance.US — New CSV Format + API Sync Support
Binance.US changed their CSV export to an undocumented new format (separate Base Asset / Quote Asset / Primary Asset columns) that dTax didn't recognize, causing 'No valid transactions found in CSV' on import. Added support for the new format alongside the existing one — both are auto-detected, no manual format selection needed. Handles two-sided spot trades (buy/sell, correctly typed against both fiat and stablecoin quote currencies) and single-asset rows (deposits, withdrawals, staking rewards, distributions, referral commissions). Also added Binance.US as an option for direct API sync (in addition to CSV import) — Binance.US is spot-only, so the futures/perpetuals option correctly doesn't appear for it.
PDF Reports — Fixed Overlapping Columns
Fixed a layout bug where Form 8949 columns (f)/(g)/(h) could render on top of column (e) Cost Basis, producing garbled text like '(e) Cost Ba(g)sis Adj.' in the header and overlapping numbers in totals rows — caused by a column-width formula that didn't account for where the previous column actually ended. Also fixed a related overlap in the Audit Defense report's Connected Accounts and Transaction Register sections, caused by a PDF-rendering quirk where drawing several columns on the same row using the library's auto-advancing cursor caused them to drift downward relative to each other. Both reports now lay out columns using explicit, verified widths that sum exactly to the page's content area.
Manual Transactions — Add a Source for Per-Wallet Cost Basis Matching
Fixed a bug where a manually-added transaction (e.g. an OTC trade or a transfer you entered by hand) couldn't be matched against CSV-imported transactions for cost-basis purposes when Per-Wallet Basis Tracking (strictSilo) is enabled, because manual entries had no way to specify which wallet/exchange they belonged to. The Add Transaction form now includes a Source field, so manually-entered lots and disposals can be assigned to the correct cost-basis pool and matched correctly under Per-Wallet Basis Tracking, consistent with imported transactions.
Corrección de reimportación CSV — Filas soft-eliminadas ya no bloquean actualizaciones
Corrige un bug donde las transacciones eliminadas desde la UI seguían contando como duplicados al re-subir un CSV. La lógica original saltaba todas las coincidencias sin importar el estado de borrado para evitar violaciones de restricción única — pero esto bloqueaba a los usuarios que intencionalmente soft-eliminaban y modificaban su CSV. Ahora la importación particiona las coincidencias en tres categorías: duplicados activos (saltados como antes), coincidencias soft-eliminadas (resucitadas — deletedAt limpiado, campos actualizados desde el nuevo CSV, clasificación IA y enriquecimiento de precios reiniciados para reprocesamiento), y filas nuevas (insertadas como antes). La respuesta ahora devuelve `resurrected` junto a `imported` y `skipped`. Reportado por nuestro primer cliente de pago, corrección desplegada en 24 h.
Blindaje del pipeline de facturación y nuevas herramientas de administración
Actualización importante de fiabilidad en el flujo de suscripción junto con nuevas capacidades de administración. Facturación: identificamos y eliminamos un escenario en el que una confirmación de suscripción retrasada podía provocar cargos duplicados al reintentar. Tres capas de defensa protegen ahora la ruta de checkout — reconciliación con Stripe antes de crear cualquier suscripción nueva (repara suscripciones huérfanas por fallos de webhook), protección de planes Lifetime (bloquea compras duplicadas de PRO para suscriptores vitalicios) y un guard de duplicación del mismo plan que corta el checkout cuando ya existe una suscripción activa o una concesión de cortesía vigente. Todos los clientes afectados han recibido reembolsos completos. Ampliamos la cobertura de webhooks para manejar eventos customer.subscription.created, de modo que las suscripciones creadas fuera del flujo estándar de checkout (p. ej. concesiones de cortesía de administradores) se sincronicen correctamente con nuestra base de datos. Herramientas de administración: acción en un clic «Otorgar PRO 12 meses» que crea una concesión con caducidad automática y sin renovación automática — sin necesidad de suscripción Stripe. Acción «Eliminar usuario» permanente con confirmación por correo electrónico escrito y borrado en cascada transaccional de todos los registros relacionados. Endpoint de suscripción de administrador extendido para aceptar currentPeriodEnd, cancelAtPeriodEnd y status para control más fino. Corregido un error de etiqueta donde la fecha de caducidad se mostraba como «fecha de registro». Seguridad: cinco nuevos guards del lado del servidor en endpoints de suscripción de administrador previenen la automodificación (separación de deberes), limitan la duración de concesiones a 24 meses, rechazan fechas de caducidad pasadas, protegen suscripciones Stripe activas de sobrescritura de campos de facturación (previene deriva BD/Stripe) y requieren concesión Lifetime previa para elevación a estado Lifetime. Pruebas: 16 nuevos casos cubriendo todas las rutas de defensa y seguridad.
Parche de Seguridad y Fiabilidad
Mejoras internas de seguridad y fiabilidad en la API y el frontend. Seguridad: los tokens de restablecimiento de contraseña ahora se almacenan como hashes SHA-256 (el token original nunca se persiste en la base de datos). Protección SSRF actualizada con validación de nombre de host a nivel DNS para bloquear ataques de rebinding. Prevención de inyección en el nombre de archivo del encabezado Content-Disposition. Rutas de exención de autenticación usan coincidencia exacta. Fiabilidad: condición de carrera en la encola de trabajos eliminada con transacciones PostgreSQL serializables. El enriquecimiento de precios ahora usa lotes de 20 escrituras concurrentes. Tiempo de espera de 30 segundos para flujos R2. Tiempo de espera de 5 minutos para el worker de cálculo fiscal. Frontend: compatibilidad de descarga CSV/PDF/JSON en Firefox restaurada. Fuga de intervalo de sondeo fiscal corregida. Navegación de incorporación migrada al router de Next.js. La lista de informes se actualiza correctamente tras eliminación.
Cálculo de Impuestos Asíncrono, Filtro Multi-Activo y Filtros URL Persistentes
Tres mejoras de UX. (1) El cálculo de impuestos ahora es asíncrono — en lugar de bloquear la interfaz, el motor encola un trabajo en segundo plano y muestra un indicador de progreso en tiempo real; los resultados aparecen automáticamente al finalizar. (2) Filtro multi-activo: la barra de filtros de transacciones muestra ahora un menú desplegable multi-selección cargado dinámicamente desde tu historial real — selecciona BTC, ETH, SOL y más con un clic. El estado del filtro también se restaura desde la URL. (3) Filtros URL persistentes: cada filtro y criterio de ordenación se escribe en la URL, por lo que al actualizar o compartir un enlace se preserva la vista exacta.
Escáner de Sanciones OFAC y Análisis de Trading Emocional
Dos nuevas funciones gratuitas. Escáner OFAC: comprueba automáticamente todas las direcciones de billetera conectadas contra la lista SDN del Tesoro de EE. UU. (actualización diaria, O(1), caché 24h). Patrones de trading emocional: detecta compra-alto/venta-bajo basándose en el historial propio — precio medio ponderado de compra como referencia racional, recuento de persecución de máximos, ventas en pánico, pérdida emocional (USD) y puntuación emocional 0–100. Disponible en todos los planes.
Escáner CARF, Seguimiento TDS India y 29 Parsers
Escáner de exposición CARF/DAC8: evalúa exchanges por jurisdicción y estado de adopción CARF, estima transacciones reportables y nivel de exposición. Seguidor TDS India (Sección 194S): calcula 1% TDS en transacciones superiores a ₹50,000. 3 nuevos parsers indios: WazirX, CoinDCX y ZebPay — total de parsers dedicados: 29.
PDF de Defensa de Auditoría y Snapshot de Tenencias
Dos nuevos formatos PRO. PDF de defensa de auditoría: paquete IRS de 4 secciones (carta de presentación, resumen ejecutivo, metodología, registro de transacciones). PDF de snapshot de tenencias: certificado de activos con ganancias/pérdidas no realizadas, bloque de firma CPA y atestación de metodología.
Métodos Fiscales Internacionales y Soporte en 10 Idiomas
5 nuevos métodos de base de coste específicos por país: descuento CGT australiano, ACB canadiense, impuesto sobre activos virtuales coreano, VDA indio, CGT español. Total: 13 métodos. i18n ampliado de 7 a 10 idiomas — francés, turco y alemán añadidos.
Multi-cadena UTXO: LTC, DOGE, BCH, DASH
La sincronización de billeteras ahora soporta Litecoin (LTC), Dogecoin (DOGE), Bitcoin Cash (BCH) y Dash (DASH), elevando el total a 22 blockchains. Impulsado por la API pública de Blockchair (gratuita, sin clave). Detección automática de direcciones, cálculo de saldo UTXO y clasificación de transacciones como TRANSFER_IN/OUT/INCOME.
Pipeline fiscal totalmente automático
Importa las transacciones una vez — dTax se encarga de todo automáticamente. Después de cada importación CSV, sincronización de billetera o conexión de exchange, el enriquecimiento de precios se ejecuta en segundo plano, seguido de la generación automática del informe fiscal FIFO para el año fiscal anterior y el actual. Se envía un correo resumen cuando tu informe está listo, mostrando la ganancia/pérdida neta por año. Los usuarios PRO pueden volver a calcular con LIFO, HIFO u otros métodos desde el panel.
Integridad de sincronización de billeteras y mejoras UX
Correcciones de integridad: paginación Solana (hasta 12.500 txns), límite Moralis 20→200 (hasta 20.000 txns), sincronización incremental EVM con cursor persistente. Comisiones USD rellenadas automáticamente. Hash de transacción ahora muestra enlace al explorador. Filtro para ocultar transacciones $0. Precio enriquecido automáticamente tras sincronización (enfriamiento 5 min). Botón «Limpiar datos» por billetera. Consejos de flujo de trabajo en el Dashboard.
Filtros avanzados y gestión de columnas
Filtra transacciones por precio faltante para encontrar entradas que necesitan precio manual. Filtra por varios activos a la vez (ej. "BTC, ETH, SOL"). Activa columnas opcionales de cadena, dirección y TxHash en la tabla. Las páginas de transferencias y conciliación ahora paginan resultados grandes.
Mejoras UX: pares de activos, paginación de IA e i18n
Las transacciones bidireccionales (swaps, depósitos LP) muestran "BTC → USDT" en la columna de activos. Nuevos tipos LOST y STOLEN. El historial del asistente de IA ahora pagina. Botones de actualización de precios del portafolio con tooltips. Cobertura completa de i18n en 7 idiomas.
Refuerzo de seguridad
Corregidas 4 vulnerabilidades de una auditoría independiente: bypass de cuota (H-1), acceso de sesión CPA caducada (H-3), limitación de velocidad en eliminación de cuenta (L-3), y validación de userId en Stripe Webhook (C-2).
Sincronización de Cartera Bitcoin
Sincroniza direcciones de Bitcoin directamente — todos los 4 formatos soportados: Legacy (1...), Nested SegWit (3...), Native SegWit (bc1q...) y Taproot (bc1p...). Impulsado por la API Blockstream Esplora — gratuita, sin necesidad de clave API. Detecta automáticamente ingresos de minería (transacciones coinbase → tipo INCOME), calcula correctamente el importe neto enviado considerando salidas de cambio UTXO, con respaldo en mempool.space.
Sincronización CEX — Spot y Futuros
Conecta claves API de exchanges (Binance / Binance.US, OKX, Bybit, Kraken, Coinbase, KuCoin, Gate.io) para sincronizar automáticamente operaciones spot, depósitos y retiros. El Plan-43 extiende esto a futuros, contratos perpetuos y trading con apalancamiento — incluyendo tasas de financiación y liquidaciones mapeadas como tipos MARGIN_TRADE y LIQUIDATION.
Clasificación LP + Chains Personalizadas
Clasifica tokens LP automáticamente por protocolo (Uniswap V2 LP, PancakeSwap LP, Curve 3CRV, Balancer BPT y 8+ más) como LP_DEPOSIT/LP_WITHDRAWAL. Soporte de chains EVM personalizadas (compatibles con MetaMask, URLs protegidas contra SSRF). 29+ parsers CSV con nuevos formatos Bitstamp, Upbit y Robinhood.
17 Cadenas + Mejoras de Transacciones
Soporte para 17 chains: ETH, Polygon, BSC, Arbitrum, Optimism, Avalanche, Base, Linea, Scroll, Mantle, Blast, Gnosis, Sonic, Monad, Sei, Cronos + Solana. Columnas Source/Chain/ContractAddress añadidas al CSV export, import y lista de transacciones. Visibilidad de columnas personalizable. Plan PRO de por vida ($199). BSC migrada de Moralis a Etherscan V2.
Posicionamiento Ley GENIUS y mejoras en el simulador
Nueva sección de cumplimiento de stablecoins de la Ley GENIUS en la página de características y la tabla de comparación de la página de inicio. Comparación de 7 métodos en el simulador (antes 3). Serie de artículos sobre regulaciones (3 × 7 idiomas). El historial de informes ahora muestra la hora de generación al calcular. Hoja de ruta: modo de instrumento de pago en stablecoins planificado pendiente de orientación del IRS.
Cumplimiento CARF y UK Share Pooling
UK Share Pooling (Section 104) como 8.° método de base de costo, cuenta regresiva CARF 2027 en la página de impuestos, estado de adopción CARF de 15 países en tasas globales, endpoint de exportación de transacciones CARF (PRO/CPA), sistema AI multi-proveedor (15+ proveedores LLM con BYOK), consola de operaciones AI, control de acceso por suscripción y contenido CARF en todas las páginas de marketing.
Motor Fiscal Global
3 métodos internacionales de base de costo (Alemania FIFO con exención de 12 meses, Francia PMPA promedio ponderado, Japón Promedio Total), página comparativa de tasas de 15 países y 8 guías fiscales por país.
Inteligencia fiscal 2026
Reporte de ingreso ordinario (staking/minería/airdrops), clasificación cubierto vs no cubierto del 1099-DA, alertas regulatorias de PARITY Act y tarjetas de resumen fiscal mejoradas.
Fase B: Páginas del sitio web
Se agregaron páginas de Precios, Funcionalidades, Seguridad y Exchanges con soporte completo de i18n.
Fase A: Páginas principales
Página de inicio, páginas legales (Términos, Privacidad, Aviso legal) y asistente de configuración para nuevos usuarios.
Página de inicio
Página principal de marketing con funcionalidades destacadas, tabla comparativa competitiva y resumen de precios.
Tema y experiencia de usuario
Alternador de tema claro/oscuro con detección de preferencia del sistema, navegación responsiva y límites de errores.
Mejora del panel
Tarjetas de acciones rápidas, widget de resumen de fuentes de datos y guía de 3 pasos para nuevos usuarios en el panel.
Soporte DeFi y NFT
12 nuevos tipos de transacciones DeFi/NFT, parsers DeFi de Etherscan y Solscan, y transferencia de base en wrap/unwrap.
Parsers de exchanges
20 parsers de formato CSV de exchanges incluyendo Coinbase, Binance / Binance.US, Kraken y 17 más con auto-detección.
Reportes fiscales
Exportación de Form 8949 en PDF/CSV, resumen de Schedule D con arrastre de pérdidas y detección de wash sale con ventana de 30 días.
Motor principal
Cálculo de base de costo FIFO, LIFO y HIFO, pipeline de importación CSV y panel básico con resumen fiscal.
Lanzamiento inicial
Motor fiscal con pruebas unitarias exhaustivas, frontend Next.js con i18n y API Fastify con Prisma ORM.