BuyCrypt
Para desarrolladores y asistentes de IA

API para bots de trading y MCP para IA

Un bot escrito para Binance USD-M Futures funciona en la cuenta demo de BuyCrypt sin reescribirlo: solo cambia la dirección de la API. Y Claude, ChatGPT y Cursor, a través del servidor MCP de BuyCrypt, ven los torneos, el rating de los traders y su cuenta demo.

1 líneaen el código del bot: otra base URL
500+contratos perpetuos en USDT
9herramientas MCP, todas de solo lectura
api.buycrypt.comrespuesta en vivo
GET https://api.buycrypt.com/fapi/v1/ticker/price?symbol=BTCUSDT
{ "symbol": "BTCUSDT", "price": "…" }
# su bot en Binance USD-M Futures
- base_url="https://fapi.binance.com"
+ base_url="https://api.buycrypt.com"
Dos formas de conectarse

El bot opera. El asistente responde preguntas.

API para bots de trading

El formato de las solicitudes, las firmas y las respuestas es el de Binance USD-M Futures. El bot coloca órdenes en su cuenta demo de BuyCrypt: precios de mercado, dinero demo.

  • Las mismas librerías: binance-futures-connector o su propio código con requests
  • REST, WebSocket privado por listenKey, velas y precio de marca en el stream
  • La clave se crea en la app y solo funciona con una cuenta demo
Documentación de la API →

MCP para asistentes de IA

Una dirección en los ajustes de Claude, ChatGPT o Cursor, y el asistente consulta por sí mismo los datos de BuyCrypt cuando usted le pregunta.

  • Torneos, premios, tabla de participantes, líderes por moneda
  • Pasaporte del trader: rating sobre 1000, nivel, estilo de trading
  • Su cuenta demo: saldo, posiciones y órdenes (con una clave de solo lectura)
Conectar en un minuto →
MCP · Model Context Protocol

MCP: conecte BuyCrypt a Claude, ChatGPT y Cursor

MCP es un estándar abierto con el que los asistentes de IA se conectan a datos y herramientas externos. El servidor de BuyCrypt le da al asistente datos en vivo de la plataforma. No necesita registro ni clave; la clave solo hace falta para su cuenta demo.

https://buycrypt.com/mcp
Streamable HTTPsin iniciar sesiónsolo lectura
  1. Abra claude.ai o la app Claude Desktop → Customize → Connectors.
  2. Pulse + Add → Add custom connector.
  3. Nombre: BuyCrypt; dirección: https://buycrypt.com/mcp; después, Continue.
  4. En la sección Authentication, elija No sign in y pulse Add.

Los conectores propios están disponibles en todos los planes de Claude; en el gratuito, uno. En los equipos Team y Enterprise, el conector lo añade el propietario de la organización en Organization settings → Connectors. Para su cuenta demo, añada la clave en el bloque Request headers de esa misma ventana: cómo hacerlo.

  1. Ejecute un solo comando en el terminal:
Terminal
claude mcp add --transport http buycrypt https://buycrypt.com/mcp

Comprobación: claude mcp list; en la lista aparecerá buycrypt. Añada --scope user para que el servidor esté disponible en todos los proyectos.

  1. Abra chatgpt.com/plugins en el navegador.
  2. Pulse + → Add custom MCP server.
  3. Nombre: BuyCrypt; en la sección Connection, elija la dirección pública e indique https://buycrypt.com/mcp.
  4. Authentication: No authentication. Confirme el aviso I understand and want to continue y pulse Create.

En ChatGPT, los servidores MCP propios solo se añaden en la versión web y no están en todos los planes. Si no ve la opción, la ha bloqueado su plan o el administrador del espacio de trabajo. En ChatGPT no se puede conectar su cuenta demo: no envía claves al servidor. Para eso sirven Claude, Claude Code y Cursor.

Añadir a Cursor

El botón abre Cursor con la configuración lista. O a mano: añada a ~/.cursor/mcp.json (para todos los proyectos) o a .cursor/mcp.json en la raíz del proyecto:

mcp.json
{
  "mcpServers": {
    "buycrypt": {
      "url": "https://buycrypt.com/mcp"
    }
  }
}

Sirve cualquier cliente compatible con Streamable HTTP: indique la dirección https://buycrypt.com/mcp; no hace falta autorización. Si el cliente solo puede ejecutar servidores locales (stdio), conéctelo mediante el puente mcp-remote (requiere Node.js):

