Fee Optimizer MCP
Compara las tarifas de trading de exchanges de criptomonedas en 18 plataformas (Binance, OKX, Bybit, Kraken, Coinbase, etc.): niveles VIP, descuentos por token, tasas de financiación, spread de ejecución y deslizamiento, rampas de entrada/salida fiduciarias y tarifas de retiro por red. Filtrado regional MiCA. 19 herramientas de solo lectura.
Documentación
Fee Optimizer MCP
Un servidor MCP (Protocolo de Contexto de Modelo) que ayuda a los agentes de IA a responder preguntas sobre tarifas de trading en exchanges de criptomonedas, obtener enlaces de referencia para descuentos en tarifas, calcular ahorros, comparar el costo total (tarifas + funding + spread/deslizamiento + retiros), anualizar el costo total anual con ahorros por actualización VIP, inspeccionar tasas de funding (promedios agrupados o tasas en vivo en tiempo real), medir el costo de ejecución en el libro de órdenes (cruce de spread bid-ask + deslizamiento por profundidad condicionado al tamaño, líneas base agrupadas o recorridos en vivo del libro), comparar costos directos de entrada/salida fiat (depósitos y retiros con tarjeta / ACH / SEPA / FPS / transferencia bancaria / SWIFT / PIX entre plataformas, monedas y países de residencia), comparar tarifas de retiro on-chain por activo y red entre plataformas (16 activos × rutas TRC-20/ERC-20/L2/nativas con indicadores de billetera suspendida y conversión a USD con precio instantáneo), y ejecutar un análisis de perfil de trader anclado en investigación que anualiza la pila completa de costos (tarifas + funding + spread + retiros + entrada/salida fiat) para siete arquetipos de trader y recomienda el mejor exchange para el perfil del usuario.
Cuando un usuario pregunta "¿qué exchange de criptomonedas tiene las tarifas más bajas para un trader de órdenes limitadas?", "dame un enlace de registro con descuento de Gate.io", "¿cuánto puedo ahorrar en futuros de 100k USDT mantenidos durante 16 horas?" o "¿de dónde provienen estos datos de tarifas?", el agente puede llamar a las herramientas de este servidor para devolver respuestas concretas y con fuentes — incluido un enlace de referencia con el que el usuario puede registrarse para recibir un descuento en tarifas.
Características
Veinte herramientas de solo lectura. Funciona sobre stdio o HTTP Streamable sin estado (v0.29: servidores aislados por solicitud, respuestas JSON, sonda /health — listo para hosting remoto/contenedores; v0.32 añade endurecimiento para hosting público: autenticación por bearer-token optativa, limitación de tasa por IP, registros de acceso JSON estructurados y un Dockerfile de producción). Todas las herramientas con tarifas requieren un código de país para el filtrado de cumplimiento. Cada resultado lleva un sello data_as_of, y get_data_sources reporta months_behind/is_stale por archivo más stale_files (v0.33), aplicado por una compuerta de consistencia npm run audit:data fuera de línea. v0.48 añade get_fee_changes (vigésima herramienta) — el feed auditable de cambios en el cronograma de tarifas (foso de datos): un historial curado y verificado con anuncios oficiales de cambios en tasas VIP, cambios en umbrales de calificación, inserciones/eliminaciones de peldaños, promociones, descuentos por token y cambios en el modelo de precios (cada uno con fecha de vigencia, URL de origen y resumen bilingüe), más instantáneas mensuales deterministas de la escalera de tarifas en snapshots/fee_ladders/ que se comparan automáticamente — las filas derivadas de instantáneas llevan confidence: "detected" y NUNCA se presentan como confirmadas (un delta puede ser una corrección de datos); un flujo de trabajo mensual de GitHub Actions captura la nueva instantánea y abre un PR solo de revisión, y un humano verifica contra la página oficial de tarifas antes de curar en data/fee_changes.json. El feed curado se incluye en el paquete npm; las instantáneas son solo del repositorio, y los consumidores de npm degradan con elegancia (snapshot_coverage.available: false). v0.34 añade volume_what_if — un barrido de sensibilidad what-if por volumen: ranking más barato entre venues y curvas de tarifas/costos por venue a través de niveles de volumen mensual (puntos predeterminados = la unión de todos los umbrales VIP de cada venue), la lista exacta de cruces de nivel, y con baseVolume el siguiente peldaño de cada venue, el volumen adicional requerido y el USD/año ahorrado al volumen actual (peldaños con compuerta de tenencia como el requisito BNB del spot de Binance marcados blocked_by_holding_gate). v0.35 añade compare_countries — una persona de trader cotizada a través del stack anual completo all-in en hasta 12 países en una sola llamada: ganador por país y selección realista de todas las piernas, el costo anual extra vs el país más barato sobre una base comparable (un ganador titular sin riel no puede fingir un país), una matriz de disponibilidad venue×país que distingue bloqueado por cumplimiento de no soportado por producto (Coinbase solo spot para un trader de futuros), conteos de victorias por venue y la brecha más barata/más costosa. v0.36 añade tablas de matriz listas para pegar — compare_personas, volume_what_if y compare_countries aceptan format: "markdown" | "csv" | "both" y devuelven un objeto rendered junto al JSON sin cambios (tableMetric selecciona la porción: tarifa ponderada / tarifa anual / nivel para el barrido, símbolos de disponibilidad / costo para países); las tablas markdown escapan barras verticales y CSV sigue RFC 4180 (comas/comillas/saltos de línea entre comillas, CRLF) para pegado directo en documentos u hojas de cálculo; las llamadas predeterminadas permanecen byte-idénticas. v0.37 añade BloFin como el 13.er venue — un exchange de derivados con sede en Islas Caimán/Marshall (~$1.2B/24h de volumen de perpetuos, sin KYC hasta retiros de 20k USDT/día): escaleras de 6 niveles para spot/futuros (futuros 0.020%/0.060% base → 0%/0.035%, spot 0.10%/0.10% → 0.01%/0.0325%), calificación OR de tres vías (volumen de futuros 30d / volumen de spot 30d / activos de cuenta — solo $50k en activos alcanza futuros VIP1), funding de 8h, spread típico de perpetuos de ~3 bps, retiros TRC-20 a ~1 USDT/USDC, sin token nativo, sin enlace de referido, sin rieles fiat directos, y bloqueado en US/CA/CN/SG más el EEE bajo MiCA (Alemania modelada explícitamente). v0.38 añade Bitstamp como el 14.º venue — el venue más regulado del modelo (fundado en 2011, Luxemburgo, propiedad de Robinhood; pasaporte CASP MiCA de la UE, BitLicense de NYDFS, FCA del Reino Unido, MAS de Singapur): una escalera de spot solo por volumen de 11 niveles (0.30%/0.40% de entrada → 0.00%/0.03% por encima de $1B de facturación 30d) más perpetuos regulados con margen en USD a una tarifa plana −0.005% de rebate maker / 0.015% taker con funding peer-to-peer de 8h — los perpetuos son solo para residentes elegibles de UE/EEE, modelados con una compuerta de producto venue×país (v0.40: una lista blanca positiva de región EEE — los 30 estados del EEE enrutan ambos productos, cualquier otra residencia incluyendo AU/BR/CH obtiene futuros PRODUCT_BLOCKED_IN_COUNTRY mientras el spot permanece abierto; CN está bloqueado por venue), rieles fiat directos profundos (ACH gratuito en ambos sentidos, SEPA gratuito de entrada / €3 de salida, SWIFT 0.05%/0.1% con mínimos/máximos, tarjeta ~4%) y retiros conservadores con carga ERC-20 (USDT ~20 solo ERC-20 — la ruta USDT más cara modelada). El cálculo de funding usa promedios de largo plazo incluidos por defecto y puede cambiar a tasas en vivo en tiempo real vía fundingMode: "live". El costo de ejecución (spread + slippage) usa líneas base de spread típico incluidas por defecto y puede cambiar a recorridos de libro de órdenes en tiempo real vía spreadMode: "live". v0.39 añade get_account_fee_tier — el salto del cronograma público de tarifas a la tasa real de la cuenta del llamante: pasa una clave API de solo lectura (Hyperliquid solo necesita la dirección pública de wallet 0x; OKX/KuCoin-Futures aceptan una frase de contraseña de API) y la herramienta llama al endpoint autenticado de tarifas del venue vía ccxt, devuelve el maker/taker real en porcentaje y la brecha firmada en bps vs el nivel VIP público incluido al volumen mensual dado (captura deducciones BNB del lado del servidor, la ventana VIP propia de 30d rodantes del venue, tasas negociadas/promocionales; 13/18 venues soportados — Phemex/BloFin, Finst, Bitpanda y BISON (sin API pública de trading / conector ccxt), más los perpetuos de los venues solo spot (Bitstamp, Bitvavo), devuelven un error tipado de no soportado). Las credenciales son solo por solicitud, nunca se almacenan en caché, nunca se escriben en registros (las líneas de auditoría redactan apiKey/secret/password; las cadenas de error eliminan literales de credenciales), y las compuertas de cumplimiento de país/producto se ejecutan antes de cualquier llamada autenticada. v0.40 añade listas blancas de región positivas (regions + product_region_gates en country_restrictions.json) reemplazando la clave predeterminada de lista negativa de v0.38: los perpetuos de Bitstamp ahora requieren membresía de la región EEE declarada (los 30 estados — EU27 + Islandia/Liechtenstein/Noruega), por lo que residencias no EEE no modeladas como AU/BR/CH/TR/KR se marcan correctamente como PRODUCT_BLOCKED_IN_COUNTRY en lugar de abrirse en silencio, mientras que cada miembro del EEE (FR/NL/ES/IT/…) enruta ambos productos; la compuerta está basada en datos y es reutilizable para futuros venues con restricción de región. v0.41 aplica el régimen MiCA posterior al acantilado (la transición del Artículo 143(3) terminó 2026-07-01, sin extensión) con compuertas de región negativas (region_blocked + product_region_blocked): para residentes del EEE, Binance, MEXC, Bitget, KuCoin, BingX, Phemex y BloFin están bloqueados por venue para cada producto (sin autorización CASP utilizable — solicitudes retiradas/pendientes o la prohibición activa de inicio de operaciones de KuCoin por FMA), y los perpetuos de Bybit/Gate están bloqueados por producto pendiente de autorización separada como empresa de inversión MiFID II mientras su spot permanece abierto; el stack del EEE es por tanto OKX/Gate/Bybit/Kraken/Coinbase/Bitstamp para spot y solo OKX (X-Perps), Kraken y Bitstamp para perpetuos, más Hyperliquid no custodial (sin geo-bloqueo de frontend — retenido con una advertencia explícita de riesgo de zona gris). Las compuertas negativas solo reducen los resultados del EEE; los mercados no EEE (US/GB/AU/BR/JP/…) son byte-idénticos a antes, incluidos los países enrutados a través de la clave predeterminada abierta. v0.42 añade Bitvavo como el 15.º venue — el exchange de spot en euros más grande de origen local (Ámsterdam, fundado en 2018, ~4M+ usuarios, aproximadamente la mitad del volumen global de spot denominado en EUR; registro CASP MiCA de AFM #41000010 con pasaporte EEE) — y una nueva compuerta de área de servicio positiva a nivel de venue (region_allowed en country_restrictions.json): Bitvavo sirve solo a los 30 estados del EEE, por lo que cualquier otra residencia (US/GB/CH/JP/SG/AU/BR/CN/… incluidos los países de clave predeterminada) obtiene el venue filtrado (semántica COUNTRY_BLOCKED), mientras que un acierto en la lista blanca autoriza el venue incluso donde un enum allowed por país desactualizado no coincide. Bitvavo es solo spot: una escalera PRO de nueve peldaños de una sola vía por volumen EUR 30d (0.15%/0.25% de entrada → 0.00%/0.02% por encima de €25M; sin token, sin vía de activos; el spread integrado de la UI básica de consumo no se modela), el spread más ajustado del libro EUR de la UE en el modelo a 1.0 bps completo / 0.5 bps de cruce (Kaiko 2026-05 midió 0.981 bps — el mejor de cualquier venue europeo), SEPA/SEPA Instant gratuitos en ambas piernas en EUR (iDEAL/Bancontact viajan sobre SEPA; límite de retiro de €25k/día) más un depósito con tarjeta EU de ~1% sin retiro con tarjeta, y un retiro on-chain dinámico solo BTC modelado a 0.00005 BTC (sin Lightning; USDT/USDC/ETH/alts aparecen como no soportados). El stack de spot del EEE crece a 8 venues; el stack de futuros no cambia (Bitvavo aterriza en unsupported_product para una persona de futuros). Las entidades separadas de Bitvavo UK y Suiza no se modelan deliberadamente, por lo que GB/CH permanecen fuera de la lista blanca. v0.43 añade Finst como el 16.º venue — el primer bróker del modelo en lugar de un exchange de libro de órdenes (Ámsterdam, fundado en 2022 por un equipo ex-DEGIRO; CASP MiCA de AFM #41000015 otorgado en 2025-07 con pasaporte EEE, ~30 países / 110k+ usuarios): un enrutador de órdenes inteligente (SOR) que agrega liquidez externa y cobra un 0.15% plano en cada compra/venta/intercambio/auto-inversión — sin división maker/taker, sin niveles de volumen, sin mínimo, sin margen de spread (modelado como un solo peldaño de escalera independiente del volumen más un proxy de spread de cohorte de 1.0/0.5 bps). La misma compuerta region_allowed: ["EEA"] a nivel de venue aplica, llevando el stack de spot del EEE a 9 venues; Finst desaparece de cada resultado no EEE. Es solo spot (una persona de futuros ve unsupported_product dentro del EEE, blocked fuera), ofrece SEPA/SEPA Instant/iDEAL/Bancontact gratuitos en ambas piernas solo en EUR — sin riel de tarjeta (consultas explícitas de tarjeta devuelven available: false), sin PayPal, sin USD/GBP — y modela retiros de cripto como tarifa de red dinámica al costo más un cargo fijo de terceros de €2.50: debido a que el esquema no tiene campo de recargo, BTC se cotiza todo incluido a 0.000085 BTC (≈$6.57) con la composición de dos partes divulgada en la nota de ruta, mientras que los otros 400+ mercados aparecen como no soportados. No hay programa de referidos ni API pública de trading, por lo que get_account_fee_tier no es soportado (la cobertura en vivo permanece en 13 venues). v0.44 añade Bitpanda como el 17.º venue y el primer bróker con precio por spread del modelo (Viena, fundado en 2014, 7.4M+ usuarios; autorización CASP MiCA de BaFin 2025-01-27 con pasaporte EEE30 + licencia de FMA austriaca + entidad Bitpanda Broker UK registrada en FCA del Reino Unido): la app de consumo cotiza un precio todo incluido con la tarifa integrada como margen y cero comisión separada — un nuevo pricing_model: "spread" (order_book | flat | spread) sin división maker/taker y sin escalera de volumen — 1.49% por lado titular para la mayoría de activos, 0.99% por lado para BTC y pares de stablecoin principales vía anulaciones a nivel de par, y 2.49% para small caps de menos de €100M (la banda de índice cripto de 1.99% y el margen 10x de la app de consumo no se modelan; futuros no soportados). Debido a que el margen integrado es el costo del spread, la línea base de spread típico incluida de Bitpanda se fija a 0 bps para que la prima y una línea de spread nunca se cobren dos veces, y un nuevo bloque de evidencia execution_quality divulga la brecha que el bróker oculta: viaje redondo anunciado de 2.98% vs la medición de viaje redondo de €100 con dinero real de TUM de 6.23% — 4.25 puntos porcentuales de margen oculto (oct–nov 2025, replicado de forma independiente por la Frankfurt School of Finance en 2026-03 con 432 viajes redondos en 9 plataformas) — la brecha de costo minorista europeo más grande medida en la investigación. Bitpanda sirve solo a los 30 estados del EEE más Gran Bretaña vía region_allowed: ["EEA","GB"] (GB añadido como clave de región de un solo miembro — el mismo mecanismo de compuerta positiva, sin cambio de código de compuerta), llevando el stack de spot del EEE a 10 venues; una persona de futuros ve unsupported_product dentro del área de servicio y blocked fuera (US/CA/CN/CH/…); el Bitpanda Fusion pro exchange separado (precios de liquidez agregada de 0.02–0.25%) y acciones/metales/ETFs no se modelan deliberadamente y se divulgan vía notas. Todos los rieles fiat de la app de consumo han sido gratuitos desde 2026 — SEPA/SEPA Instant, tarjetas Visa/Mastercard (solo depósito, sin pierna de retiro con tarjeta), PayPal y Apple/Google Pay en EUR, más FPS y tarjetas en GBP; no hay USD route (las consultas en USD conservan la fila del exchange con available:false). Los retiros de criptomonedas pasan la tarifa de red dinámica sin margen adicional: BTC 0.00000598 (~$0.46) y ETH 0.0006 (~$1.51) según la instantánea fechada. No hay enlace de referido y ccxt no incluye ninguna clase bitpanda, por lo que get_account_fee_tier devuelve ACCOUNT_FEES_UNSUPPORTED (la cobertura en vivo se mantiene en 13 de 17 exchanges). v0.45 añade BISON como el 18.º exchange y el segundo bróker con precio basado en spread del modelo (Boerse Stuttgart Group, Stuttgart, lanzado en 2019, más de 1M de usuarios activos; EUWAX AG cotiza como contraparte principal durante aproximadamente 10 segundos sin libro de órdenes; Boerse Stuttgart Digital Custody —antes blocknox— poseía la primera licencia de custodia/transferencia de criptoactivos MiCA de BaFin desde 2025-01-17, con pasaporte a 29 estados, y el servicio de intercambio de criptomonedas de EUWAX AG está autorizado por MiCA desde 2025-04-01): la aplicación de consumo cotiza un precio único todo incluido, modelado nuevamente con pricing_model: "spread" (sin maker/taker, sin escalera de volumen) — 1.25% por lado para BTC y ETH mediante anulaciones a nivel de par, 1.75% por lado para cualquier otra criptomoneda (ida y vuelta ≈2.5% vs ≈3.5%), por debajo del 1.49% anunciado por Bitpanda. La línea base del spread está fijada en 0 bps (misma protección contra doble conteo), y el bloque de evidencia execution_quality cuenta la historia opuesta a la de Bitpanda: ida y vuelta anunciado del 2.5% vs medición real de €100 de TUM del 2.58% — solo ~0.08 puntos porcentuales no revelados (oct–nov 2025, seis plataformas con licencia MiCA) — con diferencia la alineación publicada-vs-medida más cercana del campo probado (Bitvavo a continuación; Bitpanda 6.23%, Coinbase 7.49%), lo que convierte a BISON en el referente europeo de transparencia. BISON atiende los 30 estados del EEE más Suiza mediante region_allowed: ["EEA","CH"] — CH es una nueva clave de región de un solo miembro (DE/AT/CH comercializados activamente, otros residentes del EEE atendidos bajo libertades pasivas) — y está bloqueado para Gran Bretaña, el hueco complementario exacto a Bitpanda (EEE+GB, no CH), además de US/CA/JP/SG/AU/BR/CN/KR; la pila spot del EEE pasa a 11 exchanges, la pila CH a 15, y BISON nunca aparece en resultados de GB/US/JP. Es solo spot (futures: [] → unsupported_product en servicio, blocked fuera; no existen futuros ni margen). Los retiros de criptomonedas son oficialmente gratuitos — sin línea de tarifa de red, costos on-chain absorbidos por EUWAX/el grupo (a diferencia del traspaso de Bitpanda) — modelados en BTC 0 y ETH 0, lo que convierte a BISON en el retiro modelado más barato del mundo para ambos activos (mín. 0.001 BTC, sin Lightning/Taproot bc1p; solo mainnet de Ethereum, mín. 0.01 ETH, sin pagos L2). El fiat es solo EUR: SEPA/SEPA Instant gratis en ambas direcciones, incluidos usuarios suizos que financian en EUR, además de tarjeta/Apple Pay/Google Pay solo para depósitos con 2.49% (tarifa de socio Solaris SE/Deutsche Bank, sin retiro en efectivo con tarjeta; sin vía GBP/USD/CHF — las consultas en USD mantienen la fila no disponible). La tarifa de €1.99 para acciones/ETFs alemanes y la comisión del 27% sobre recompensas de staking no son tarifas de trading de criptomonedas y no se modelan. El programa de invitar a un amigo no lleva URL de afiliado (NO_REFERRAL_LINK) y ccxt 4.5.78 no incluye ninguna clase bison/euwax, por lo que get_account_fee_tier devuelve ACCOUNT_FEES_UNSUPPORTED (la cobertura en vivo se mantiene en 13 de 18 exchanges). v0.46 añade get_stablecoin_access (18.ª herramienta) — inteligencia de acceso regional a stablecoins MiCA: Tether nunca solicitó autorización EMT MiCA, y tras el precipicio transitorio de CASP el 2026-07-01 (ESMA75-113276571-1679, confirmado no prorrogable), el trading de USDT en exchanges no está disponible en los 30 estados del EEE — el modelo incluye el cronograma completo de exclusión por exchange (Coinbase 2024-12, la ola de Binance/Kraken/OKX/Gate/Bitstamp/Bitpanda/Bitvavo hasta 2025-03, las fechas de stop de compra/conversión residual de Revolut en 2026) además del estado venue_blocked para los seis exchanges bloqueados en el EEE y never_offered para BISON/Finst/Hyperliquid; el informe distingue la prohibición de trading del lado del exchange de los derechos personales — mantener, custodia y retiro on-chain a autocustodia siguen siendo legales (Convert/custodia mayormente conservados, DEXs fuera del perímetro; Suiza y Gran Bretaña están deliberadamente fuera de la región del EEE), nombra las seis alternativas autorizadas MiCA modeladas (USDC/EURC — Circle France EMI, EURI — Banking Circle, EURCV — SocGen FORGE, USDQ/EURQ — Quantoz) con detalle de emisor/autorización, y ofrece consejo bilingüe. La misma advertencia STABLECOIN_UNAVAILABLE_IN_REGION se inyecta automáticamente en cada flujo del EEE que cotiza USDT — comparaciones de tarifas (filas stablecoin_access por exchange), ahorro/costo total/costo anual/recomendación (stablecoin_warning de nivel superior en contexto de trading), retiros (contexto de autocustodia/retiro), costo de ejecución y análisis de persona (5 de 7 personas retiran USDT habitualmente) — para que un agente nunca pueda recomendar a un residente de la UE operar USDT en un exchange sin que la restricción salga a la luz. v0.47 añade compare_interface_costs (19.ª herramienta) — modelado de costos de interfaz dual consumidor vs PRO: la misma cuenta a menudo ejecuta una interfaz de libro de órdenes barata (Kraken Pro, Coinbase Advanced, Bitvavo trade) y una aplicación de consumo cara cuyo spread está incrustado en la cotización — valorada frente al estudio real de €100 de ida y vuelta de TUM (2025-10..11, seis plataformas de la UE con licencia MiCA; replicado de forma independiente por Frankfurt School en 2026-03 con 432 idas y vueltas en 9 plataformas): los idas y vueltas minoristas abarcan 13x — Bitvavo 0.58% (traspaso, referente de transparencia) < BISON 2.58% < app de Kraken 5.81% (3.81 pp ocultos) < Bitpanda 6.23% (4.25 pp ocultos) < Coinbase Simple 7.49% (4.51 pp ocultos, el peor — la tarifa plana de $2.99 domina las compras pequeñas de DCA e incluso las órdenes LIMIT simples llevan una tarifa de ejecución del 1%); las filas por exchange dan el nombre del producto de consumo y el modelo de tarifa, un costo total modelado de una vía, el ida y vuelta medido, el margen oculto en pp, la base maker/taker de PRO y la brecha en pp, y con monthly_volume_usd el exceso anualizado de quedarse en la app (Coinbase a $1k/mes ≈ $168/año), además de advertencias de suscripción (Kraken+ $4.99/10k de exención, Coinbase One) y el hecho de que el volumen de la app no genera crédito de nivel PRO; Bitpanda/BISON son solo bróker (la prima ES la tarifa — sin interfaz PRO a la que cambiar), Bitstamp Basic está marcado como no verificado, se aplica la restricción de residencia, y la misma brecha se autoinyecta como sugerencias consumer_interface + advertencias CONSUMER_INTERFACE_MORE_EXPENSIVE en las herramientas de tarifa/ahorro/costo total/recomendación. v0.30/v0.31 añaden salida narrativa bilingüe — las quince herramientas con narrativa aceptan language: "en" | "zh" y localizan cada cadena de consejo/advertencias/compensaciones/razones/advertencia_de_nivel (los números, nombres de campos y códigos de error permanecen sin cambios); v0.31 también corrige la advertencia de nivel BNB retenida, que antes mostraba "holding at least undefined BNB".
| Herramienta | Disparador (EN / 中文) | Devuelve |
|---|---|---|
compare_exchange_fees | "which exchange has the lowest fees" / "交易所手续费对比" | Exchanges ordenados por tasa efectiva ponderada, desglose maker/taker, nivel VIP, descuentos por token y referidos |
get_referral_link | "give me a Binance referral link" / "币安优惠注册链接" | URL de referido + % de descuento + notas |
calculate_savings | "how much will I save on 100k USDT futures" / "10万U能省多少" | Comisión original, comisión con referido, comisión con token, comisión final, ahorro, costo de funding opcional |
compare_total_cost | "true cost including funding and withdrawal" / "真实总成本对比" | Por exchange: comisión de trading + costo de funding + comisión de retiro, clasificados; v0.26 opcionalmente incorpora comisiones anualizadas de depósito/retiro fiduciario directo (fiatDepositAmountUsd/fiatDepositsPerYear + equivalentes de cashout) en total_cost, con banderas fiat_deposit_available/fiat_cashout_available para que un exchange sin vía directa se marque y la pata se excluya, nunca se cotice como cero |
recommend_exchange | "which exchange should I use" / "我该选哪个交易所" | Mejor elección puntuada (0-100) con razones, compensaciones, consejos y alternativas clasificadas; v0.27 incorpora el hábito de depósito/retiro fiduciario directo del usuario en la puntuación (peso 0.2–0.5 impulsado por dispersión), marca los exchanges sin vías con una compensación explícita y clasifica un pequeño on-ramper de tarjeta/SEPA por vías fiduciarias en lugar de solo comisiones de trading |
calculate_annual_cost | "what does trading cost me per year" / "一年手续费多少,升VIP能省多少" | Comisión de trading anualizada + funding + retiros (+ patas anuales de depósito/retiro fiduciario opcionales v0.26 en annual_total_cost), más la ruta de calificación al siguiente nivel VIP y el ahorro anual |
get_data_sources | "where does the data come from" / "数据哪来的,多久更新" | Fechas de last_verified por archivo y URLs de origen (páginas oficiales de comisiones de exchanges) + advertencias |
get_funding_rates | "current funding rate on BTC perps" / "现在各所资金费率多少" | Tasa de funding por exchange + intervalo para un par de perps (por defecto BTC/USDT): promedios agrupados o tasas en vivo en tiempo real con respaldo por exchange |
get_execution_cost | "spread and slippage on a 50k market order" / "点差滑点多少、大单冲击成本" | Costo de ejecución unidireccional por exchange en pbs + USD para un tamaño de orden: spread completo, cruce de medio spread, slippage por profundidad, niveles consumidos, estado de llenado — líneas base agrupadas o recorridos en vivo del top-100 del libro |
get_fiat_cost | "cheapest way to deposit euros / cash out to bank" / "入金出金手续费、SEPA/ACH/电汇/PIX 哪个便宜" | Cotizaciones de depósito o retiro fiduciario directo por exchange para un monto: comisión (pct + fija con mín/máx), equivalente en USD, % efectivo, monto neto, ETA, vía más barata por exchange, mejor elección general y ahorro vs. la peor — tarjeta / ACH / SEPA / FPS / wire / SWIFT / PIX en USD/EUR/GBP/BRL con filtrado de vías según residencia |
get_withdrawal_fees | "cheapest network to withdraw USDT / ETH L2 提币费对比" / "各所提币手续费、TRC20/ERC20/ Layer2 哪个便宜、哪条链暂停了" | Cotizaciones de retiro por exchange para un activo (y red opcional): comisión de cada ruta en unidad nativa + comisión convertida a USD con bandera available (wallets suspendidos se muestran, nunca se ocultan), ruta abierta más barata por exchange, best general, ahorro vs. la peor, advertencias — 16 activos en TRC-20/ERC-20/BEP20/Arbitrum/Optimism/Base/Polygon/Avalanche C/Solana/TON/AssetHub y cadenas nativas; totalmente sin conexión |
analyze_persona | "which exchange fits a small buyer / scalper / HODLer" / "我这种情况哪个交易所划算、定投囤币/波段/高频场景推荐" | Siete perfiles de trader anclados en investigación (comprador casual, acumulador HODL, spot activo, futuros swing, scalper diario, VIP/institucional, nativo de DEX): ranking anual integral sobre la pila de costos COMPLETA — comisiones de trading + funding + spread + retiros + entrada/salida fiduciaria — con mezcla de costos por componente, líderes por componente, elección best_complete (exchange más barato con cada pata del perfil cotizada; los ganadores destacados sin vías se marcan, nunca se silencian como $0), advertencias y consejos accionables; v0.25 enlaza analyze_token_discount — cuando se ejecuta con useToken=false (el predeterminado), los 3 exchanges mejor clasificados reciben cada uno un token_discount_hint (token, % de descuento, ahorro anual, meses de recuperación, costo de tenencia, plano vs. escalonado) más un array consolidado token_discount_hints y consejos concretos, de modo que una llamada responde tanto "qué exchange me conviene" como "vale la pena tener su token"; todos los ajustes preestablecidos son anulables |
analyze_token_discount | "is holding BNB/GT/KCS for fee discounts worth it" / "持有平台币划算吗、折扣多久回本、币价跌多少不亏" | Recuperación del descuento por comisión con token nativo: comisión anual SIN el token (nivel de saldo cero, sin alternancia) vs. CON él (deducción plana BNB/MX/BGB/KCS, escalera de niveles de tenencia GT/MX/HYPE, maker-a-cero en futuros Gate, elevación de nivel GT/KCS/BNB), ahorro anual en USD, costo de oportunidad en USD del saldo de token bloqueado, recuperación en meses y caída máxima de precio del token en un año que el ahorro puede absorber; omita tokenBalance para obtener cada nivel alcanzable clasificado por recuperación |
compare_personas | "which exchange for EVERY kind of trader" / "全部画像对比、什么人用什么所、决策矩阵、最全能的交易所" (v0.28) | Una llamada ejecuta los siete perfiles (o un subconjunto) para un país a través de la pila anual integral y devuelve una matriz de decisión: ganador destacado por perfil + elección realista best_complete, cuadrícula annual_all_in perfil×exchange (más barato primero, banderas de vía/ruta por celda), venue_wins entre perfiles y most_versatile — p. ej., en JP Hyperliquid destaca en 3 perfiles pero gana cero elecciones realistas (sin vías fiduciarias/retiro), mientras que OKX es el ganador integral más versátil |
volume_what_if | "how do fees change if my volume grows / how much more trading to hit the next VIP tier" / "月交易量不同手续费差多少、再刷多少量升档省钱、各所档位跳变点、费率随成交量曲线" (v0.34) | Barrido hipotético de volumen para spot/futuros en cada exchange permitido: ranking más barato entre exchanges por punto de volumen (nivel + comisión ponderada + comisión anual de trading), curvas de barrido por exchange con marcadores tier_crossed y lista plana tier_crossings; con baseVolume, next_tier por exchange da el umbral exacto, volumen mensual adicional y ahorro en USD/año al volumen actual — blocked_by_holding_gate: true marca los peldaños que el volumen solo no puede alcanzar (p. ej., puerta AND de BNB en spot de Binance). Los puntos de barrido predeterminados son la unión de los umbrales VIP de todos los exchanges (muestreados más allá de 16 con advertencia); pase volumes explícito para puntos personalizados |
compare_countries | "same profile across countries / I'm moving countries, what changes / which venues are blocked here" / "同样的习惯在哪个国家最便宜、搬家换居住地、各国有什么交易所、哪些所在我国不能用、国家差异矩阵" (v0.35) | Ejecuta un perfil (por defecto active_spot_trader; cualquiera de los 7) a través de la pila anual integral en múltiples países (por defecto US/GB/DE/JP/SG/BR/CN, hasta 12): winner destacado por fila más best_complete realista, comparison_annual_all_in/extra_vs_cheapest_country_* sobre una base integral comparable (Hyperliquid puede destacar para un comprador con tarjeta pero quedar excluido de las matemáticas del país porque no tiene vías fiduciarias), blocked_venues vs unsupported_product_venues (Coinbase para futuros), matriz completa venue_availability exchange×país, winner_venue_counts, cheapest_country/costliest_country/spread_usd y consejos bilingües — p. ej., el mismo comprador pequeño con tarjeta paga ~$125/año en EE. UU. vs ~$73 en Alemania (vías SEPA/tarjeta baratas) |
get_account_fee_tier | "what is MY actual fee / my real VIP maker-taker / check my account fee with a read-only API key" / "我的实际费率、账户真实VIP档位、API查我的手续费、只读密钥查费率" (v0.39) | Maker/taker real de cuenta autenticada mediante clave de solo lectura + brecha firmada en pbs vs. el nivel del cronograma público al volumen declarado; 13/18 exchanges (Phemex/BloFin no compatibles con ccxt, Finst, Bitpanda y Bison no tienen API/conector público; Bitstamp/Bitvavo solo spot, por lo que sus perps no son compatibles); las claves nunca se almacenan en caché ni se registran; compuertas de cumplimiento primero; códigos de error de autenticación/red tipificados |
get_stablecoin_access | "can I still trade/withdraw USDT in the EU / is USDT delisted here / MiCA stablecoin alternatives" / "USDT在欧盟还能用吗、泰达币下架、欧洲稳定币、USDC/EURC合规稳定币" (v0.46) | Acceso regional MiCA para una stablecoin (por defecto USDT; también USDC/EURC/EURI/EURCV/USDQ/EURQ): emisor + autorización EMT MiCA, restricción regional de trading en el exchange con fecha límite (EEA30 después de 2026-07-01), derechos de custodia/retiro/autocustodia, estado por exchange (retirada de listado + fecha / nunca_ofrecida / bloqueada_en_exchange, alcance eea/global, disponibilidad en el país consultado), alternativas conformes y consejos bilingües; la misma advertencia se inyecta automáticamente en las herramientas de comisiones, retiros, costo de ejecución y perfiles para solicitudes USDT/EEA |
compare_interface_costs | "why is the Kraken/Coinbase app so expensive / hidden spread in Instant Buy or Simple" / "为什么App买币这么贵、App隐藏点差、两套价格、简单买卖手续费、TUM实测" (v0.47) | Por exchange: nombre del producto de consumo + modelo de comisión, costo integral unidireccional modelado, ida y vuelta medido por TUM, margen oculto en pp, base maker/taker de PRO y brecha en pp, y con monthly_volume_usd el exceso anualizado de la app de consumo vs PRO (p. ej., Coinbase $1k/mes ≈ $168/año); advertencias de suscripción (Kraken+/Coinbase One), nota de sin crédito de nivel PRO, restricción por residencia; Bitvavo aparece como el punto de referencia de transparencia de pase directo del 0.58% |
get_fee_changes | "did any exchange change its fees lately / fee change history / 哪家所最近调过手续费、费率变更历史、怎么监控费率调整" (v0.48) | Fuente auditable de cambios en cronogramas de comisiones: registros curados de confianza alta/media verificados contra anuncios oficiales (fecha, URL de origen, resumen bilingüe, antes/después) combinados con filas detected derivadas automáticamente de diferencias de instantáneas mensuales de escaleras (claramente etiquetadas como no verificadas); filtros exchange/product/since_month/limit, consejos bilingües, más snapshot_coverage (instantáneas solo en repositorio; los consumidores de npm ven available: false) |
Intercambios admitidos: Binance, OKX, Gate.io, Bybit, MEXC, Bitget, KuCoin, Kraken (spot + futuros, tablas completas de niveles VIP; MEXC opera un nivel estándar plano; Kraken opera un único programa unificado de 17 niveles en ambos productos), Coinbase (solo spot en Advanced Trade, niveles solo por volumen), Hyperliquid (v0.20, el primer exchange DEX: libro de órdenes on-chain L1, niveles de volumen móvil de 14 días, funding por hora, descuentos por staking de HYPE, sin KYC), BingX (v0.21: escaleras del VIP Club con un escalón Elite solo por volumen, una vía de calificación por volumen O activos, y funding de 8 h), y Phemex (v0.24: con sede en Singapur, equipo ex-Morgan Stanley, las comisiones de maker más bajas de la industria — 0.01% spot/futuros en el nivel estándar, escaleras VIP solo por volumen de 30 días, funding de 8 h, descuento fijo del 20% con el token PT en spot+futuros), y BloFin (v0.37: exchange de derivados con sede en Islas Caimán/Islas Marshall activo desde 2023, ~$1.2B/24h de volumen de perps — escaleras de 6 niveles con futuros 0.020%/0.060% base hasta 0%/0.035% en VIP5, calificación OR de tres vías mediante volumen de 30d/volumen spot/activos de cuenta ($50k en activos por sí solos alcanzan futuros VIP1), funding de 8 h, spread típico de perps de ~3 bps, sin token nativo, sin vías fiat directas; bloqueado en EE. UU./CA/CN/SG y EEE bajo MiCA), y Bitstamp (v0.38: fundado en Luxemburgo (2011), propiedad de Robinhood, el exchange más regulado — MiCA CASP / NYDFS BitLicense / UK FCA / SG MAS; escalera de spot de 11 niveles solo por volumen 0.30%/0.40% → 0%/0.03% a $1B; perps en USD regulados solo para EEE30 a una rebaja plana de maker de −0.005% / taker de 0.015% con funding P2P de 8 h, restringidos por país×producto mediante una lista de permitidos regional positiva (v0.40); ACH gratuito en EE. UU., SEPA gratuita de entrada / €3 de salida, SWIFT 0.05%/0.1%, tarjeta ~4%; retiros con gran peso en ERC-20 — USDT ~20 solo ERC-20, USDC también en Solana/L2; sin token nativo), y Bitvavo (v0.42: Ámsterdam (2018), el mayor exchange de spot en euros de origen local — AFM MiCA CASP #41000010 con pasaporte EEE, region_allowed: EEA30), por lo que toda residencia fuera del EEE, incluidos GB/CH (entidades separadas no modeladas), está bloqueada a nivel de exchange), y Finst (v0.43: Ámsterdam (2022, equipo ex-DEGIRO), el primer bróker/vencimiento SOR del modelo en lugar de un exchange con libro de órdenes — AFM MiCA CASP #41000015 con pasaporte EEE; una comisión PLANA del 0.15% en cada compra/venta/swap sin división maker/taker, niveles ni margen de spread, modelada como un solo peldaño de escalera independiente del volumen; SEPA/SEPA Instantánea/iDEAL/Bancontact gratuitas en ambas patas solo en EUR, sin tarjeta/PayPal/USD/GBP; retiro de BTC 0.000085 (tarifa de red dinámica ≈0.00005 + cargo fijo de terceros de €2.50 integrado en la tarifa nativa), otros activos no admitidos; solo spot; solo EEE mediante la misma puerta region_allowed: ["EEA"] — el stack de spot del EEE ahora tiene 9 exchanges; sin referidos, sin API pública de trading, por lo que la consulta de tarifas de cuenta no es compatible), y Bitpanda (v0.44: Viena (2014), el primer bróker con precio por spread del modelo en lugar de un exchange con libro de órdenes — BaFin MiCA CASP (2025-01-27) con pasaporte EEE30 además de las entidades de la FMA austriaca y la FCA del Reino Unido, 7.4M+ usuarios; la app de consumo integra su tarifa como un margen de precio todo incluido: 1.49%/lado titular, 0.99%/lado para BTC y los principales pares de stablecoins mediante anulaciones de pares, 2.49% para small caps de menos de €100M — sin división maker/taker, sin escalera de volumen, pricing_model: "spread" con la línea base del spread fijada en 0 bps para evitar doble conteo, además de evidencia execution_quality (viaje redondo anunciado del 2.98% frente al medido con dinero real por TUM del 6.23%, 4.25pp ocultos; replicación de la Frankfurt School 2026-03); SEPA/SEPA Instantánea/tarjetas solo de depósito/PayPal/Apple-Google Pay gratuitas en EUR y FPS/tarjetas en GBP desde 2026, sin ruta en USD; BTC 0.00000598 (region_allowed: ["EEA","GB"] (clave de región de miembro único GB) — el stack de spot del EEE ahora tiene 10 exchanges y GB está incluido a diferencia de Bitvavo/Finst; el exchange pro separado Fusion, las acciones/metales y el margen de 10x no están modelados; sin referidos, sin clase ccxt, por lo que la consulta de tarifas de cuenta no es compatible), y BISON (v0.45: Stuttgart (2019), Grupo Boerse Stuttgart — el 18.º exchange del modelo y el segundo bróker con precio por spread — cotizaciones de EUWAX AG como principal (sin libro de órdenes, validez de cotización de ~10 s); Boerse Stuttgart Digital Custody obtuvo la primera licencia de custodia/transferencia MiCA de BaFin (2025-01-17) y el servicio de exchange de EUWAX está autorizado por MiCA desde 2025-04-01, 1M+ usuarios activos; la app de consumo integra 1.25%/lado para BTC/ETH mediante anulaciones de pares y 1.75%/lado para cualquier otra moneda (~2.5%/~3.5% de viaje redondo) — sin maker/taker, sin escalera, pricing_model: "spread" con la línea base del spread fijada en 0 bps, además de evidencia execution_quality (2.5% anunciado frente al medido con dinero real por TUM del 2.58%, solo ~0.08pp ocultos — la alineación más cercana entre lo publicado y lo medido de las seis plataformas probadas); SEPA/SEPA Instantánea GRATUITAS en ambas patas solo en EUR, incluidos los usuarios suizos + solo depósito con tarjeta/Apple/Google Pay del 2.49%, sin vía GBP/USD/CHF; retiros on-chain de BTC y ETH oficialmente GRATUITOS con tarifa 0 (los costos de red son absorbidos por el grupo; mínimo 0.001 BTC, sin Lightning/Taproot; ETH solo en mainnet, sin L2); solo spot, sin futuros/margen; área de servicio EEE30+CH mediante region_allowed: ["EEA","CH"] (CH como nueva clave de región de miembro único) — el stack de spot del EEE ahora tiene 11 exchanges, el stack de CH 15, y GB está bloqueado (la brecha complementaria con Bitpanda); acciones/ETFs alemanes (€1.99/orden) y la comisión de staking del 27% no están modelados; invita a un amigo pero sin URL de afiliado, sin clase ccxt, por lo que la consulta de tarifas de cuenta no es compatible). Los enlaces de referido son opcionales por exchange — las herramientas comparan cada exchange con datos de tarifas y solo adjuntan referral_url / referral_discount cuando hay un enlace configurado (Kraken, Coinbase, Hyperliquid, BingX, Phemex, BloFin, Bitstamp, Bitvavo, Finst, Bitpanda y BISON no tienen ninguno). |
Entradas del modelo de tarifas
monthlyVolumeUsd/volume— resuelve el nivel VIP correcto según el exchange.tokenBalance(opcional) — tenencias de tokens nativos, con reglas de escalera específicas por exchange (verificadas contra las páginas oficiales de tarifas 2026-09):- Binance spot — compuerta AND: VIP1+ requiere el umbral de volumen y tenencias de BNB (VIP1 = $1M + 5 BNB … VIP9 = $4B + 5,500 BNB). Si se omite → se cotiza el nivel de volumen con un
tier_warning; si se pasa0→ el nivel se reduce y se cotiza correctamente. (Los futuros de Binance no tienen compuerta de tenencias). - Gate spot + futuros — doble vía OR: el nivel VIP es el mayor entre tu escalón de volumen de 30 días y tu escalón de tenencias de GT (VIP1 = $1M o 1,000 GT … VIP9 = $1B o 200,000 GT). GT solo puede subir el nivel, nunca bajarlo; los resultados incluyen una sugerencia de mejora
next_tier. Las tenencias de GT también desbloquean descuentos en el pago de tarifas (100/500/2000/20000 GT → 10/20/35/50%). - KuCoin spot + futuros — triple vía OR (v0.13): VIP0–VIP12, y el nivel es el mayor entre tu escalón de volumen spot de 30 días, tu escalón de volumen de futuros de 30 días (los umbrales de spot/futuros difieren y se aplican por producto), o tu escalón de tenencias de KCS (VIP1 = 1,000 KCS … VIP12 = 150,000 KCS). KCS solo mejora, nunca degrada; los resultados incluyen una sugerencia de mejora
next_tier/requires_kcs. Los símbolos spot de KuCoin se dividen en Clase A (principales de alta liquidez — la escalera cotizada), Clase B (exactamente 2× Clase A) y Clase C (exactamente 3×); los resultados spot llevan unspot_class_noteque recuerda al llamador verificar la clase del par. Nota de cumplimiento: KuCoin está filtrado paraUS,CN,HK,SG,TH. - Kraken spot + futuros — triple vía unificada de 17 niveles (v0.14): desde 2026-07-09, Kraken Pro aplica un nivel (Nivel 1–12, luego Pro 1–5) a ambos productos, determinado por el mayor de la vía de volumen spot de 30 días, la vía de volumen de futuros de 30 días (umbrales diferentes por producto), o activos en plataforma (AOP) en tiempo real pasados vía
accountAssetsUsd(Nivel 3 = $20k AOP … Nivel 9 = $1M … Pro 5 = $100M). Los Niveles 1–2 no tienen vía de activos — las tenencias comienzan en el Nivel 3. Spot va de 0.40%/0.80% en el Nivel 1 hasta 0%/0.05% en Pro 5; futuros van de 0.02%/0.05% hasta -0.006%/0.0125%, con reembolsos negativos de maker desde el Nivel 11. Kraken no tiene token nativo (por lo queuseTokennunca aplica) ni enlace de referido. Cada resultado de Kraken llevaexchange_notescon las advertencias de calificación (limitación de entrada de volumen único, calificación cruzada de futuros US/CA/NZ, precios de app de consumo vs Pro). Cumplimiento: Kraken atiende aUS(spot; perps regulados por CFTC de Kraken/Bitnomial en 47 estados),HK,JP,THy está bloqueado paraCNySG. - Coinbase spot — niveles solo por volumen (v0.19): Advanced Trade cotiza tasas puras de maker/taker del libro de órdenes que se actualizan cada hora sobre el volumen USD rodante de 30 días en todos los pares (Nivel 1 = 0.40%/0.60% … Nivel 2 = 0.25%/0.40% a $10k … Nivel 9 = 0%/0.04% a $400M). La calificación es solo por volumen — sin vía de tenencias, sin token nativo, por lo que
tokenBalance/useTokennunca aplican yaccountAssetsUsdse ignora. Coinbase es un exchange solo de spot: se excluye automáticamente de las comparaciones de tarifas de futuros y de las consultas de funding en vivo (los perps minoristas nano de BTC/ETH no se modelan). El costo de ejecución spot usa una línea base típica de spread completo de 2.0 bps (el modo en vivo recorre el librocoinbaseexchange); las rutas de retiro cubren BTC / ETH / USDT (ERC-20, Base, Solana) / USDC (Base gratis, ERC-20) con notas dinámicas de tarifas basadas en gas. Cumplimiento: se sirve a residentes deUSySG, bloqueado paraCN,HK,TH,JP. - Hyperliquid spot + futuros — niveles de volumen de 14 días + descuento por HYPE en staking (v0.20): el primer exchange DEX — un libro de órdenes L1 completamente en cadena (HyperCore) con cero gas de trading, perps con margen en USDC y un libro spot cotizado en USDC (los depósitos llegan vía Circle CCTP, mínimo 5 USDC). Los niveles se actualizan diariamente sobre una ventana de volumen ponderado rodante de 14 días (el volumen spot cuenta 2× — no la ventana de 30 días que usan otros exchanges, por lo que el nivel real de un trader de ritmo constante puede estar un escalón más abajo): perps 0.045%/0.015% en el Nivel 0 hasta 0.024%/0% en el Nivel 6 ($7B), spot 0.070%/0.040% hasta 0.025%/0%; el maker es cero plano (no negativo) desde el Nivel 4. La calificación es solo por volumen — tener HYPE nunca califica un nivel. La escalera de HYPE en staking (10/100/1k/10k/100k/500k HYPE → 5/10/15/20/30/40% de descuento en todas las tarifas de maker+taker, spot y perps) se acumula multiplicativamente con el nivel de volumen; pasa
useToken+tokenBalance= la cantidad en staking (simplemente tener HYPE no da nada). El funding se liquida cada hora — el 0.00125%/1h incluido equivale al mismo promedio neutral de 0.01%/8h que los exchanges CEX, y el modo en vivo es compatible. Retiros: una sola ruta plana de ~1 USDC a Arbitrum One / 22+ cadenas CCTP (solo USDC — sin ruta USDT; los depósitos son gratis). El spread típico de perps de BTC es 0.8 bps (línea base incluida; el modo en vivo recorre el librohyperliquid). Sin KYC, sin vías fiduciarias, sin enlace de referido. Cumplimiento: front-end de EE. UU. bloqueado geográficamente (lista restringida de ToS); accesible desdeCN,HK,SG,JP,TH. - BingX spot + futuros — escaleras del VIP Club con un escalón Elite solo por volumen (v0.21): escaleras de 8 escalones por producto (Regular → Elite → VIP1–5 → Supreme) sobre umbrales de volumen de 30 días que difieren entre spot y futuros. Futuros van de 0.020%/0.050% en Regular, 0.018%/0.045% en el escalón Elite ($5M, insertado 2026-06-26), hasta 0%/0.025% en Supreme ($500M); spot va de 0.10%/0.10% en Regular, 0.05%/0.08% en Elite ($0.5M), hasta 0.005%/0.02% en Supreme ($15M). La calificación es el mayor de tres vías — volumen spot de 30 días, volumen de futuros de Contrato Estándar de 30 días, o activos de cuenta del día anterior vía
accountAssetsUsd(futuros VIP1 = $50k … VIP5 = $3M; los niveles se actualizan diariamente a las 03:00 UTC+8). Los escalones Elite y Supreme son solo por volumen — los activos pueden elevarte a VIP1–VIP5 pero nunca a Elite o Supreme (una cuenta de $10B aún se limita a VIP5). VIP4/VIP5/Supreme además requieren que el volumen operado por API sea ≤20% del volumen total (el motor asume cumplimiento). El producto de copy-trading de Futuros Estándar solo de cierre (0.045% plano) no se modela — las escaleras cotizan el libro del Contrato Estándar. Sin token nativo (por lo queuseTokennunca aplica), sin enlace de referido, sin vías fiduciarias directas (solo pasarelas P2P/terceros). El funding se liquida cada 8h al promedio neutral estándar de 0.01% (modo en vivo compatible vía la clase ccxtbingx); el spread típico incluido de BTC es 4 bps. Los retiros cubren BTC / ETH / USDT / USDC en TRC-20/ERC-20/BEP20/Arbitrum/Optimism/Base/Polygon/Solana/TON/Aptos y más, con rutas pausadas marcadas por cadena (p. ej., USDC-TRC20, USDT Avalanche-C/opBNB). Cada resultado de BingX lleva seisexchange_notes(vías, escalones solo por volumen, regla de ratio API, exclusión de Futuros Estándar, sin token/referido, verificación de fuente). Cumplimiento: bloqueado paraUS,CA,GB,CN,HK,SGy — tras el acantilado post-MiCA (v0.41, la solicitud de la FMA austriaca sigue solo "avanzada"/no aprobada) — bloqueado en todo el EEE; se sirve enJP,TH,AU,BRy otros países no pertenecientes al EEE. - BloFin spot + futuros — escaleras de 6 niveles de triple vía OR (v0.37): BuildLight Future Limited (Islas Caimán/Islas Marshall), derivados en vivo desde enero de 2023, ~$1.2B/24h de facturación de perps (CoinGecko), custodia Fireblocks, ISO 27001, prueba de reservas 1:1 mensual; sin KYC requerido (límite de retiro no verificado de 20,000 USDT/día). Seis niveles por producto califican vía el mayor de tres vías — volumen de futuros de 30 días, volumen spot de 30 días, o activos de cuenta de instantánea diaria vía
accountAssetsUsd(los niveles se actualizan diariamente de 00:00–12:00 UTC): futuros Regular 0.020%/0.060% (<$10M de volumen y <$50k de activos), VIP1 0.006%/0.050% a $10M o $50k de activos (una vía de activos inusualmente barata), hasta VIP5 0%/0.035% a $500M/$3M; spot 0.10%/0.10% → VIP1 0.035%/0.06% a $1M/$50k → VIP5 0.01%/0.0325% a $8M/$3M. VIP4/VIP5 también requieren que ≥80% del volumen calificante sea no-API (se asume satisfecho, la advertencia se muestra en las notas). El únicomonthlyVolumeUsdse compara con los umbrales del propio producto consultado — la calificación cruzada de productos (volumen de futuros que eleva el nivel spot) no se modela. Sin token nativo (sinuseToken), sin enlace de referido del operador, sin vías fiduciarias directas (solo widgets de terceros Checkout.com/Simplex/Alchemy). El funding se liquida cada 8h (00/08/16 UTC) al promedio neutral de 0.01%; el spread típico incluido de perps de BTC es 3 bps. Los retiros son de costo de red dinámico transferido sin margen del exchange: BTC ~0.0002, USDT/USDC TRC-20 plano ~1, ETH ERC-20/L2 (Arbitrum/Optimism ~$0.5–2). Cumplimiento: bloqueado paraUS,CA,CN,SGy (sin autorización CASP de MiCA más allá del acantilado de derechos adquiridos del 2026-07-01) el EEE —DEestá explícitamente modelado como bloqueado; se sirve enHK,JP,TH,GB,BRy más de 150 otros países.
- Binance spot — compuerta AND: VIP1+ requiere el umbral de volumen y tenencias de BNB (VIP1 = $1M + 5 BNB … VIP9 = $4B + 5,500 BNB). Si se omite → se cotiza el nivel de volumen con un
- Bitstamp spot + futuros — escalera de 11 niveles solo por volumen en spot + perpetuos regulados solo para la UE con un filtro de producto por país y venue (v0.38): fundado en 2011 en Luxemburgo (el exchange más antiguo del modelo), adquirido por Robinhood en 2025 (~$200m); regulado bajo el pasaporte MiCA CASP de la UE (CSSF Luxemburgo), BitLicense de NYDFS de EE. UU. + más de 40 MTL estatales, FCA del Reino Unido, MAS de Singapur y registro canadiense — el venue ancla de cumplimiento del modelo. Las tarifas PRO/API de spot siguen una única pista de volumen en USD a 30 días sin pista por activo o token: 0.30%/0.40% por debajo de $10k → 0.20%/0.30% en $10k → 0.10%/0.20% en $100k → 0.00%/0.03% en ≥$1B (11 peldaños); la interfaz de consumo Basic cotiza precios basados en spread y no se modela, tampoco el nivel promocional gratuito de los primeros $1,000 ni el sub-esquema de mitad de tarifa para FX/stablecoin/USDT. Los futuros perpetuos regulados con margen en USD son un único nivel FLAT: −0.005% maker (un reembolso) / 0.015% taker, financiación peer-to-peer cada 8h (00:00/08:00/16:00 UTC) sin comisión de plataforma (promedio combinado 0.01%). Debido a que los perpetuos se ofrecen solo a residentes elegibles del EEE, Bitstamp se modela con un filtro por producto respaldado (desde v0.40) por una lista blanca de regiones positiva —
product_region_gates.bitstamp.futures = ["EEA"]contra la tabla de membresíaregions.EEA(los 30 estados del EEE: EU27 + Islandia/Liechtenstein/Noruega). El acceso a nivel de venue (spot) está abierto enUS,GB,CA,JP,SG,HK,TH,DEy el valor predeterminado general, yCNestá bloqueado a nivel de venue;futuresestá bloqueado por producto para TODA residencia fuera del EEE — mercados con clave explícita (US/GB/CA/JP/SG/HK/TH) y países no modelados enrutados a través dedefault(AU/BR/CH/TR/KR/MX/IN/…) por igual (las herramientas de trading devuelvenPRODUCT_BLOCKED_IN_COUNTRY, ycompare_countrieslo lista bajounsupported_product, noblocked); cada miembro del EEE enruta ambos productos. Esto reemplaza la clave predeterminada de lista negativa de v0.38, que abría en exceso los perpetuos a países no pertenecientes al EEE sin una entrada explícita. El filtrado de productos NO se aplica deliberadamente aget_withdrawal_fees,get_fiat_costniget_referral_link— un usuario de EE. UU. aún puede usar spot, retiros y rieles fiduciarios de Bitstamp. El fiduciario directo es profundo: ACH de EE. UU. gratis en ambas direcciones; depósitos SEPA EUR gratis / retiros a una tarifa plana de €3; SWIFT internacional USD/EUR/GBP 0.05% al entrar ($7.5 mínimo, $300 tope) / 0.1% al salir ($25 mínimo); tarjetas ~4% en USD/EUR/GBP. Los retiros son conservadores y con mucho ERC-20: BTC 0.0005 (sin Lightning), ETH 0.005 solo ERC-20 (sin L2), USDT una tarifa plana de 20 solo en ERC-20 (sin TRC-20/Solana — la ruta USDT más cara del modelo; USDT en sí no es negociable en el exchange dentro de la UE), USDC 4 ERC-20 (además de rutas Solana/Arbitrum/Polygon/Optimism/Avalanche/Stellar no modeladas individualmente). El spread típico combinado de pares principales de spot es de 2 pbs, a la par con Coinbase Advanced. Sin token nativo (sinuseToken), sin enlace de referido. - Bitvavo spot — escalera PRO de nueve peldaños por volumen en EUR + lista blanca de área de servicio a nivel de venue para el EEE (v0.42): fundado en 2018 en Ámsterdam; Bitvavo B.V. está registrado ante la AFM de los Países Bajos bajo MiCA como proveedor de servicios de criptoactivos (#41000010) y tiene pasaporte en todo el EEE (~4M+ usuarios, una participación dominante del volumen spot denominado en EUR). A diferencia de todos los filtros anteriores (prohibiciones negativas de
region_blockedo filtros de producto a nivel deproduct_region_gates), Bitvavo se modela con un filtro positivo de área de servicio a nivel de venue —region_allowed.bitvavo = ["EEA"]contraregions.EEA(30 estados): SOLO los residentes del EEE pueden incorporarse al venue, y cualquier otra residencia — mercados con clave explícita y países con clave predeterminada por igual, incluidosGB/CHatendidos en la realidad por entidades Bitvavo separadas que deliberadamente no se modelan — está bloqueada a nivel de venue (COUNTRY_BLOCKED); una coincidencia en la lista blanca también anula cualquier entrada obsoleta deallowedpor país. Precedencia de filtros por venue: prohibición deregion_blocked→blockedde país → coincidencia en lista blanca deregion_allowed(autorizar) → fallo en lista blanca (denegar) → enumeración deallowedpor país (vacío = abierto); país ausente permanece seguro por defecto. Las tarifas son el esquema de libro de órdenes PRO/API en una ÚNICA pista de volumen en EUR a 30 días (umbrales tratados como equivalentes en USD): nueve peldaños 0.15%/0.25% (<€100k) → 0.10%/0.20% → 0.08%/0.16% → 0.06%/0.12% → 0.05%/0.10% → 0.04%/0.08% → 0.04%/0.06% → 0.00%/0.05% → 0.00%/0.02% (≥€25M, principales); sin token nativo, sin pista de activos, y la interfaz de consumo Basic (precios con spread incorporado; un estudio TUM de 2026 midió ~0.08 pp de margen oculto) no se modela. Bitvavo es solo spot — no ofrece perpetuos, por lo que está ausente de toda pila de futuros/consulta de financiación y aparece comounsupported_product(noblocked) encompare_countriespara una persona de futuros del EEE; fuera del EEE esblocked. Los libros en EUR cotizan en EUR (no USDT) con el spread típico más ajustado del modelo: 1.0 pbs completo / 0.5 cruzado en principales (Kaiko 2026-05 midió 0.981 pbs, el más ajustado de cualquier venue europeo; las altcoins de cola larga son más amplias mediante multiplicadores por clase de par). Fiduciario: SEPA/SEPA Instant EUR gratis en ambas piernas (iDEAL y Bancontact usan SEPA; retiro en efectivo limitado a €25,000/día), tarjetas emitidas en la UE ~1% de depósito (fuentes de terceros abarcan 0.5–1.5%, punto medio modelado) con sin pierna de retiro con tarjeta; PayPal (~2%) se menciona pero no se modela; sin rieles USD/GBP. Retiros: BTC dinámico solo por costo de red, modelado en 0.00005 BTC (sin Lightning; una cotización atípica de 0.0000063 de un agregador se descartó) — cualquier otro activo (USDT/USDC/ETH/…) devuelvesupported: falseen lugar de una tarifa inventada. La consulta de tarifas de cuenta es compatible en spot mediante la clase ccxtbitvavo. - Finst spot — corretaje SOR de tarifa plana + lista blanca del EEE a nivel de venue (v0.43): fundado en 2022 en Ámsterdam por un equipo ex-DEGIRO (KvK 85668117); Finst B.V. tiene registro AFM MiCA CASP #41000015 (otorgado 2025-07) con pasaporte del EEE y atiende ~30 países europeos. Finst no es un venue de libro de órdenes: un corretaje de enrutamiento inteligente de órdenes que agrega liquidez externa (400+ mercados EUR/USDC) y publica un único cargo plano de 0.15% en cada compra/venta/swap/inversión automática — sin distinción maker/taker, sin escalera de volumen, sin mínimo, y afirma no tener margen de spread. El modelo por lo tanto lleva un único peldaño independiente del volumen (
tier: "Flat 0.15%", maker = taker = 0.15% en cada volumen; la auditoría de escalera monótona pasa trivialmente), con un proxy de spread de cohorte de 1.0 pbs completo / 0.5 pbs cruzado (no existe investigación de libro de órdenes para un venue SOR). El acceso usa el mismo filtro positivo a nivel de venue que Bitvavo —region_allowed.finst = ["EEA"]— por lo que solo los 30 estados del EEE cotizan el venue (la pila spot del EEE se convierte en 9: bitstamp, bitvavo, bybit, coinbase, finst, gate, hyperliquid, kraken, okx); cualquier otra residencia, incluidos GB/US/CH/JP/AU/BR, lo ve bloqueado/ausente a nivel de venue. Finst no ofrece derivados en absoluto —futures: []significa que no se activa ningún filtro de producto regulatorio (isVenueUsableForpermanece verdadero dentro del EEE, reflejando la semántica de Coinbase/Bitvavo) pero el venue nunca entra en una pila de precios de futuros;compare_countrieslo lista comounsupported_productpara una persona de futuros del EEE yblockedfuera del EEE. Fiduciario: una única ruta EUR SEPA (SEPA Instant/iDEAL/Bancontact) gratis en ambas piernas; sin ruta de tarjeta (una consulta explícita demethod: "card"devuelve el venue conavailable: false/ rutas vacías — permanece en el array de comparación para países del EEE pero nunca puede serbest), sin PayPal, sin USD/GBP. Retiros: el esquema oficial es una tarifa de red dinámica al costo más un cargo fijo de terceros de €2.50 por retiro de cripto;WithdrawalFeeno tiene campo de recargo y el esquema deliberadamente no se extiende, por lo que la ruta BTC se modela todo incluido como 0.000085 BTC / ≈$6.57 (≈0.00005 BTC ≈$3.86 de componente de red típico en la instantánea de $77,298 + €2.50 ≈$2.72 a 0.92 EUR/USD), con la rutanotedivulgando ambas partes; los otros 400+ mercados devuelvensupported: false. Los depósitos son gratuitos; líneas de producto no modeladas (Bundle 0.10%/mes de gestión, staking 25–45% de participación de tarifas, ventana gratuita de €10k/2 semanas para nuevos clientes) están fuera de alcance. Finst no expone una API de trading pública y ccxt 4.5.x no incluye una clasefinst, por lo queget_account_fee_tierdevuelveACCOUNT_FEES_UNSUPPORTED(la matriz omite deliberadamente el venue; la ruta de especificación faltante resuelve como no compatible) y no hay enlace de referido. - Bitpanda spot — corretaje de spread con prima incorporada + evidencia de ejecución medida vs. anunciada (v0.44): fundado en 2014 en Viena; Bitpanda GmbH tiene autorización BaFin MiCA CASP (2025-01-27) con pasaporte en los 30 estados del EEE, además de la licencia de la FMA austriaca, y atiende a Gran Bretaña a través de Bitpanda Broker UK Ltd registrada en la FCA (~7.4M usuarios). La aplicación de consumo NO es un venue de libro de órdenes: cotiza un único precio todo incluido con la tarifa incorporada como margen y sin línea de comisión separada. El esquema gana un tercer modelo de precios —
pricing_model: "spread"junto a"order_book"y"flat"— con un único peldaño independiente del volumen a 1.49% maker = taker para la mayoría de los activos; las anulaciones a nivel de par aplican 0.99% por lado a BTC y los principales pares de stablecoin (BTC/EUR, BTC/GBP, BTC/USDC, BTC/USDT y los cruces de stablecoin EUR/GBP) mientras que las alts genéricas mantienen 1.49%; la banda oficial de 2.49% para activos con capitalización de mercado inferior a €100M y la banda de 1.99% del índice de cripto se divulgan en notas (no como peldaños individuales), al igual que el producto de margen 10x de la aplicación de consumo (no modelado). Debido a que el margen YA ES un costo de cruce de spread,spread_baseline.bitpandase fija en 0 pbs completo/cruzado ygetSpreadEstimateretorna temprano 0 — el guardián anti-doble conteo que evita que la prima de 1.49% reaparezca como una línea deannual_spread_cost. Un nuevo objetoexecution_qualityen la especificación de tarifas del venue lleva evidencia independiente de dinero real:advertised_roundtrip_pct: 2.98vs. la media medida por TUM de 6.23% en un viaje redondo de €100 (oct–nov 2025, 50 viajes redondos por plataforma) — 4.25 puntos porcentuales ocultos — replicado por la Frankfurt School of Finance en 2026-03 (432 viajes redondos en 9 plataformas); la narrativa se agrega automáticamente aexchange_notes. El acceso es un filtro positivo a nivel de venue —region_allowed.bitpanda = ["EEA","GB"]— donde GB se modela como una clave de región de miembro único (regions.GB = ["GB"]): la coincidencia en la lista blanca autoriza a GB a través de la precedencia de filtros existente sin cambio de código de filtro, mientras que US/CA/CN/CH y cualquier otra residencia está bloqueada a nivel de venue. La pila spot del EEE se convierte en 10 (bitstamp, bitpanda, bitvavo, bybit, coinbase, finst, gate, hyperliquid, kraken, okx) y GB es atendido (a diferencia de Bitvavo/Finst);futures: []hace que una persona de futuros veaunsupported_producten servicio yblockedfuera. El exchange profesional Bitpanda Fusion (liquidez externa agregada, 0.02–0.25%) es un producto separado y deliberadamente no modelado; acciones/ETFs/metales tokenizados están fuera de alcance. Fiduciario: desde 2026 todos los rieles de la aplicación de consumo son gratuitos — EUR SEPA/SEPA Instant, tarjetas Visa/Mastercard (solo depósito; la pierna de retiro se modela comonull), PayPal, Apple/Google Pay, y GBP FPS + tarjetas; no hay riel USD (una consulta USD sin país mantiene la fila conavailable: false/ rutas vacías). Los retiros pasan tarifas de red dinámicas sin margen, modelados solo para BTC 0.00000598 BTC ($0.4622 en la instantánea de $77,298) y ETH 0.0006 ETH ($1.5072) — el JSON deliberadamente no lleva campofee_usdpara que el motor recalcule desdeasset_prices_usd; cualquier otro activo devuelvesupported: false. No hay programa de referidos y ccxt 4.5.x no incluye una clasebitpanda, por lo queget_account_fee_tierdevuelveACCOUNT_FEES_UNSUPPORTED(la cobertura en vivo se mantiene en 13 de 17 venues). - BISON spot — principal spread brokerage con una alineación casi perfecta entre lo anunciado y lo medido + retiros on-chain gratuitos (v0.45): lanzado en 2019 en Stuttgart por Boerse Stuttgart Group (~1M+ de usuarios activos, 56 criptomonedas a partir de 2026-01); la contraparte de trading es EUWAX AG, que cotiza en su propio nombre como principal — las cotizaciones permanecen válidas aproximadamente 10 segundos y no hay libro de órdenes. La custodia está en Boerse Stuttgart Digital Custody GmbH (anteriormente blocknox), titular de la primera licencia BaFin MiCA de custodia/transferencia de cripto (2025-01-17, con pasaporte a 29 estados); el servicio de intercambio de cripto de EUWAX AG está autorizado por MiCA desde 2025-04-01 (pasaporte de 8 estados) con ejecución de órdenes añadida el 2025-11-21 (solo Alemania). El precio reutiliza el modelo de spread — un escalón único independiente del volumen al 1.75% maker = taker para todas las criptomonedas excepto BTC/ETH, con anulaciones por par al 1.25% por lado para BTC/EUR y ETH/EUR (las tasas flotan con las condiciones del mercado y el tamaño del ticket); el spread oficial es el único costo de trading y no hay comisión separada. Al igual que con Bitpanda,
spread_baseline.bisonestá fijado a 0 bps ygetSpreadEstimateretorna temprano 0 para que el spread nunca se cuente dos veces enannual_spread_cost. El bloqueexecution_qualitylleva el punto de referencia de transparencia del estudio:advertised_roundtrip_pct: 2.5vs TUM midió 2.58% — solo 0.08 puntos porcentuales no divulgados en 50 idas y vueltas estandarizadas de €100 durante 12 días de trading (oct–nov 2025, seis plataformas MiCA; BISON incluido en la muestra de seis plataformas), la alineación publicada-vs-medida más cercana de la muestra (Bitvavo −0.58% siguiente; Bitpanda 6.23%, Coinbase 7.49%). El acceso utiliza una puerta positiva a nivel de venue —region_allowed.bison = ["EEA","CH"]— con CH añadido como segunda clave de región de un solo miembro (regions.CH = ["CH"]): los 30 estados del EEE y Suiza cotizan el venue (DE/AT/CH comercializados activamente; otros estados del EEE atendidos pasivamente bajo libertades de tratado), mientras que GB está bloqueado en el venue — deliberadamente complementario a Bitpanda (EEE+GB) — junto con US/CA/JP/SG/AU/BR/CN/KR; el stack spot del EEE se convierte en 11, el stack de CH en 15, y los resultados de GB/US/JP nunca contienen BISON.futures: [](no se ofrecen futuros ni margen alojados en el exchange) →unsupported_producten servicio,blockedfuera. Fiat es solo EUR: SEPA/SEPA Instant gratis en ambas piernas, incluidos usuarios suizos que financian en EUR (modelado como rutas sin región controladas por la lista blanca del venue, ya que Suiza pertenece a SEPA pero no a la tabla de regiones de la UE), más depósitos instantáneos con tarjeta/Apple Pay/Google Pay al 2.49% (tarifa de socio Solaris SE/Deutsche Bank; la pierna de retiro esnull— sin retiro en efectivo con tarjeta); no hay vía GBP/USD/CHF (una consulta USD sin país mantiene la fila conavailable: false). Los retiros son oficialmente gratuitos sin línea de tarifa de red — los costos on-chain son absorbidos por EUWAX/el grupo (una política estructuralmente diferente del traspaso de Bitpanda) — modelado solo para BTC 0 BTC / $0 (mín 0.001; sin Lightning, sin pagos Taproot bc1p) y ETH 0 ETH / $0 (Ethereum solo mainnet, mín 0.01; sin Arbitrum/Base/Optimism/Polygon/BNB Chain L2), lo que convierte a BISON en elbestglobal para ambos activos; cualquier otro activo retornasupported: false, y la comparación de retiros deliberadamente no está controlada por país. La orden plana de €1.99 para acciones/ETFs alemanes (solo Alemania) y la comisión del 27% sobre recompensas de staking (ETH/SOL) están fuera de alcance. El programa invita-a-un-amigo (recompensas ETH en DE/AT/CH) no tiene URL de afiliado y ccxt 4.5.78 no incluye ninguna clasebison/euwax, por lo quegetReferralLinkretornaNO_REFERRAL_LINKyget_account_fee_tierretornaACCOUNT_FEES_UNSUPPORTED(la cobertura en vivo se mantiene en 13 de 18 venues). accountAssetsUsd(opcional, OKX / Bybit / Bitget / Kraken / BingX / BloFin) — activos totales de la cuenta en USD. El nivel VIP es el mayor entre tu escalón de volumen de 30 días y tu escalón de activos, tanto para spot como para futuros (p. ej., OKX VIP1 = $100k … VIP9 = $500M con rebates maker negativos; Bybit VIP4 = $1M; Bitget VIP1 = $30k; Kraken Tier 3 = $20k AOP … Pro 5 = $100M; BingX VIP1 = $50k … VIP5 = $3M; BloFin VIP1 = $50k … VIP5 = $3M según los umbrales propios de cada producto). Los activos solo pueden mejorar, nunca degradar; las filas solo de volumen (p. ej., Bybit Supreme, Kraken Tier 1–2, BingX Elite y Supreme) no califican vía activos; BloFin VIP4/VIP5 además requieren ≥80% de volumen no-API (el motor asume cumplimiento, advertencia enexchange_notes). Omitir el parámetro cotiza el nivel de volumen y retorna una sugerencia de mejora por ruta de activos (next_min_assets).pair(opcional, v0.12) — un par de trading comoBTC/USDT,BTC/FDUSDoBTCUSDT(los separadores se normalizan). Cuando el par tiene una promoción de tarifas conocida, las tarifas promocionales reemplazan las tarifas del nivel de cuenta y los resultados llevanpricing_basis: "pair"más unpair_note; de lo contrario, el precio se mantiene enaccount_tier. Promociones de par verificadas: MEXC — todos los pares spot 0% maker + 0% taker (programa de tarifa cero), más de 100 pares de futuros a 0/0 sujetos a cuotas por cuenta; Binance — pares FDUSD (BTC/ETH/BNB/DOGE/LINK/SOL/XRP) a 0% maker con taker basado en nivel, pares USDC a 0% maker / 0.095% taker; Bitget — USDC/USDT y USDGO/USDT a 0/0 (el volumen no cuenta para VIP); Bitpanda (v0.44) — la banda de prima incorporada de 0.99%/lado en BTC y pares principales de stablecoins frente al titular de 1.49% (una banda de precios de spread-broker, no una promoción; bandera no-promocional); Bison (v0.45) — la banda de 1.25%/lado en BTC/EUR y ETH/EUR frente al titular de 1.75% (mismo patrón de banda de spread no-promocional). Una anulación de par puede cubrir solo maker, solo taker, o ambos.makerShare(0-1, predeterminado 0) — fracción de volumen ejecutada como maker (órdenes límite). Tasa ponderada =maker × share + taker × (1-share). Los traders de órdenes límite deberían pasar 0.7-1.useToken— precios en descuentos de token nativo: BNB (25% spot / 10% futuros), GT (maker de futuros → 0 más descuento de 10-50% por nivel de tenencia contokenBalance), MX (20% spot + futuros; 500+ MX eleva el descuento al 50% — se aplica el mayor, no se acumulan), BGB (20% spot + futuros), KCS (20% spot Clase A/B/C + futuros; en VIP8+ el maker ya es 0% así que solo el lado taker se beneficia), OKB (incorporado en los niveles de OKX), y HYPE en staking en Hyperliquid (10/100/1k/10k/100k/500k en staking → 5/10/15/20/30/40% de descuento en todas las tarifas maker+taker, acumulándose multiplicativamente con el nivel de volumen;tokenBalancedebe ser la cantidad en staking — solo mantener no da nada).- Tarifas maker negativas — los makers de OKX VIP7+ son negativos (spot/futuros, hasta -0.0075%) y los makers de futuros de Kraken son negativos desde Tier 11 (hasta -0.006% en Pro 5), es decir, rebates maker pagados por el exchange. Pasan sin cambios a través de descuentos de referidos/token (un descuento no puede reducir un rebate), aparecen como estimaciones de tarifa negativas y se clasifican antes que las tarifas pagadas.
holdingHours(futuros) — exposición mensual de posición en horas; costo de funding a la tasa de funding de cada exchange (intervalo de 8h para la mayoría de los venues; Hyperliquid liquida cada hora — su 0.00125%/1h incluido equivale al promedio neutral de CEX de 0.01%/8h).calculate_annual_costlo anualiza ×12. Cada cifra de funding llevafunding_source(bundledolive) másfunding_rate_ts/funding_paircuando se usaron datos en vivo.fundingMode+fundingPair(opcional, v0.15) — entradas de funding paracalculate_savings,compare_total_cost,recommend_exchangeycalculate_annual_cost.fundingMode: "bundled"(predeterminado) usa el promedio de largo plazo fuera de línea (0.01%/8h para BTC/USDT — instantáneo y determinista).fundingMode: "live"obtiene la tasa de funding actual del venue en tiempo real vía ccxt parafundingPair(predeterminadoBTC/USDT; aceptaETH/USDT,SOL-USDT,BTCUSD…). Cada exchange se obtiene de forma independiente con un tiempo de espera de 8s; cualquier venue que falle (tiempo de espera, bloqueo geográfico, par faltante) cae de forma transparente a su promedio incluido y se lista enfailurespara la herramienta dedicada. Los resultados se almacenan en caché TTL en memoria durante 5 minutos (el funding solo se liquida cada pocas horas). Las tasas en vivo negativas pasan sin cambios — los longs entonces reciben pago. La herramienta independienteget_funding_ratesaceptafundingMode,fundingPair,exchanges: [...]opcional ycountryopcional para filtrar.tradeSizeUsd+spreadMode+spreadPair+side(v0.16) — entradas de costo de ejecución paracalculate_savings,compare_total_cost,recommend_exchangeycalculate_annual_cost. Cuando se pasatradeSizeUsd(un tamaño de orden marketable único, p. ej.,10000), cada resultado de costo añade el costo de cruce bid-ask de una vía (la mitad del spread completo típico) para esa orden, etiquetado conspread_source.spreadMode: "bundled"(predeterminado) lo cotiza desde líneas base de venue fuera de línea escaladas por clase de par — principales (BTC/ETH) ×1.0, grandes capitalizaciones (SOL/XRP/DOGE … 27 nombres) ×1.5, otras alts ×3 — con deslizamiento modelado cero.spreadMode: "live"obtiene el libro de órdenes top-100 real de cada venue vía ccxt, resuelve automáticamente el mercado spot o swap lineal correcto (el spot de KuCoin usa la clasekucoin, nokucoinfutures), y recorre la profundidad con VWAP paraside: "buy" | "sell"para medir el deslizamiento condicionado al tamaño más allá del mejor toque, máslevels_consumed,available_depth_usdyfully_filled. Las fallas por venue (tiempo de espera, bloqueo geográfico, mercado faltante) caen a la línea base incluida y se listan enfailures; cuando la profundidad visible es menor que la orden, el valor medido se mantiene con una entradawarnings(el impacto más allá de la profundidad no se extrapola). Los recorridos de libro se almacenan en caché TTL durante 30 segundos.compare_total_costpliega spread + deslizamiento entotal_cost;calculate_annual_costlos escala con el nocional anual negociado (mensual ×12, asumiendo flujo dividido en órdenes de tamañotradeSizeUsd);recommend_exchangecombina la ejecución en la puntuación (tarifa 70% / funding 15% / spread 15% cuando ambos aplican). La herramienta independienteget_execution_costaceptatradeSizeUsd(predeterminado $10,000),pair,purpose,side,spreadMode,exchanges: [...]opcional ycountryopcional.- Entradas de rampa fiat on/off (v0.17,
get_fiat_cost) —direction: "deposit" | "withdraw"(depósito predeterminado),amounten fiat oamountUsd(convertido a la tasa de visualización estática),currency: "USD" | "EUR" | "GBP" | "BRL"(predeterminado USD),countryresidencia ISO (impulsa el filtrado de cumplimiento y la disponibilidad de vías regionales — p. ej., la tarjeta emitida en la UE de Bybit al 1.1% frente al 3.05% en otros lugares, ACH solo EE. UU.), filtromethod: "card" | "ach" | "sepa" | "fps" | "wire" | "swift" | "pix"opcional yexchanges: [...]opcional. Solo se modelan vías directas operadas por el exchange — las pasarelas de tarjetas de terceros (Banxa/Simplex/MoonPay/Zen, típicamente 1.99–5.5% al pagar), P2P y cargos del lado bancario se excluyen por diseño (varían por usuario y se mencionan enadvice/notes). Las tarifas admiten porcentaje + fijo con pisos mín/máx (p. ej., Bybit SEPA 0.19% mín €1, Binance SWIFT fijo 5 con tope de 25). Los resultados devuelven tarifa por vía, equivalente en USD, porcentaje efectivo, monto neto, ETA, vía más barata por venue, unbestgeneral,saving_vs_worst_usdy advertencias (venues sin vía calificada, país faltante para vías bloqueadas por región). Las tarjetas van de 1.1–4.5% entre venues, mientras que las vías bancarias ACH/SEPA/FPS/PIX son gratuitas o casi gratuitas en casi todos lados. - Tramos fiat en las herramientas de costo total (v0.26) —
compare_total_costycalculate_annual_costahora aceptanfiatCurrency,fiatDepositAmountUsd+fiatDepositsPerYear,fiatCashoutAmountUsd+fiatCashoutsPerYear, yfiatMethodopcional, e incorporan la tarifa directa de rail más barata × recuento anual en el total comofiat_deposit_cost/fiat_cashout_cost(herramientas anuales:annual_fiat_deposit_cost/annual_fiat_cashout_cost). Esto calcula el precio de la pila COMPLETA que un trader minorista realmente paga — comisiones de trading + funding + spread/deslizamiento + retiros on-chain + depósitos y retiros bancarios/tarjeta — en una sola llamada. Un rail gratuito pero real devuelve un costo de0confiat_deposit_available: true; un exchange sin rail directo (p. ej. Hyperliquid/BingX/Phemex/BloFin) devuelve el tramo excluido (0) confiat_deposit_available: false, nunca tratado silenciosamente como gratuito. Cuando no se pasa ningún hábito fiat, las claves se omiten y el comportamiento no cambia. - Recomendación consciente de fiat (v0.27) —
recommend_exchangetoma los mismos seis parámetros de hábito fiat y une los costos anualizados de rail directo a la puntuación. El peso fiat está impulsado por datos según la dispersión de costos:fiatWeight = 0.2 + 0.3 × dispFiat / (dispFee + dispFiat)donde las dispersiones son los rangos de costos anualizados entre exchanges, por lo que sube de 0.2 a 0.5 exactamente cuando las diferencias de tarifas fiat superan las diferencias de tarifas de trading (pequeños on-rampers mensuales) y se mantiene en 0.2 para traders de alto volumen; el peso restante se redistribuye entre fee/funding/spread. Un exchange sin rail obtiene cero en esa dirección (los rails gratuitos pero reales obtienen 100) y recibe un tradeoff explícito que nombra la ruta real de terceros/P2P (típicamente 1.99–5.5%); el consejo también nombra el exchange fiat más barato y el delta anual cuando el ganador cobra más por el mismo hábito exacto. Sin los parámetros, la puntuación es byte-idéntica a la tabla de pesos previa a v0.27. Ejemplo de cambio (v0.41 EEA): DE spot $500/mes + 12×€1,000 SEPA — sin el hábito, Hyperliquid sin rail gana 100 en fees entre exchanges utilizables en EEA; con el hábito, OKX (SEPA gratuito en ambos tramos) gana 92.2 vs Hyperliquid 62.7 (Binance/MEXC ya no son utilizables en EEA). withdrawalAsset+withdrawalNetwork(cobertura de red v0.18) — añade tarifas de retiro de red. La tabla incluida cubre 16 activos (BTC, ETH, SOL, XRP, DOGE, LTC, TRX, ADA, AVAX, DOT, LINK, BCH, TON, POL, USDT, USDC) en TRC-20, ERC-20, BEP20, Arbitrum, Optimism, Base, Polygon, Avalanche C, Solana, TON, Polkadot/AssetHub y la cadena nativa de cada activo en los 18 exchanges (la disponibilidad de rutas varía por exchange; Coinbase, BingX, BloFin y Bitstamp cubren solo BTC / ETH / USDT / USDC; Bitvavo (v0.42) modela BTC dinámico solo a 0.00005, marcando todos los demás activos como no soportados; Finst (v0.43) modela BTC solo a 0.000085 todo incluido (tarifa de red dinámica + cargo fijo de terceros de €2.50 combinados, divulgado por nota de ruta), todos los demás activos no soportados; Bitpanda (v0.44) modela BTC dinámico de paso 0.00000598 ($0.4622) y ETH 0.0006 ($1.5072) solo (sinfee_usdalmacenado — recalculado desde la instantánea de precios), todos los demás activos no soportados; Bison (v0.45) modela BTC y ETH con tarifa 0 — el grupo absorbe los costos de red on-chain, convirtiéndolo en elbestglobal para ambos activos (BTC mainnet mín. 0.001; ETH mainnet solo, mín. 0.01, sin L2s), todos los demás activos no soportados; Hyperliquid lista una única ruta plana de ~1 USDC a Arbitrum / 22+ cadenas CCTP; BloFin cotiza paso de costo de red dinámico con stablecoins TRC-20 a ~1). Las tarifas en unidades nativas se convierten a USD desde una instantánea de precios del 2026-09-12 (asset_prices_usd); las rutas pausadas en ago–sep 2026 (p. ej. billeteras TON en cinco exchanges, USDC-TRC20 en Gate/KuCoin/BingX, cadena de relevo DOT) llevansuspended: truey nunca se tratan como abiertas. Cuando no se pasa ninguna red, se calcula automáticamente el precio de la ruta abierta más barata del exchange; la entrada de red acepta alias (trc20,erc20,arb,matic,sol…).calculate_annual_costmultiplica la tarifa por evento porwithdrawalsPerYear. La herramienta independienteget_withdrawal_fees(asset?, network?, country?, exchanges?)(totalmente offline) devuelve la comparación completa por ruta conbest,saving_vs_worst_usdy advertencias; códigos de error:INVALID_ASSET,INVALID_NETWORK,UNKNOWN_EXCHANGE.- Presets de persona de trader (v0.22,
analyze_persona) — siete arquetipos anclados en investigación endata/personas.jsonagrupan un perfil conductual completo: mercado (spot/futures), volumen mensual, cuota de maker, horas mensuales de tenencia, tamaño típico de clip (tradeSizeUsd), activo de retiro + recuento anual, y depósitos/retiros fiat anuales (moneda + hábito de rail). Las personas son casual_buyer (comprador pequeño financiado con tarjeta — las tarifas de tarjeta dominan), hodler_accumulator (DCA mensual + retiros BTC a almacenamiento en frío), active_spot_trader, swing_futures_trader (el funding es la línea más grande), day_scalper (alto volumen, 90% maker), vip_institutional ($30M/mes, $3M en activos, clips de $100k → se aconseja spread en vivo), y dex_native (flujos USDC on-chain, sin necesidades KYC/fiat — los rails faltantes se marcan, no se ponen a cero). Cada persona ejecuta la misma pila anualizada que las otras herramientas calculan individualmente — tarifas de trading + funding + ejecución + retiros por evento + fiat — devuelve elcost_mix_pctpor exchange,component_leaders, unbestprincipal más unbest_completeseparado: el exchange más barato donde cada tramo de la persona está realmente calculado (p. ej. Hyperliquid puede encabezar para una persona de futuros pero carecer de rails fiat o una ruta USDT/BTC — se marca conwithdrawal_unsupported/disponibilidad fiat y la selección realista de todos los tramos se muestra con su costo extra). Cada preset es un valor predeterminado que se puede anular mediantemonthlyVolumeUsd,makerShare,useToken,tokenBalance,accountAssetsUsd,holdingHours,tradeSizeUsd,pair,currency, más anulaciones en vivo defundingMode/fundingPairyspreadMode/spreadPair; las personas se validan contra un esquema y se versionan como cualquier otro archivo de datos. currency— moneda de visualizaciónUSD(predeterminada),EUR,JPY,CNH,GBP. Solo tasas de visualización estáticas; todas las matemáticas permanecen basadas en USD.language(v0.30, extendido en v0.31/v0.36) — idioma de salida para la capa narrativa encompare_exchange_fees,compare_total_cost,calculate_savings,calculate_annual_cost,get_fiat_cost,get_withdrawal_fees,recommend_exchange,analyze_persona,compare_personas,analyze_token_discount,volume_what_ifycompare_countries:"en"(predeterminado) o"zh". Todos los consejos / advertencias / tradeoffs / razones / advertencias de nivel se renderizan desde un catálogo de plantillas bilingüe centralizado (src/i18n.ts); la salida en inglés es byte-idéntica a la previa a v0.30, y los números, nombres de campos, códigos de error y notas orientadas a máquinas permanecen independientes del idioma, por lo que cambiar el idioma nunca altera el esquema de datos.format/tableMetric(v0.36, solo las tres herramientas de matriz) —compare_personas,volume_what_ifycompare_countriesaceptanformat: "json"(predeterminado) |"markdown"|"csv"|"both". Con cualquier formato no JSON, el resultado gana un objetorendered: { metric, markdown?, csv? }: una tabla titulada y lista para pegar en inglés o chino segúnlanguage; matriz de personas = exchanges × personas con costo anual todo incluido (las celdas sin rail llevan un marcador†solo en markdown, CSV permanece numérico); what-if = filas de volumen mensual × exchanges contableMetric: "weighted_fee_pct"(4 dp, predeterminado) |"annual_fee_usd"|"tier"; países = exchanges × países contableMetric: "availability"(✓/⛔/–, predeterminado; CSV usa los tokens crudosavailable/blocked/unsupported_product) |"cost". CSV es RFC 4180 (los campos con comas/comillas/nuevas líneas se citan,"se duplica, terminaciones de línea CRLF); los volúmenes en markdown son compactos ($100K/$3.5M) mientras que CSV mantiene números crudos. Los valores inválidos devuelvenINVALID_INPUT; la carga útil JSON en sí no cambia en ningún formato.- Cada resultado de tarifa lleva un sello de frescura
data_as_of, untier_warningpara la puerta AND de BNB y las rutas de actualización OR de GT/KCS/activos de cuenta/AOP, y unfreshness_warninguna vez que los datos incluidos tienen más de 3 meses desdelast_verified. Los resultados de Kraken además llevanexchange_notes— advertencias de calificación específicas del exchange (seguimiento de nivel unificado, limitaciones regionales de futuros, precios Pro vs app de consumidor).
Instalación
Uso en Claude Desktop / Cursor / cualquier cliente MCP
Agrega a la configuración MCP de tu cliente (ej. claude_desktop_config.json):
{
"mcpServers": {
"fee-optimizer-mcp": {
"command": "npx",
"args": ["-y", "fee-optimizer-mcp"]
}
}
}
Ejecutar localmente desde el código fuente
git clone https://github.com/gaokai258/fee-optimizer-mcp.git
cd fee-optimizer-mcp
npm install
npm run build
npm start # starts stdio server (default)
Transporte HTTP Streamable (v0.29)
Además de stdio, el servidor funciona como un endpoint MCP Streamable HTTP sin estado (especificación MCP 2025-03-26) — se crea un servidor MCP aislado por cada POST, por lo que las solicitudes son seguras para concurrencia y escalables horizontalmente sin sesiones fijas; las respuestas son application/json simple, no se emite Mcp-Session-Id, y SSE GET/DELETE devuelven 405 por diseño.
# CLI flags
node dist/index.js --transport http --host 0.0.0.0 --port 3333 --endpoint /mcp
# or
npm run start:http
# env overrides: FEE_MCP_TRANSPORT=http, FEE_MCP_HTTP_HOST, FEE_MCP_HTTP_PORT,
# FEE_MCP_HTTP_ENDPOINT (HOST/PORT also accepted)
node dist/index.js --help # all flags
POST /mcp— JSON-RPC (mensaje único o por lotes); requiereAccept: application/json, text/event-streamyContent-Type: application/json. Debido a que el servicio es completamente sin estado, funciona un POSTtools/callsimple sin handshake, y los clientes estrictos también pueden enviarinitializeen su propio POST primero.GET /health— sonda de balanceador de carga:{ status, service, version, transport, mode, endpoint, auth_required, rate_limit_per_min, uptime_s }(sin autenticación necesaria incluso cuando la autenticación bearer está habilitada).- Rutas desconocidas →
404; no-POST en/mcp→405conAllow: POST;Acceptincorrecto →406.
Endurecimiento de alojamiento público (v0.32)
Todas las protecciones son opt-in mediante variables de entorno — el comportamiento local/de desarrollo no cambia. Coloca un proxy inverso con terminación TLS (nginx/Caddy/Cloudflare) al frente al enlazar 0.0.0.0.
| Variable de entorno | Efecto |
|---|---|
FEE_MCP_BEARER_TOKEN=<secret> | Cada POST MCP debe enviar Authorization: Bearer <secret> (comparación de tiempo constante). Ausente/incorrecto → 401 + WWW-Authenticate (código JSON-RPC -32002). /health permanece abierto para sondas. |
FEE_MCP_RATE_LIMIT_PER_MIN=<n> | Límite de ventana fija por IP de cliente en POSTs MCP; exceso → 429 + Retry-After (-32001). Los intentos no autenticados también cuentan, por lo que las inundaciones sin token no pueden evitarlo. 0/sin definir = ilimitado. |
FEE_MCP_ACCESS_LOG=1 | Una línea JSON estructurada por solicitud en stdout: ts, ip, method, path, status, duration_ms, auth (none/ok/fail), rate_limited, user_agent. |
FEE_MCP_TRUST_PROXY=0 | Ignorar X-Forwarded-For (establecer esto solo cuando NO esté detrás de un proxy inverso; por defecto confía en el primer salto XFF). |
Configuración de cliente MCP remoto (HTTP con token bearer):
{
"mcpServers": {
"fee-optimizer-mcp": {
"type": "http",
"url": "https://your-host/mcp",
"headers": { "Authorization": "Bearer <secret>" }
}
}
}
Docker
docker build -t fee-optimizer-mcp . # or: npm run docker:build
docker run -d --name fee-mcp -p 3333:3333 \
-e FEE_MCP_BEARER_TOKEN=$(openssl rand -hex 32) \
-e FEE_MCP_RATE_LIMIT_PER_MIN=120 \
-e FEE_MCP_ACCESS_LOG=1 \
fee-optimizer-mcp # or: npm run docker:run
curl -s http://localhost:3333/health
La imagen de múltiples etapas se ejecuta en node:22-alpine como usuario no root, incluye solo dependencias de producción + dist/ + data/, e incluye un /health HEALTHCHECK.
Inspeccionar con MCP Inspector
npm run inspector # stdio
npx @modelcontextprotocol/inspector --transport http http://127.0.0.1:3333/mcp # HTTP
Referencia de herramientas
-
compare_exchange_fees(purpose, country, monthlyVolumeUsd?, useToken?, makerShare?, tokenBalance?, accountAssetsUsd?, pair?)— Comparación de tablas de tarifas ordenadas por tasa efectiva ponderada. -
get_referral_link(exchange, country)— Resuelve una URL de referencia; genera errores conCOUNTRY_BLOCKED/UNKNOWN_EXCHANGE/NO_REFERRAL_LINKcuando corresponde. -
calculate_savings(exchange, volume, type, country, useToken?, holdingHours?, makerShare?, currency?, tokenBalance?, accountAssetsUsd?, pair?, fundingMode?, fundingPair?, tradeSizeUsd?, spreadMode?, spreadPair?, side?)— Desglose de ahorros vs. la tarifa del nivel base; contradeSizeUsdtambién devuelvespread_cost/slippage_cost/spread_source/spread_ts/spread_pair. -
compare_total_cost(purpose, country, volume, holdingHours?, useToken?, withdrawalAsset?, withdrawalNetwork?, makerShare?, currency?, tokenBalance?, accountAssetsUsd?, pair?, fundingMode?, fundingPair?, tradeSizeUsd?, spreadMode?, spreadPair?, side?, fiatCurrency?, fiatDepositAmountUsd?, fiatDepositsPerYear?, fiatCashoutAmountUsd?, fiatCashoutsPerYear?, fiatMethod?)— Clasificación de costo total; contradeSizeUsd, el spread y el slippage se incorporan entotal_cost; con los parámetros de hábito fiduciario v0.26, las tarifas anualizadas de depósito/retiro por vía directa también se incorporan (los lugares sin vía se marcan, la pata se excluye). -
recommend_exchange(purpose, country, volume, makerShare?, useToken?, holdingHours?, currency?, tokenBalance?, accountAssetsUsd?, pair?, fundingMode?, fundingPair?, tradeSizeUsd?, spreadMode?, spreadPair?, side?, fiatCurrency?, fiatDepositAmountUsd?, fiatDepositsPerYear?, fiatCashoutAmountUsd?, fiatCashoutsPerYear?, fiatMethod?)— Mejor exchange con puntuación (mezcla de tarifas/financiamiento/spread cuando la ejecución tiene precio), razones, advertencias de nivel de tenencia, compensaciones, consejos accionables y alternativas. v0.27: cuando se pasa el hábito fiduciario, los costos anualizados de depósito/retiro por vía directa se unen a la puntuación con un peso fiduciario impulsado por dispersión (0.2→0.5) — cuanto más dominan las diferencias de tarifas fiduciarias entre lugares las diferencias de tarifas de trading del año (típico para compradores mensuales pequeños), más decide lo fiduciario; un lugar sin vía directa obtiene cero en esa pata y recibe una compensación explícita en lugar de ganar por un costo sin precio. Ejemplo: un comprador alemán de DCA SEPA de €1,000/mes que opera solo $500/mes recibe la recomendación de Binance (SEPA gratis) sobre MEXC nominalmente más barato en tarifas (~$16/año en tarifas SEPA), mientras que un operador de $100k/mes aún se clasifica por tarifas de trading. -
calculate_annual_cost(exchange, purpose, country, monthlyVolumeUsd, makerShare?, useToken?, tokenBalance?, accountAssetsUsd?, holdingHours?, withdrawalAsset?, withdrawalNetwork?, withdrawalsPerYear?, currency?, pair?, fundingMode?, fundingPair?, tradeSizeUsd?, spreadMode?, spreadPair?, side?, fiatCurrency?, fiatDepositAmountUsd?, fiatDepositsPerYear?, fiatCashoutAmountUsd?, fiatCashoutsPerYear?, fiatMethod?)— Tarifas de trading anualizadas (mensual ×12) + financiamiento (exposición mensual ×12) + spread/slippage (nocional anual operado × bps, cuando se datradeSizeUsd) + retiros (por evento × conteo anual) + depósitos/retiros fiduciarios directos v0.26 (vía más barata × conteo anual, pata marcada y excluida cuando el lugar no tiene vía), más un bloqueupgrade: el siguiente nivel VIP, cómo calificar (volumen / activos de cuenta OKX-Bybit-Bitget / Kraken AOP / Gate GT / KuCoin KCS / Binance BNB), y ahorro anual estimado. -
get_data_sources()— Informe de procedencia; sin parámetros. Devuelve los 15 archivos de paquete conlast_verified, lista completa de fuentes (URLs oficiales y/o notas de metodología), y frescura por archivo v0.33: cada archivo llevamonths_behindyis_stale(más de 3 meses o no analizable), másstale_after_monthsystale_files: [...]a nivel de informe para que un agente pueda ver inmediatamente qué paquete necesita re-verificación;data_as_ofsigue siendo el sello más antiguo entre archivos. -
get_funding_rates(fundingMode?, fundingPair?, exchanges?, country?)— Tabla de tasas de financiamiento para un par perpetuo. El modo empaquetado es offline; el modo en vivo obtiene tasas en tiempo real lugar por lugar y devuelve{ pair, mode, fetched_at, data_as_of, rates: [{ exchange, rate_pct, interval_hours, source, funding_timestamp?, note? }], failures: [{ exchange, error, fallback: "bundled" }] }. Las cuatro herramientas de costo también aceptanfundingMode?yfundingPair?. -
get_fiat_cost(direction?, amount? | amountUsd?, currency?, country?, method?, exchanges?)— Tabla de costos de entrada/salida fiduciaria directa; completamente offline. Devuelve{ direction, currency, amount, amount_usd, fx_rate, fetched_at, data_as_of, exchanges: [{ exchange, available, routes: [{ method, region?, fee, fee_usd, effective_pct, net, eta, note? }], cheapest_method?, cheapest_fee_usd?, notes? }], best: { exchange, method, fee, fee_usd, effective_pct, net } | null, saving_vs_worst_usd?, advice, warnings? }. Códigos de error:INVALID_CURRENCY,INVALID_AMOUNT,MISSING_FX_RATE,UNKNOWN_EXCHANGE. -
get_execution_cost(tradeSizeUsd?, pair?, purpose?, side?, spreadMode?, exchanges?, country?)— Tabla de costos de ejecución taker de un solo sentido. El modo empaquetado es offline; el modo en vivo recorre VWAP el libro real top-100 de cada lugar y devuelve{ pair, purpose, side, trade_size_usd, mode, fetched_at, data_as_of, costs: [{ exchange, spread_bps, crossing_bps, slippage_bps, total_bps, cost_usd, levels_consumed?, fully_filled?, available_depth_usd?, source, book_timestamp?, symbol?, pair_class, note? }], failures: [{ exchange, error, fallback: "bundled" }], warnings?: [{ exchange, message }] }. Las cuatro herramientas de costo también aceptantradeSizeUsd?,spreadMode?,spreadPair?,side?. -
get_withdrawal_fees(asset?, network?, country?, exchanges?)— Comparación de tarifas de retiro on-chain; completamente offline.assetpor defecto esUSDT;networkacepta nombres canónicos y alias (trc20,erc20,bsc,arb,op,matic,c-chain,sol,assethub…); sin red, se devuelve cada ruta por lugar y se clasifica por la más barata abierta. Devuelve{ asset, network?, asset_price_usd?, fetched_at, data_as_of, exchanges: [{ exchange, supported, networks: [{ network, fee, fee_usd, available, note? }], cheapest_network?, cheapest_fee_usd? }], best: { exchange, network, fee, fee_usd } | null, saving_vs_worst_usd?, advice, warnings? }. Las rutas suspendidas permanecen ennetworksconavailable: false; los lugares sin ruta para el activo/red devuelvensupported: falsey una listanetworksvacía. Códigos de error:INVALID_ASSET,INVALID_NETWORK,UNKNOWN_EXCHANGE. -
analyze_persona(persona, country, monthlyVolumeUsd?, makerShare?, useToken?, tokenBalance?, accountAssetsUsd?, holdingHours?, tradeSizeUsd?, pair?, currency?, fundingMode?, fundingPair?, spreadMode?, spreadPair?, side?)— Análisis anual de costo total para uno de los siete personajes de trader anclados en investigación. Completamente offline en modo predeterminado. Devuelve{ persona, country, purpose, inputs, currency, ranking: [{ exchange, tier, annual_trading_fee, annual_funding_cost, annual_execution_cost, annual_withdrawal_cost, annual_fiat_deposit_cost?, annual_fiat_cashout_cost?, annual_all_in, cost_mix_pct, withdrawal_unsupported?, fiat_deposit_available?, fiat_cashout_available?, pricing_basis, tier_warning?, referral_url?, exchange_notes? }], best: { exchange, annual_all_in, runner_up_exchange, saving_vs_runner_up, reasons, tradeoffs } | null, best_complete: { exchange, annual_all_in, extra_vs_winner } | null, component_leaders, warnings, advice, data_as_of, data_sources }. Las vías/rutas faltantes se marcan y EXCLUYEN de la fila (nunca se cuentan como $0);INVALID_INPUTpara un id de personaje desconocido (se devuelve la lista de ids válidos). -
analyze_token_discount(exchange, purpose, country, monthlyVolumeUsd, makerShare?, tokenBalance?, accountAssetsUsd?, tokenPriceUsd?, currency?)— Análisis de recuperación de descuento de tarifas con token nativo; completamente offline. Calcula la tarifa anual SIN el token nativo (nivel de saldo cero, sin alternancia de deducción de tarifas) vs. CON él (deducción plana BNB/MX/BGB/KCS, escalera de nivel de tenencia GT/MX/HYPE, maker de futuros Gate a cero, elevación de nivel GT/KCS/BNB por tenencias), el ahorro anual en USD, el costo de oportunidad en USD de bloquear el saldo de token requerido, la recuperación en meses, y la caída máxima de precio del token en un año que el ahorro puede absorber (breakeven_price_drop_pct). Cuando se omitetokenBalance, devuelvetiers_analysis(cada nivel de descuento alcanzable clasificado) con unrecommended_tier_index(recuperación más corta entre niveles de ahorro positivo). Los lugares sin alternancia separada (OKX, Kraken, Coinbase, Bybit, BingX) reportanhas_native_discount: falsehonestamente en lugar de inventar un descuento. El precio del token proviene dedata/token_prices.json(instantánea 2026-09) o la anulacióntokenPriceUsd. Códigos de error:UNKNOWN_EXCHANGE,COUNTRY_BLOCKED,INVALID_INPUT,NO_RESULTS. -
compare_personas(country, personas?, useToken?, currency?, fundingMode?, fundingPair?, spreadMode?, spreadPair?, side?, language?, format?)(v0.28,formaten v0.36) — Matriz de decisión multi-personaje en una sola llamada; completamente offline en modo predeterminado. Ejecuta cada personaje (o el subconjuntopersonas: [...], preservando orden, sin duplicados) a través del mismo motor queanalyze_personay devuelve{ country, currency, personas: [{ persona: {id, name_en, name_zh, tagline_zh}, purpose, monthly_volume_usd, best: { exchange, tier, annual_all_in, runner_up_exchange, saving_vs_runner_up, cost_mix_pct, tradeoffs } | null, best_complete: { exchange, annual_all_in, extra_vs_winner } | null, matrix: [{ exchange, annual_all_in, withdrawal_unsupported?, fiat_deposit_available?, fiat_cashout_available? }] }], venues, venue_wins: [{ exchange, headline_persona_ids, complete_persona_ids }], most_versatile, rendered?: { metric, markdown?, csv? }, data_as_of, data_sources, errors? }. La matriz es primero la más barata por personaje; un lugar ausente de una fila está bloqueado en el país o es solo spot.venue_winsse ordena por victorias realistas (best_complete) primero y luego victorias principales;most_versatilees el lugar con más victorias en todas las patas. La profundidad en vivo se resuelve por personaje (dependiente de propósito + clip). Códigos de error:INVALID_INPUT(id de personaje desconocido / formato incorrecto),NO_RESULTS. -
volume_what_if(purpose, country, volumes?, baseVolume?, makerShare?, useToken?, tokenBalance?, accountAssetsUsd?, pair?, currency?, language?, format?, tableMetric?)(v0.34,format/tableMetricen v0.36) — Barrido de supuestos de volumen; completamente offline. Devuelve{ purpose, country, currency, maker_share, use_token, base_monthly_volume_usd?, volumes, data_as_of, points: [{ monthly_volume_usd, annual_traded_notional_usd, cheapest: { exchange, tier, weighted_fee_pct, annual_fee_usd }, ranking: [{ exchange, tier, volume_tier?, weighted_fee_pct, annual_fee_usd, tier_crossed? }] }], tier_crossings: [{ at_monthly_volume_usd, exchange, from_tier, to_tier }], exchanges: [{ exchange, current: { monthly_volume_usd, tier, weighted_fee_pct, annual_fee_usd } | null, next_tier?: { from_tier, to_tier, at_monthly_volume_usd, additional_monthly_volume_usd, weighted_fee_pct_now, weighted_fee_pct_next, saving_per_year_usd_at_current_volume, blocked_by_holding_gate? } | null, sweep: [{ monthly_volume_usd, tier, volume_tier?, effective_maker_pct, effective_taker_pct, weighted_fee_pct, annual_fee_usd, tier_crossed? }] }], advice, warnings?, rendered?: { metric, markdown?, csv? } }.volumespredeterminado = la unión ordenada sin duplicados de todos los umbrales de nivel VIP de los lugares permitidos más0ybaseVolume; uniones de más de 16 puntos se muestrean por zancada en todo el rango (con advertencia, siempre manteniendo 0/base/máx) yvolumesexplícitos permiten hasta 24 puntos personalizados.next_tierestá presente solo cuando se dabaseVolume(null = ya en el peldaño superior de volumen del lugar); los descuentos de referencia y token de plataforma opcional se aplican exactamente como encompare_exchange_fees. Solo tarifas de trading — financiamiento/spread/retiros/fiduciario no se incluyen.tableMetric(conformatno json):weighted_fee_pct(predeterminado) |annual_fee_usd|tier. Códigos de error:BAD_VOLUME,UNKNOWN_CURRENCY,INVALID_INPUT(formato/tableMetric incorrecto),NO_RESULTS. -
compare_countries(persona?, countries?, monthlyVolumeUsd?, makerShare?, useToken?, tokenBalance?, accountAssetsUsd?, holdingHours?, tradeSizeUsd?, pair?, currency?, fundingMode?, fundingPair?, spreadMode?, spreadPair?, side?, language?, format?, tableMetric?)(v0.35,format/tableMetricen v0.36) — Matriz de diferencias por país; completamente offline en modo predeterminado. Ejecuta el mismo motoranalyzePersonauna vez por país y devuelve{ persona: {id, name_en, name_zh}, purpose, currency, countries, data_as_of, rows: [{ country, available_venues, winner: {exchange, tier, annual_all_in} | null, best_complete: {exchange, annual_all_in, extra_vs_winner} | null, comparison_basis: "winner"|"best_complete", comparison_annual_all_in, extra_vs_cheapest_country_usd, extra_vs_cheapest_country_pct, blocked_venues, unsupported_product_venues, ranking, error?, error_code? }], cheapest_country: {country, exchange, tier?, annual_all_in, basis} | null, costliest_country, spread_usd, winner_venue_counts: [{exchange, count, countries}], venue_availability: [{exchange, per_country: {CC: available|blocked|unsupported_product}, blocked_in}], advice, warnings?, rendered?: { metric, markdown?, csv? } }. Predeterminados: personajeactive_spot_trader, paísesUS/GB/DE/JP/SG/BR/CN(máx 12, sin duplicados). Los deltas entre países usancomparison_annual_all_in= el costobest_completede todas las patas cuando el ganador principal no tiene vías, de lo contrario el ganador — así un lugar sin vías fiduciarias/retiro no puede hacer que un país parezca artificialmente barato. Las anulaciones en vivo (financiamiento/profundidad) se obtienen una vez sobre la unión de lugares permitidos en CUALQUIER país seleccionado.tableMetric(conformatno json):availability(predeterminado) |cost. Códigos de error:INVALID_INPUT(personaje desconocido / formato/tableMetric incorrecto),UNKNOWN_CURRENCY. -
get_account_fee_tier(exchange, purpose, country, apiKey, secret?, password?, pair?, monthlyVolumeUsd?)(v0.39) — el puente personalizado desde el horario público hasta la tarifa real de la cuenta del solicitante. Utiliza una clave API de solo lectura contra el endpoint de tarifas autenticado de la plataforma a través de ccxt (fetchTradingFeescuando esté disponible, de lo contrariofetchTradingFeepor símbolo), y luego devuelve{ exchange, purpose, pair, credential_type, fetch_method, fetched_at, live_fee: {maker_pct, taker_pct}, bundled_fee: {tier, maker_pct, taker_pct, monthly_volume_usd}, delta_vs_bundled_bps: {maker, taker}, security_note, notes }— una brecha negativa en bps significa que la cuenta paga menos que el nivel público a ese volumen (las deducciones de BNB/token de tarifa del lado del servidor, la propia ventana VIP móvil de 30 días de la plataforma, las tarifas negociadas o promocionales son capturadas por la pata en vivo). Cobertura: 13 de 18 plataformas — Binance, OKX (password= frase de contraseña de API), Gate, Bybit, MEXC, Bitget, KuCoin spot +kucoinfutures(frase de contraseña), Kraken spot +krakenfutures, Coinbase spot (clasecoinbaseexchange), BingX, Bitstamp spot, Bitvavo spot (v0.42, clasebitvavo); Hyperliquid solo toma la dirección pública de billetera 0x enapiKey(sin secreto — consulta el endpoint públicouserFees). Phemex y BloFin no tienen endpoint de tarifas autenticado en ccxt 4.5.x, Finst (v0.43) no expone API de trading pública y ccxt 4.5.x no incluye clasefinst, Bitpanda (v0.44) es un bróker de cotización por spread sin API de trading pública ni clasebitpanda, Bison (v0.45) es un bróker de cotización principal de EUWAX sin clasebison/euwaxen ccxt 4.5.78, y los perps de Bitstamp/Bitvavo no están modelados (ambas plataformas son solo spot) →ACCOUNT_FEES_UNSUPPORTED(falla sin ninguna llamada de red). El cumplimiento se ejecuta primero:UNKNOWN_EXCHANGE/COUNTRY_BLOCKED/PRODUCT_BLOCKED_IN_COUNTRY/NO_FEE_DATAse devuelven antes de usar las credenciales. Los fallos en tiempo de ejecución están tipados y con credenciales depuradas:ACCOUNT_MISSING_CREDENTIALS,ACCOUNT_AUTH_FAILED(no reintentable — clave/secreto/frase de contraseña incorrectos, restricción de IP, KYC),ACCOUNT_FEE_FETCH_FAILED(retryable: truepara red/timeout/límite de tasa). Las credenciales son solo por solicitud — nunca se almacenan en caché, nunca se escriben en registros. -
get_stablecoin_access(asset?, country?, exchange?, language?)(v0.46) — informe de acceso regional a stablecoins MiCA; completamente sin conexión.assetpor defecto esUSDT(tambiénUSDC/EURC/EURI/EURCV/USDQ/EURQ). Devuelve{ asset, asset_name?, issuer?, mica_authorized, issuer_note?, fetched_at, data_as_of, restriction: { applies, region?, effective?, venue_trading?, custody_withdrawal?, self_custody_allowed?, note? }, venues: [{ exchange, status, scope, since?, note?, venue_available_in_country }], compliant_alternatives, regulation_note?, advice, data_sources? }. Con un país dentro del EEE30 se aplica la restricción de USDT (cliff2026-07-01) y se listan las 18 plataformas (delisted+fecha para las nueve plataformas con licencia EEE,venue_blockedpara los seis CASP prohibidos,never_offeredpara las tres plataformas de alcance global); fuera del EEE (EE. UU./GB/CH/…)restriction.applieses falso y solo se devuelven filas de alcance global;exchangereduce a una fila. Códigos de error:INVALID_ASSET(ids válidos devueltos ensuggested_action),UNKNOWN_EXCHANGE,COUNTRY_BLOCKED. -
compare_interface_costs(exchange?, country?, monthly_volume_usd?, language?)(v0.47) — informe de costos de interfaz dual consumidor vs PRO; completamente sin conexión. Devuelve{ generated_at, data_as_of, study_summary, venues: [{ exchange, venue_name, available_in_country, consumer: { product_name, fee_model, modeled_one_way_pct, published_one_way_pct?, measured_round_trip_pct?, measured_hidden_spread_pp?, subscription?, tier_credit, measurement }, pro?: { product_name, base_maker_pct, base_taker_pct, published_round_trip_pct }, consumer_vs_pro_round_trip_pp?, consumer_vs_pro_annual_excess_usd?, advice, notes? }], advice, data_sources? }. Evidencia: el estudio TUM de ida y vuelta de €100 con dinero real (2025-10..11, seis plataformas de la UE con licencia MiCA) replicado por Frankfurt School (2026-03, 432 idas y vueltas/9 plataformas) — Bitvavo 0.58% < BISON 2.58% < Kraken app 5.81% < Bitpanda 6.23% < Coinbase Simple 7.49%; Bitstamp Basic está marcado como no verificado (solo divulgación de la propia plataforma), Bitpanda/BISON son solo bróker (sin interfaz PRO,proomitido).exchangereduce a una plataforma,countryaplica la puerta de residencia (Bitvavo/Bitpanda/BISON bloqueados fuera de sus áreas de servicio), ymonthly_volume_usdagregaconsumer_vs_pro_annual_excess_usddondequiera que el costo de ida y vuelta del consumidor exceda la base del taker PRO. Códigos de error:UNKNOWN_EXCHANGE,COUNTRY_BLOCKED,INVALID_VOLUME. -
get_fee_changes(exchange?, product?, since_month?, limit?, language?)(v0.48) — feed de cambios de tarifas auditable; completamente sin conexión. Devuelve{ generated_at, data_as_of, snapshot_coverage: { months, first?, last?, available }, changes: [{ id, date, exchange, product, kind, tier?, field?, before?, after?, confidence, summary_en, summary_zh?, effective_date?, url?, note?, detected_from_snapshot?, detected_to_snapshot? }], advice }. Dos niveles de evidencia: filas curadas (confidence: high|medium) están verificadas por humanos contra anuncios oficiales de plataformas/páginas de tarifas y se incluyen endata/fee_changes.json; las filas detectadas se generan automáticamente al comparar instantáneas deterministas mensuales consecutivas ensnapshots/fee_ladders/*.json(solo repositorio — ausente del paquete npm, dondesnapshot_coverage.availableesfalse) y nunca deben tratarse como confirmadas.kindes uno derate | threshold | ladder_structure | promo | token_discount | pricing_model; los valores de tasa antes/después usan la precisión de porcentaje redondeado a 4 del motor, y los escalones se emparejan por nombre de nivel. Ordenado por fecha descendente y luego por rango de confianza;productaceptaspot|futures|all(un registroallcoincide con cualquiera),since_monthtomaYYYY-MM. La captura/revisión mensual se automatiza mediante el flujo de trabajo de GitHub Actionsdata-snapshot(PR solo de revisión — las filas detectadas nunca entran al archivo curado sin verificación humana). CLI local:npm run snapshot:fees -- snapshot|diff|latest.
Los errores son JSON estructurado: { error, code, retryable?, suggested_action? } con códigos como INVALID_INPUT, UNKNOWN_EXCHANGE, COUNTRY_BLOCKED, PRODUCT_BLOCKED_IN_COUNTRY, NO_RESULTS, UNKNOWN_CURRENCY, NO_REFERRAL_LINK, DATA_LOAD_FAILED, ACCOUNT_FEES_UNSUPPORTED, ACCOUNT_MISSING_CREDENTIALS, ACCOUNT_AUTH_FAILED, ACCOUNT_FEE_FETCH_FAILED.
Archivos de datos
Todos los datos de tarifas/VIP/retiros/spread son JSON local. Por defecto, el servidor no realiza ninguna llamada API externa; las solicitudes fundingMode: "live" obtienen tasas de financiación actuales y las solicitudes spreadMode: "live" obtienen libros de órdenes directamente de los endpoints públicos de las plataformas a través de ccxt (mejor esfuerzo, tiempo de espera por plataforma, respaldo incluido), y get_account_fee_tier (v0.39) realiza una solicitud autenticada por llamada al endpoint de tarifas de cuenta de la plataforma con una clave de solo lectura proporcionada por el solicitante (ver Manejo de credenciales):
| Archivo | Contenido |
|---|---|
data/fee_rates.json | Tasas de maker/taker por nivel VIP, spot + futuros; v0.44 agrega pricing_model por plataforma (order_book|flat|spread) y evidencia execution_quality (costo de ida y vuelta anunciado vs medido independientemente) para plataformas bróker de spread (v0.44 Bitpanda, v0.45 Bison — la segunda plataforma de spread) |
data/referral_links.json | URLs de referencia, % de descuento de usuario, reembolso de operador (interno) |
data/token_discounts.json | Reglas de descuento BNB / OKB / GT / MX / BGB / KCS / PT + escalera de HYPE apostado de Hyperliquid (multiplicativa, requiere staking) |
data/pair_fees.json | Promociones de tarifas por par (MEXC 0-tarifa, Binance FDUSD/USDC, Bitget USDC/USDT), precios por banda de spread de Bitpanda v0.44 (0.99% pares BTC/stablecoin vs el titular de 1.49%, no promocional) y bandas de Bison v0.45 (1.25% BTC/EUR + ETH/EUR vs el titular de 1.75%, no promocional) |
data/funding_rates.json | Tasa de financiación promedio incluida + intervalo de liquidación (respaldo en modo en vivo) |
data/spread_baseline.json | Spread típico de oferta-demanda completo por plataforma (BTC) + multiplicadores de principales/gran capitalización/media capitalización (estudios de instantáneas de libros de órdenes 2026; respaldo en modo en vivo); v0.44 fija Bitpanda a 0 bps y v0.45 fija Bison a 0 bps porque la prima incorporada de cada plataforma ES el spread (anti-doble conteo) |
data/withdrawal_fees.json | Tarifas de retiro por plataforma para 16 activos en rutas nativas y multicadena (TRC-20/ERC-20/BEP20/Arbitrum/Optimism/Base/Polygon/Avalanche C/Solana/TON/AssetHub), instantánea asset_prices_usd 2026-09-12 para conversión USD, banderas suspended para billeteras pausadas (ago–sep 2026) |
data/fx_rates.json | Tasas de cambio FX estáticas para visualización (base USD) |
data/country_restrictions.json | Plataformas bloqueadas/permitidas por país, puertas negativas por producto (product_blocked), tablas de membresía de regiones nombradas (regions, p. ej., EEE30), listas blancas positivas de regiones por producto (product_region_gates, v0.40), prohibiciones de regiones negativas posteriores al cliff MiCA (region_blocked, product_region_blocked, v0.41) y listas blancas positivas de área de servicio a nivel de plataforma (region_allowed, v0.42 Bitvavo y v0.43 Finst — ambas solo EEE; v0.44 Bitpanda = EEE+GB mediante una clave de región de miembro único GB; v0.45 Bison = EEE+CH mediante una clave de región de miembro único CH) |
data/fiat_routes.json | Rieles fiduciarios operados directamente por la plataforma (tarjeta/ACH/SEPA/FPS/wire/SWIFT/PIX) por plataforma, moneda, región y dirección, con tarifas porcentuales+fijas+mín/máx y ETAs (pasarelas/P2P excluidos) |
data/personas.json | Siete personas de trader ancladas en investigación para analyze_persona: preajustes de comportamiento (volumen, proporción de maker, horas de tenencia, tamaño de clip, hábitos de retiro/fiduciario) con descripciones bilingües, suposiciones y fuentes de investigación (estudios de traders minoristas 2026) |
data/token_prices.json | Precios estáticos de instantánea USD 2026-09 para tokens nativos (BNB/OKB/GT/MX/BGB/KCS/HYPE) utilizados para estimar el costo de oportunidad de mantener un token para descuentos de tarifas; anulable por llamada mediante tokenPriceUsd |
data/stablecoin_access.json | Registro de stablecoins MiCA v0.46: autorización de emisor/EMT por activo (USDT no autorizado; USDC/EURC/EURI/EURCV/USDQ/EURQ autorizados), reglas de región (restricción de trading de USDT en plataformas EEE30, cliff 2026-07-01, derechos de custodia/retiro/autocustodia, alternativas) y reglas por plataforma en las 18 plataformas (delisted + fecha desde / never_offered / venue_blocked; alcance eea vs global), con fuentes y last_verified 2026-09 |
data/interface_costs.json | Modelo de costos de interfaz dual v0.47 para compare_interface_costs: por plataforma (kraken/coinbase/bitstamp/bitvavo/bitpanda/bison) el producto de consumidor (nombre, modelo de tarifas, tarifas de ida y vuelta publicadas, exenciones de suscripción) vs el punto de referencia PRO de libro de órdenes (maker/taker base, ida y vuelta publicado), idas y vueltas medidas con dinero real de TUM y pp de spread oculto con metadatos de replicación de Frankfurt School, y last_verified 2026-09 |
data/fee_changes.json | Feed de cambios de tarifas curado v0.48 para get_fee_changes: cambios de tasa/umbral/escalera/promo/descuento de token/modelo de precios verificados por humanos con fecha efectiva, URL de fuente oficial, resumen bilingüe y antes/después estructurado donde la fuente indica números; last_verified 2026-09 (la historia anterior a 2026-09 no es reconstruible de fuentes primarias — solo se siembran registros con evidencia oficial). El repositorio además lleva instantáneas deterministas mensuales solo repositorio en snapshots/fee_ladders/YYYY-MM.json (NO incluidas en el paquete npm) que el motor compara en filas confidence: "detected" |
Cada archivo lleva last_verified (AAAA-MM) y sources (URLs oficiales de páginas de tarifas, estudios de medición o advertencias). Rutas de anulación mediante variables de entorno: FEE_RATES_PATH, REFERRAL_LINKS_PATH, TOKEN_DISCOUNTS_PATH, PAIR_FEES_PATH, FUNDING_RATES_PATH, SPREAD_BASELINE_PATH, WITHDRAWAL_FEES_PATH, FX_RATES_PATH, COUNTRY_RESTRICTIONS_PATH, FIAT_ROUTES_PATH, PERSONAS_PATH, TOKEN_PRICES_PATH, STABLECOIN_ACCESS_PATH, INTERFACE_COSTS_PATH, FEE_CHANGES_PATH (archivo) y FEE_SNAPSHOTS_PATH (directorio de instantáneas de escalera mensuales YYYY-MM.json; faltante/ilegible degrada a una lista vacía — el feed curado aún funciona).
Nota de precisión: las tasas de financiación y las tarifas de retiro fluctúan; las tablas VIP cambian sin previo aviso. Trate los resultados como estimaciones y verifique mediante get_data_sources antes de decisiones financieras.
Manejo de credenciales (v0.39 get_account_fee_tier)
La única herramienta que realiza llamadas autenticadas es get_account_fee_tier, y solo cuando se invoca explícitamente. Propiedades de seguridad:
- Solo claves de solo lectura — genera siempre una clave con permisos de información/lectura y sin permisos de trading, retiro o transferencia; la herramienta nunca los necesita.
- Por solicitud, nunca almacenadas — las credenciales viven solo durante la duración de la llamada. Deliberadamente no hay caché de resultados (los cachés TTL de datos públicos nunca reciben material de claves), nada se escribe en disco y las credenciales nunca se devuelven en la respuesta.
- Redactadas en todas partes — el registro de stderr
[audit]redacta los argumentosapiKey/secret/password/passphrase/walletAddress(***REDACTED***) antes de la serialización, y las cadenas de error del exchange se limpian de valores literales de credenciales y parámetrossignature=. - Cumplimiento primero — las compuertas de venue/país/producto se ejecutan antes de usar cualquier clave, por lo que una solicitud bloqueada nunca toca un endpoint de autenticación del exchange.
- Hyperliquid solo necesita la dirección pública de la wallet (la consulta de tarifas es una llamada pública
userFees); nunca se solicita una clave privada.
Ejemplos
> User: I'm in Japan, trade 100k USDT futures/month, mostly limit orders, and hold positions ~16h. Which exchange?
Agent → recommend_exchange(purpose="futures", country="JP", volume=100000,
makerShare=0.8, holdingHours=16)
Server → {
"best": { "exchange": "...", "score": 100, "weighted_fee_rate": ...,
"reasons": [...], "tradeoffs": [...], "referral_url": "..." },
"alternatives": [...],
"advice": "Register via the ... link to lock 20% off ...",
"data_as_of": "2026-09"
}
> User: 数据是哪来的?费率多久更新一次?
Agent → get_data_sources()
Server → { "data_as_of": "2026-09",
"files": [{ "file": "fee_rates.json", "last_verified": "2026-09",
"sources": [{ "name": "Binance fee schedule",
"url": "https://www.binance.com/en/fee/schedule" }, ...] }, ...] }
> User: 我在币安每月交易 100 万U期货,持仓约 720 小时,每年提 12 次 USDT,一年真实成本多少?升 VIP1 能省多少?
Agent → calculate_annual_cost(exchange="binance", purpose="futures", country="JP",
monthlyVolumeUsd=1000000, holdingHours=720,
withdrawalAsset="USDT", withdrawalNetwork="TRC-20",
withdrawalsPerYear=12)
Server → {
"tier": "Regular",
"annual_trading_fee": 4800,
"annual_funding_cost": 108000,
"annual_withdrawal_cost": 18,
"annual_total_cost": 112818,
"upgrade": { "next_tier": "VIP1", "requires_volume_usd": 15000000,
"annual_savings": 960,
"hint": "Reach VIP1 via $15,000,000 30-day volume; estimated annual trading-fee saving $960 ..." }
}
> User: 我主要在 MEXC 现货刷 BTC/USDT,听说 0 手续费是真的吗?其他所呢?
Agent → compare_exchange_fees(purpose="spot", country="JP", pair="BTC/USDT", makerShare=0.5)
Server → [
{ "exchange": "mexc", "tier": "Standard", "effective_maker": 0, "effective_taker": 0,
"weighted_rate": 0, "pricing_basis": "pair",
"pair_note": "MEXC 0-fee program: all spot pairs trade at 0% maker + 0% taker ..." },
{ "exchange": "okx", ..., "pricing_basis": "account_tier" },
...
]
> User: 现在 BTC 永续各交易所资金费率多少?按实时费率我持 10 万U多单 16 小时要付多少资金费?
Agent → get_funding_rates(fundingMode="live", fundingPair="BTC/USDT")
Server → {
"pair": "BTC/USDT", "mode": "live",
"rates": [
{ "exchange": "binance", "rate_pct": 0.0124, "interval_hours": 8,
"source": "live", "funding_timestamp": "2026-09-12T00:00:00.000Z" },
{ "exchange": "kraken", "rate_pct": 0.01, "interval_hours": 8,
"source": "bundled", "note": "..." }
],
"failures": [{ "exchange": "kraken", "error": "Connect Timeout ...", "fallback": "bundled" }]
}
Agent → calculate_savings(exchange="binance", volume=100000, type="futures",
country="JP", holdingHours=16,
fundingMode="live", fundingPair="BTC/USDT")
Server → { "funding_cost": 24.8, "funding_source": "live",
"funding_rate_ts": "2026-09-12T00:00:00.000Z",
"funding_pair": "BTC/USDT", ... }
> User: 我一笔 5 万U的 BTC 市价吃单,各交易所点差加滑点实际要付多少?25 万U的大单呢?
Agent → get_execution_cost(tradeSizeUsd=50000, pair="BTC/USDT",
purpose="futures", side="buy", spreadMode="live")
Server → {
"pair": "BTC/USDT", "mode": "live", "trade_size_usd": 50000,
"costs": [
{ "exchange": "binance", "spread_bps": 1.0, "crossing_bps": 0.5,
"slippage_bps": 0.3, "total_bps": 0.8, "cost_usd": 4,
"levels_consumed": 3, "fully_filled": true, "source": "live",
"symbol": "BTC/USDT:USDT", "book_timestamp": "2026-09-12T..." },
{ "exchange": "kraken", "spread_bps": 5, "crossing_bps": 2.5,
"slippage_bps": 0, "total_bps": 2.5, "cost_usd": 12.5,
"source": "bundled", "pair_class": "majors" }
],
"failures": [{ "exchange": "kraken", "error": "Connect Timeout ...",
"fallback": "bundled" }]
}
Agent → compare_total_cost(purpose="futures", country="JP", volume=100000,
tradeSizeUsd=250000, spreadMode="live", side="buy")
Server → [ { "exchange": "binance", "trading_fee": 1000,
"spread_cost": 12.5, "slippage_cost": 28.2,
"spread_source": "live", "total_cost": 1040.7 }, ... ]
> User: 我在德国,想入 1000 欧元,刷卡和 SEPA 转账各所收多少?哪个最便宜?
Agent → get_fiat_cost(direction="deposit", currency="EUR", amount=1000, country="DE")
Server → {
"direction": "deposit", "currency": "EUR", "amount": 1000, "amount_usd": 1086.96,
"fx_rate": 0.92, "data_as_of": "2026-09",
"best": { "exchange": "binance", "method": "sepa", "fee": 0,
"fee_usd": 0, "effective_pct": 0, "net": 1000 },
"saving_vs_worst_usd": 5.43,
"exchanges": [
{ "exchange": "binance", "available": true, "cheapest_method": "sepa",
"cheapest_fee_usd": 0,
"routes": [ { "method": "sepa", "fee": 0, "fee_usd": 0, "effective_pct": 0,
"net": 1000, "eta": "1-2 business days" },
{ "method": "card", "fee": 20, ... } ] },
{ "exchange": "gate", "cheapest_method": "sepa",
"routes": [ { "method": "sepa", "fee": 5, "effective_pct": 0.5, ... } ] },
...
],
"advice": "binance offers a free sepa deposit for EUR — 1000 EUR arrives in full. ..."
}
> User: 我要提 USDT 到 TRC-20,8 家所分别收多少?不提网络的话哪家最便宜?最近有哪些链暂停了?
Agent → get_withdrawal_fees(asset="USDT", network="TRC-20")
Server → {
"asset": "USDT", "network": "TRC-20", "asset_price_usd": 1,
"data_as_of": "2026-09",
"exchanges": [
{ "exchange": "mexc", "supported": true,
"networks": [{ "network": "TRC-20", "fee": 0.5, "fee_usd": 0.5, "available": true }],
"cheapest_network": "TRC-20", "cheapest_fee_usd": 0.5 },
{ "exchange": "bybit", ..., "cheapest_fee_usd": 1 },
{ "exchange": "binance", ..., "cheapest_fee_usd": 1.5 },
...
],
"best": { "exchange": "mexc", "network": "TRC-20", "fee": 0.5, "fee_usd": 0.5 },
"saving_vs_worst_usd": 1,
"advice": "Cheapest USDT TRC-20 withdrawal: mexc charges 0.5 USDT (about $0.5) ..."
}
Agent → get_withdrawal_fees(asset="ETH") // no network: cheapest open L2 per venue
Server → {
"asset": "ETH", "asset_price_usd": 2512.03,
"best": { "exchange": "mexc", "network": "Base", "fee": 0.0000013, "fee_usd": 0.0033 },
"exchanges": [ { "exchange": "binance", "cheapest_network": "Optimism",
"cheapest_fee_usd": 0.0377, "networks": [ ... ] }, ... ],
"saving_vs_worst_usd": 0.32
}
Desarrollo
npm test # vitest unit tests (457 tests: 361 tools + 50 live + 28 http + 13 account + 3 polyfill + 2 version)
npm run build # tsc → dist/
npm run audit:data # offline data-consistency gate (dates, sources, ladder monotonicity, coverage)
node scripts/smoke-test.mjs # end-to-end MCP stdio smoke test (68 requests)
npm run smoke:http # end-to-end Streamable HTTP smoke test
npm run inspector # MCP Inspector UI for manual testing
El mismo pipeline de auditoría → compilación → prueba → prueba HTTP de humo más una verificación de artefacto/instalación npm pack se ejecuta en CI en cada push y pull request (Node 18/20/22, .github/workflows/ci.yml). El historial de versiones está en CHANGELOG.md.
Licencia
MIT