claude_desktop_config.json y similares
{
  "mcpServers": {
    "buycrypt": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://buycrypt.com/mcp"]
    }
  }
}

Comprobar el servidor sin asistente: npx @modelcontextprotocol/inspector --cli https://buycrypt.com/mcp --transport http --method tools/list

Qué hace el servidor

platform_overview

Qué torneos están en curso, cuál empieza a continuación, cuántos traders hay en los torneos, últimos premios.

sin clave
list_tournaments

Torneos en curso, próximos y finalizados: moneda, método de puntuación, bolsa de premios, entrada, participantes.

sin clave
get_tournament

Un torneo: premios por puesto y tabla de participantes con sus resultados.

sin clave
leaderboard

Líderes por moneda en 7, 30 o 90 días, como en la página «Top traders».

sin clave
trader_profile

Pasaporte del trader por nick: rating sobre 1000, nivel, las cinco partes de la evaluación, estilo. Solo perfiles públicos.

sin clave
market_ticker

Precio y variación en 24 horas de un contrato perpetuo, por ejemplo BTCUSDT.

sin clave
demo_account

Saldo, margen y posiciones abiertas de su cuenta demo.

su clave
demo_open_orders

Órdenes abiertas de su cuenta demo.

su clave
demo_recent_results

Últimos resultados de la cuenta demo: beneficio y pérdida de las operaciones cerradas, comisiones.

su clave

Ninguna herramienta coloca órdenes, entra en torneos ni mueve dinero: el servidor solo lee.

Qué preguntarle al asistente

Pulse una pregunta para copiarla.

Ejemplo en vivo

Así ve el asistente BuyCrypt

Abajo está la respuesta real del servidor https://buycrypt.com/mcp en este momento. El asistente recibe estos mismos datos y los resume con sus propias palabras.

Muéstrame el top 5 de traders del mes en BTC
el asistente llama a leaderboard{"coin":"BTC","period_days":30,"limit":5}
Cargando la respuesta del servidor…
Con su clave

Su cuenta demo en el asistente

Las herramientas demo_account, demo_open_orders y demo_recent_results leen su cuenta demo. Para usarlas, el cliente envía al servidor su clave API en dos encabezados: X-BuyCrypt-Api-Key y X-BuyCrypt-Api-Secret. Para el asistente, cree una clave de solo lectura: ve el saldo, las posiciones y las órdenes, pero BuyCrypt no ejecutará con ella órdenes, cancelaciones ni cambios de apalancamiento (respuesta 403). Cómo obtenerla.

Terminal
claude mcp add --transport http buycrypt https://buycrypt.com/mcp \
  --header "X-BuyCrypt-Api-Key: SU_API_KEY" \
  --header "X-BuyCrypt-Api-Secret: SU_API_SECRET"
mcp.json
{
  "mcpServers": {
    "buycrypt": {
      "url": "https://buycrypt.com/mcp",
      "headers": {
        "X-BuyCrypt-Api-Key": "SU_API_KEY",
        "X-BuyCrypt-Api-Secret": "SU_API_SECRET"
      }
    }
  }
}
  1. Al añadir el conector (Customize → Connectors → Add custom connector), después de la dirección elija No sign in.
  2. En el bloque Request headers, añada dos cabeceras: X-BuyCrypt-Api-Key y X-BuyCrypt-Api-Secret con sus valores.
  3. Pulse Add. Si el conector ya estaba añadido sin clave, elimínelo y vuelva a añadirlo con las cabeceras.

Solo lectura

El servidor MCP no coloca ni cancela órdenes. Necesita la clave para leer el saldo, las posiciones y las órdenes. Una clave de solo lectura no permite operar, aunque caiga en manos ajenas.

Una cuenta demo

La clave de BuyCrypt solo funciona con la cuenta demo para la que se creó. No da acceso a cuentas reales de exchange.

Una clave aparte

Cree para el asistente una clave de solo lectura aparte. La clave solo se envía a buycrypt.com; el servidor no la guarda ni la escribe en los registros. Puede revocarla en el mismo lugar donde la creó.

API para bots de trading

API compatible con Binance USD-M Futures

Rutas, firma HMAC-SHA256, parámetros y formato de respuesta como en Binance USD-M Futures. La única diferencia: las órdenes se ejecutan en su cuenta demo de BuyCrypt a precios de mercado y no llegan a ningún exchange real. Así puede probar una estrategia en el mercado sin arriesgar dinero.

Cómo empezar

  1. Cuenta. Inicie sesión en el terminal web o en la app de BuyCrypt con Google o Apple. La cuenta demo aparece al instante.
  2. Clave. En el terminal web o en la app: Perfil → Claves API → su cuenta demo → bloque Bot API keys → Generate API key. Copie apiKey y apiSecret: el secreto se muestra una sola vez. Para un asistente de IA o para monitorización, el terminal web tiene el botón Generate read-only key (for MCP).
  3. Dirección. En su librería, indique https://api.buycrypt.com en lugar de https://fapi.binance.com. Las rutas /fapi/v1/… no cambian.
  4. Comprobación. Solicite el saldo con GET /fapi/v2/balance: la respuesta mostrará los USDT de su cuenta demo.

Qué conviene saber

  • Solo contratos en USDT y modo de posición única (one-way); el modo hedge no está soportado.
  • Precio del ticker: /fapi/v1/ticker/price. La ruta /fapi/v2/ticker/price, que usan las versiones nuevas de las librerías, todavía no está soportada.
  • El stream público envía velas @kline_1m (cada 5 s) y @markPrice (cada segundo).
  • recvWindow: 5.000 ms por defecto, hasta 60.000 ms. Sincronice el reloj con /fapi/v1/time.
  • Una cuenta con una clave API de trading recibe el distintivo 🤖 en el rating de la app: todos ven que opera un programa.
  • Permisos de la clave: una clave normal (READ_TRADE) lee y opera; una clave de solo lectura (READ) solo admite solicitudes GET y listenKey. Una orden, cancelación, cambio de apalancamiento o de margen con ella devuelve HTTP 403 y el código -2015.
pip install binance-futures-connector
import os
from binance.um_futures import UMFutures

client = UMFutures(
    key=os.environ["BUYCRYPT_API_KEY"],        # clave de la app de BuyCrypt
    secret=os.environ["BUYCRYPT_API_SECRET"],
    base_url="https://api.buycrypt.com",      # la única línea que cambia
)

print(client.balance())                             # USDT de la cuenta demo
client.change_leverage(symbol="BTCUSDT", leverage=5)
order = client.new_order(symbol="BTCUSDT", side="BUY", type="MARKET", quantity=0.002)
print(order["orderId"], order["status"])
print(client.get_position_risk(symbol="BTCUSDT"))
pip install requests
import hashlib, hmac, os, time, urllib.parse, requests

API = "https://api.buycrypt.com"
KEY = os.environ["BUYCRYPT_API_KEY"]
SECRET = os.environ["BUYCRYPT_API_SECRET"]

def signed(method, path, **params):
    params["timestamp"] = int(time.time() * 1000)
    query = urllib.parse.urlencode(params)
    sig = hmac.new(SECRET.encode(), query.encode(), hashlib.sha256).hexdigest()
    r = requests.request(method, f"{API}{path}?{query}&signature={sig}",
                         headers={"X-MBX-APIKEY": KEY}, timeout=10)
    r.raise_for_status()
    return r.json()

print(signed("GET", "/fapi/v2/balance"))
print(signed("POST", "/fapi/v1/order", symbol="BTCUSDT", side="BUY",
             type="LIMIT", timeInForce="GTC", quantity=0.002, price=60000))
bash, openssl
# datos públicos, sin clave
curl "https://api.buycrypt.com/fapi/v1/ticker/price?symbol=BTCUSDT"
curl "https://api.buycrypt.com/fapi/v1/klines?symbol=ETHUSDT&interval=1h&limit=3"

# saldo de la cuenta demo: solicitud firmada
KEY="SU_API_KEY"; SECRET="SU_API_SECRET"
Q="timestamp=$(date +%s)000"
SIG=$(printf '%s' "$Q" | openssl dgst -sha256 -hmac "$SECRET" | sed 's/^.* //')
curl -H "X-MBX-APIKEY: $KEY" "https://api.buycrypt.com/fapi/v2/balance?$Q&signature=$SIG"

Métodos

Dirección base de REST: https://api.buycrypt.com. Los métodos firmados requieren la cabecera X-MBX-APIKEY, timestamp y signature.

Datos de mercado sin clave
GET/fapi/v1/ping · /fapi/v1/timeComprobación de conexión y hora del servidor en ms.
GET/fapi/v1/exchangeInfoContratos, filtros de precio y cantidad, límites.
GET/fapi/v1/ticker/price · /ticker/24hr · /ticker/bookTickerÚltimo precio, estadísticas de 24 horas, mejores precios de compra y venta.
GET/fapi/v1/depth · /fapi/v1/klinesLibro de órdenes y velas.
GET/fapi/v1/premiumIndex · /fapi/v1/fundingRatePrecio de marca, índice y tasa de financiación.
Cuenta y posiciones firmados
GET/fapi/v2/account · /fapi/v3/accountSaldo, margen y posiciones en una sola respuesta (v1, v2 y v3 son iguales).
GET/fapi/v2/balance · /fapi/v3/balanceSaldo de la cuenta demo, solo USDT.
GET/fapi/v2/positionRisk · /fapi/v3/positionRiskPosiciones abiertas: precio de entrada, precio de marca, resultado no realizado, precio de liquidación.
GET/fapi/v1/userTrades · /fapi/v1/incomeOperaciones por símbolo e historial de resultados: beneficio y pérdida, comisiones.
GET/fapi/v1/commissionRate · /fapi/v1/leverageBracketComisión por símbolo y niveles de apalancamiento.
Trading firmados
POST/fapi/v1/orderNueva orden: MARKET, LIMIT, STOP, STOP_MARKET, TAKE_PROFIT, TAKE_PROFIT_MARKET, TRAILING_STOP_MARKET; reduceOnly, closePosition, timeInForce, newClientOrderId.
GET/fapi/v1/order · /openOrders · /allOrdersUna orden, órdenes abiertas, historial.
PUT/fapi/v1/orderModificar una orden límite.
DELETE/fapi/v1/order · /allOpenOrdersCancelar una orden o todas las de un símbolo.
POST/fapi/v1/batchOrdersVarias órdenes en una sola solicitud; DELETE cancela una lista.
POST/fapi/v1/algoOrderÓrdenes condicionales (stop, take profit, trailing); GET /openAlgoOrders, /allAlgoOrders, DELETE /algoOrder, /algoOpenOrders.
POST/fapi/v1/leverage · /fapi/v1/marginTypeApalancamiento y tipo de margen por símbolo.
GET/fapi/v1/positionSide/dualSiempre dualSidePosition: false: modo de posición única.
Streams WebSocket
POST/fapi/v1/listenKeyClave del stream privado por 60 minutos; PUT la prolonga, DELETE la cierra.
WSwss://api.buycrypt.com/fapi/ws/<listenKey>Eventos de su cuenta: ORDER_TRADE_UPDATE, ACCOUNT_UPDATE, MARGIN_CALL, en formato Binance.
WSwss://api.buycrypt.com/fapi/ws-market/btcusdt@markPriceStream público de un mercado: @markPrice y @kline_1m.
WSwss://api.buycrypt.com/stream?streams=btcusdt@markPrice/ethusdt@kline_1mVarios streams en una conexión, respuestas envueltas en {"stream", "data"}.
Límites y errores
1 min2.400 de peso · 1.200 lecturas firmadasPor clave API. Las respuestas incluyen las cabeceras X-MBX-USED-WEIGHT-1M y X-MBX-ORDER-COUNT-10S.
10 s300 órdenesSi se supera: HTTP 429 y Retry-After.
ERR-1021 · -1022 · -2014 · -2015Hora fuera de recvWindow · firma no válida · formato de clave no válido · clave revocada o no válida (HTTP 401), clave de solo lectura con una solicitud de trading (HTTP 403).
ERR-1102 · -2010 · -2011 · -2019Falta un parámetro obligatorio · orden rechazada · orden no encontrada · margen insuficiente.
Suscriptores para su bot (beta)

Puede registrar el bot como público: el usuario pulsa «Conectar» en la app, BuyCrypt le abre una cuenta demo aparte con 1.000 USDT demo y emite una clave solo para esa cuenta. La clave llega a su webhook con el evento subscription.created, y el bot opera en la cuenta demo del suscriptor. Cuando el usuario se desconecta, las posiciones se cierran, la clave deja de funcionar y usted recibe subscription.disconnected.

El bot no recibe las cuentas reales ni las claves de exchange de los usuarios, solo la clave de una cuenta demo aparte.

Registro: POST /fapi/v1/bot/profiles firmado con los parámetros slug, displayName, webhookUrl (solo HTTPS) y webhookSecret (32 caracteres como mínimo); el bot queda en estado PENDING_REVIEW hasta la revisión. Cada evento va firmado: cabecera X-BuyCrypt-Signature = HMAC-SHA256(webhookSecret, timestamp + "." + cuerpo), con la hora en X-BuyCrypt-Timestamp. La entrega se reintenta hasta 6 veces (al instante, a los 10 s, 30 s, 2 min, 10 min y 1 h); tras 10 entregas fallidas seguidas, el webhook se desactiva y el soporte puede volver a activarlo.

Verificación de la firma del webhook, Python
import hashlib, hmac, os, time

WEBHOOK_SECRET = os.environ["BUYCRYPT_WEBHOOK_SECRET"]

def verify(headers, raw_body: bytes) -> bool:
    ts = int(headers["X-BuyCrypt-Timestamp"])
    if abs(time.time() * 1000 - ts) > 5 * 60 * 1000:   # más de 5 minutos: rechazar
        return False
    expected = hmac.new(WEBHOOK_SECRET.encode(), f"{ts}.".encode() + raw_body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, headers["X-BuyCrypt-Signature"])
Claves y seguridad

La clave de BuyCrypt solo abre la cuenta demo

Vinculada a una cuenta

La clave API se crea para una cuenta demo concreta y solo funciona con ella. Las cuentas reales de los exchanges no están disponibles a través de esta API. Una clave de solo lectura tampoco opera en esta cuenta.

El secreto se muestra una sola vez

Guarde la clave y el secreto en variables de entorno o en un gestor de secretos, no en el código ni en repositorios públicos.

Revocación en un segundo

En el terminal web o en la app, en el mismo bloque «Bot API keys», pulse «Revoke»: todas las solicitudes con esa clave recibirán al instante el error 401.

Preguntas

Preguntas frecuentes

¿El bot opera con dinero real?

No. La API de BuyCrypt ejecuta las órdenes en su cuenta demo: precios de mercado, saldo en USDT demo. Las órdenes no se envían a ningún exchange, así que puede probar la estrategia sin riesgo.

¿Hay que reescribir el bot para BuyCrypt?

Normalmente no. Si el bot funciona con Binance USD-M Futures, cambie la dirección base por https://api.buycrypt.com y ponga la clave de BuyCrypt. Las rutas, la firma y el formato de las respuestas son los mismos. Compruebe que el bot no use el modo hedge ni la ruta /fapi/v2/ticker/price.

¿Dónde consigo la clave API?

En el terminal web o en la app de BuyCrypt: Perfil → Claves API → su cuenta demo → Bot API keys → Generate API key. Para MCP y asistentes de IA, use «Generate read-only key (for MCP)» en el terminal web: esa clave ve la cuenta, pero no opera. El secreto se muestra una sola vez; guárdelo de inmediato. Allí mismo puede revocar la clave.

¿Qué es MCP y para qué sirve?

MCP (Model Context Protocol) es un estándar abierto con el que los asistentes de IA se conectan a datos externos. Si conecta el servidor https://buycrypt.com/mcp, puede preguntar a Claude, ChatGPT o Cursor por los torneos, los líderes y el pasaporte del trader, y el asistente responderá con datos en vivo de BuyCrypt.

¿Hace falta registrarse para conectar MCP?

No. Los torneos, el rating, los pasaportes de traders y los precios están disponibles sin clave. La clave solo hace falta para las tres herramientas que leen su cuenta demo, y basta con una clave de solo lectura.

¿Puede un asistente de IA operar a través de MCP?

No. Las nueve herramientas del servidor solo leen datos: no se colocan ni cancelan órdenes, nadie entra en torneos y no se mueve dinero.

¿El desarrollador del bot recibirá mis claves de exchange?

No. Cuando conecta un bot de terceros, BuyCrypt abre para él una cuenta demo aparte y emite una clave solo para ella. Sus cuentas y claves reales de exchange no se pasan al bot. Más sobre la protección de datos en la página de «Seguridad».

Empiece con la cuenta demo

La cuenta de BuyCrypt es gratuita: cuenta demo para el bot, clave API en la app, torneos y un ranking donde se ve lo que vale la estrategia.