BuyCrypt
Para desenvolvedores e assistentes de IA

API para bots de trading e MCP para IA

Um bot escrito para Binance USD-M Futures funciona na conta demo da BuyCrypt sem reescrever nada: só muda o endereço da API. E Claude, ChatGPT e Cursor, pelo servidor MCP da BuyCrypt, veem os torneios, o rating dos traders e a sua conta demo.

1 linhano código do bot: outra base URL
500+contratos perpétuos em USDT
9ferramentas MCP, todas só de leitura
api.buycrypt.comresposta ao vivo
GET https://api.buycrypt.com/fapi/v1/ticker/price?symbol=BTCUSDT
{ "symbol": "BTCUSDT", "price": "…" }
# seu bot na Binance USD-M Futures
- base_url="https://fapi.binance.com"
+ base_url="https://api.buycrypt.com"
Duas formas de conectar

O bot opera. O assistente responde às perguntas.

API para bots de trading

O formato das requisições, das assinaturas e das respostas é o mesmo da Binance USD-M Futures. O bot envia ordens para a sua conta demo da BuyCrypt: preços de mercado, dinheiro demo.

  • As mesmas bibliotecas: binance-futures-connector, seu próprio código com requests
  • REST, WebSocket privado via listenKey, candles e mark price no stream
  • A chave é criada no aplicativo e funciona com uma única conta demo
Documentação da API →

MCP para assistentes de IA

Um endereço nas configurações do Claude, do ChatGPT ou do Cursor, e o assistente busca os dados da BuyCrypt sozinho quando você pergunta sobre eles.

  • Torneios, prêmios, tabela de participantes, líderes por moeda
  • Passaporte do trader: rating de 0 a 1000, nível, estilo de trading
  • Sua conta demo: saldo, posições, ordens (com uma chave somente leitura)
Conectar em um minuto →
MCP · Model Context Protocol

MCP: conecte a BuyCrypt ao Claude, ao ChatGPT e ao Cursor

MCP é um padrão aberto pelo qual assistentes de IA se conectam a dados e ferramentas externas. O servidor da BuyCrypt entrega ao assistente dados ao vivo da plataforma. Não é preciso cadastro nem chave; a chave só é necessária para a sua conta demo.

https://buycrypt.com/mcp
Streamable HTTPsem loginsomente leitura
  1. Abra o claude.ai ou o aplicativo Claude Desktop → Customize → Connectors.
  2. Clique em + Add → Add custom connector.
  3. Nome: BuyCrypt; endereço: https://buycrypt.com/mcp; depois, Continue.
  4. Na seção Authentication, escolha No sign in e clique em Add.

Conectores próprios estão disponíveis em todos os planos do Claude; no gratuito, apenas um. Nas equipes Team e Enterprise, quem adiciona o conector é o proprietário da organização, em Organization settings → Connectors. Para a sua conta demo, adicione a chave no bloco Request headers da mesma janela — veja como.

  1. Execute um único comando no terminal:
Terminal
claude mcp add --transport http buycrypt https://buycrypt.com/mcp

Verificação: claude mcp list — o buycrypt aparece na lista. Adicione --scope user para que o servidor fique disponível em todos os projetos.

  1. Abra chatgpt.com/plugins no navegador.
  2. Clique em + → Add custom MCP server.
  3. Nome: BuyCrypt; na seção Connection, escolha o endereço público e informe https://buycrypt.com/mcp.
  4. Authentication: No authentication. Confirme o aviso I understand and want to continue e clique em Create.

Servidores MCP próprios no ChatGPT só podem ser adicionados na versão web e não estão disponíveis em todos os planos. Se a opção não aparecer, ela foi bloqueada pelo plano ou pelo administrador do workspace. Não é possível conectar a sua conta demo no ChatGPT: ele não repassa chaves ao servidor. Para isso, use Claude, Claude Code ou Cursor.

Adicionar ao Cursor

O botão abre o Cursor com a configuração pronta. Ou manualmente: adicione em ~/.cursor/mcp.json (para todos os projetos) ou em .cursor/mcp.json na raiz do projeto:

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

Qualquer cliente com suporte a Streamable HTTP serve: informe o endereço https://buycrypt.com/mcp, sem autorização. Se o cliente só consegue rodar servidores locais (stdio), conecte pela ponte mcp-remote; é preciso Node.js:

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

Para testar o servidor sem assistente: npx @modelcontextprotocol/inspector --cli https://buycrypt.com/mcp --transport http --method tools/list

O que o servidor sabe fazer

platform_overview

Quais torneios estão em andamento, qual começa a seguir, quantos traders há nos torneios, os últimos prêmios.

sem chave
list_tournaments

Torneios em andamento, próximos e encerrados: moeda, método de pontuação, premiação, entrada, participantes.

sem chave
get_tournament

Um torneio: prêmios por posição e a tabela de participantes com os resultados.

sem chave
leaderboard

Líderes por moeda em 7, 30 ou 90 dias — como na página «Top traders».

sem chave
trader_profile

Passaporte do trader pelo apelido: rating de 0 a 1000, nível, os cinco componentes da nota, estilo. Apenas perfis públicos.

sem chave
market_ticker

Preço e variação em 24 horas de um contrato perpétuo, por exemplo BTCUSDT.

sem chave
demo_account

Saldo, margem e posições abertas da sua conta demo.

sua chave
demo_open_orders

Ordens abertas da sua conta demo.

sua chave
demo_recent_results

Últimos resultados da conta demo: lucro e prejuízo das operações fechadas, taxas.

sua chave

Nenhuma ferramenta envia ordens, entra em torneios ou transfere dinheiro — o servidor só lê.

O que perguntar ao assistente

Clique em uma pergunta para copiá-la.

Exemplo ao vivo

É assim que o assistente vê a BuyCrypt

Abaixo está a resposta real do servidor https://buycrypt.com/mcp neste momento. O assistente recebe esses mesmos dados e os reconta com as próprias palavras.

Mostre os 5 melhores traders do mês em BTC
o assistente chama leaderboard{"coin":"BTC","period_days":30,"limit":5}
Carregando a resposta do servidor…
Com a sua chave

Sua conta demo no assistente

As ferramentas demo_account, demo_open_orders e demo_recent_results leem sua conta demo. Para elas, o cliente envia ao servidor sua chave de API em dois cabeçalhos: X-BuyCrypt-Api-Key e X-BuyCrypt-Api-Secret. Para o assistente, crie uma chave somente leitura: ela vê saldo, posições e ordens, mas a BuyCrypt não executa com ela ordens, cancelamentos nem mudanças de alavancagem (resposta 403). Como obter.

Terminal
claude mcp add --transport http buycrypt https://buycrypt.com/mcp \
  --header "X-BuyCrypt-Api-Key: SUA_API_KEY" \
  --header "X-BuyCrypt-Api-Secret: SEU_API_SECRET"
mcp.json
{
  "mcpServers": {
    "buycrypt": {
      "url": "https://buycrypt.com/mcp",
      "headers": {
        "X-BuyCrypt-Api-Key": "SUA_API_KEY",
        "X-BuyCrypt-Api-Secret": "SEU_API_SECRET"
      }
    }
  }
}
  1. Ao adicionar o conector (Customize → Connectors → Add custom connector), depois do endereço escolha No sign in.
  2. No bloco Request headers, adicione dois cabeçalhos: X-BuyCrypt-Api-Key e X-BuyCrypt-Api-Secret, com os seus valores.
  3. Clique em Add. Se o conector já tiver sido adicionado sem chave, remova-o e adicione de novo com os cabeçalhos.

Somente leitura

O servidor MCP não abre nem cancela ordens. Ele precisa da chave para ler saldo, posições e ordens. Uma chave somente leitura não permite operar, mesmo que caia em mãos erradas.

Uma conta demo

A chave da BuyCrypt funciona apenas com a conta demo para a qual foi criada. Ela não dá acesso a contas reais em corretoras.

Uma chave separada

Crie para o assistente uma chave somente leitura separada. A chave vai apenas para buycrypt.com; o servidor não a armazena nem a registra em logs. Você pode revogá-la no mesmo lugar onde a criou.

API para bots de trading

API compatível com Binance USD-M Futures

Caminhos, assinatura HMAC-SHA256, parâmetros e formato das respostas são iguais aos da Binance USD-M Futures. A única diferença: as ordens são executadas na sua conta demo da BuyCrypt a preços de mercado e não vão para uma corretora real. Assim, você testa a estratégia no mercado sem arriscar dinheiro.

Como começar

  1. Conta. Entre no terminal web ou no aplicativo BuyCrypt com Google ou Apple. A conta demo aparece na hora.
  2. Chave. No terminal web ou no app: Perfil → Chaves de API → sua conta demo → bloco Bot API keys → Generate API key. Copie apiKey e apiSecret: o segredo aparece uma única vez. Para um assistente de IA ou monitoramento, o terminal web tem o botão Generate read-only key (for MCP).
  3. Endereço. Na sua biblioteca, use https://api.buycrypt.com em vez de https://fapi.binance.com. Os caminhos /fapi/v1/… continuam os mesmos.
  4. Verificação. Consulte o saldo — GET /fapi/v2/balance: a resposta trará os USDT da sua conta demo.

O que é importante saber

  • Apenas contratos em USDT e modo de posição única (one-way); o modo hedge não é suportado.
  • O preço do ticker está em /fapi/v1/ticker/price. O caminho /fapi/v2/ticker/price, chamado pelas versões novas das bibliotecas, ainda não é suportado.
  • No stream público chegam candles @kline_1m (a cada 5 s) e @markPrice (a cada segundo).
  • recvWindow: 5.000 ms por padrão, até 60.000 ms. Sincronize o relógio por /fapi/v1/time.
  • Uma conta com chave de API de trading recebe o ícone 🤖 no ranking do app: todos veem que quem opera é um programa.
  • Permissões da chave: a chave comum (READ_TRADE) lê e opera; a chave somente leitura (READ) permite apenas requisições GET e listenKey. Ordem, cancelamento, alavancagem ou margem com ela retornam HTTP 403 e o código -2015.
pip install binance-futures-connector
import os
from binance.um_futures import UMFutures

client = UMFutures(
    key=os.environ["BUYCRYPT_API_KEY"],        # chave do aplicativo BuyCrypt
    secret=os.environ["BUYCRYPT_API_SECRET"],
    base_url="https://api.buycrypt.com",      # a única linha que muda
)

print(client.balance())                             # USDT da conta 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
# dados públicos — sem chave
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 da conta demo — requisição assinada
KEY="SUA_API_KEY"; SECRET="SEU_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

A base URL do REST é https://api.buycrypt.com. Os métodos assinados exigem o cabeçalho X-MBX-APIKEY, timestamp e signature.

Dados de mercado sem chave
GET/fapi/v1/ping · /fapi/v1/timeTeste de conexão e hora do servidor em ms.
GET/fapi/v1/exchangeInfoContratos, filtros de preço e quantidade, limites.
GET/fapi/v1/ticker/price · /ticker/24hr · /ticker/bookTickerÚltimo preço, estatísticas de 24 horas, melhores preços de compra e venda.
GET/fapi/v1/depth · /fapi/v1/klinesLivro de ofertas e candles.
GET/fapi/v1/premiumIndex · /fapi/v1/fundingRateMark price, índice e taxa de financiamento.
Conta e posições assinados
GET/fapi/v2/account · /fapi/v3/accountSaldo, margem e posições em uma só resposta (v1, v2 e v3 são iguais).
GET/fapi/v2/balance · /fapi/v3/balanceSaldo da conta demo, somente USDT.
GET/fapi/v2/positionRisk · /fapi/v3/positionRiskPosições abertas: preço de entrada, mark price, resultado não realizado, preço de liquidação.
GET/fapi/v1/userTrades · /fapi/v1/incomeOperações por símbolo e histórico de resultados: lucro e prejuízo, taxas.
GET/fapi/v1/commissionRate · /fapi/v1/leverageBracketTaxa por símbolo e faixas de alavancagem.
Trading assinados
POST/fapi/v1/orderNova ordem: MARKET, LIMIT, STOP, STOP_MARKET, TAKE_PROFIT, TAKE_PROFIT_MARKET, TRAILING_STOP_MARKET; reduceOnly, closePosition, timeInForce, newClientOrderId.
GET/fapi/v1/order · /openOrders · /allOrdersUma ordem, ordens abertas, histórico.
PUT/fapi/v1/orderAlterar uma ordem limitada.
DELETE/fapi/v1/order · /allOpenOrdersCancelar uma ordem ou todas de um símbolo.
POST/fapi/v1/batchOrdersVárias ordens em uma requisição; DELETE cancela uma lista.
POST/fapi/v1/algoOrderOrdens condicionais (stop, take profit, trailing); GET /openAlgoOrders, /allAlgoOrders, DELETE /algoOrder, /algoOpenOrders.
POST/fapi/v1/leverage · /fapi/v1/marginTypeAlavancagem e tipo de margem por símbolo.
GET/fapi/v1/positionSide/dualSempre dualSidePosition: false — modo de posição única.
Streams de WebSocket
POST/fapi/v1/listenKeyChave do stream privado por 60 minutos; PUT renova, DELETE encerra.
WSwss://api.buycrypt.com/fapi/ws/<listenKey>Eventos da sua conta: ORDER_TRADE_UPDATE, ACCOUNT_UPDATE, MARGIN_CALL — no formato da Binance.
WSwss://api.buycrypt.com/fapi/ws-market/btcusdt@markPriceStream público de um mercado: @markPrice e @kline_1m.
WSwss://api.buycrypt.com/stream?streams=btcusdt@markPrice/ethusdt@kline_1mVários streams em uma conexão, respostas encapsuladas em {"stream", "data"}.
Limites e erros
1 min2.400 de peso · 1.200 leituras assinadasPor chave de API. As respostas trazem os cabeçalhos X-MBX-USED-WEIGHT-1M e X-MBX-ORDER-COUNT-10S.
10 s300 ordensSe excedido — HTTP 429 e Retry-After.
ERR-1021 · -1022 · -2014 · -2015Horário fora do recvWindow · assinatura inválida · formato de chave inválido · chave revogada ou inválida (HTTP 401), chave somente leitura em uma requisição de trading (HTTP 403).
ERR-1102 · -2010 · -2011 · -2019Falta parâmetro obrigatório · ordem rejeitada · ordem não encontrada · margem insuficiente.
Assinantes para o seu bot (beta)

O bot pode ser registrado como público: o usuário toca em «Conectar» no aplicativo, a BuyCrypt abre para ele uma conta demo separada com 1.000 USDT demo e emite uma chave só para essa conta. A chave vai para o seu webhook no evento subscription.created, e o bot opera na conta demo do assinante. Quando o usuário se desconecta, as posições são fechadas, a chave deixa de funcionar e você recebe subscription.disconnected.

O bot não recebe contas reais nem chaves de corretora dos usuários — apenas a chave de uma conta demo separada.

O registro é um POST /fapi/v1/bot/profiles assinado, com os parâmetros slug, displayName, webhookUrl (somente HTTPS) e webhookSecret (32 caracteres ou mais); o bot fica com o status PENDING_REVIEW até a análise. Cada evento é assinado: o cabeçalho X-BuyCrypt-Signature = HMAC-SHA256(webhookSecret, timestamp + "." + corpo), e o horário vem em X-BuyCrypt-Timestamp. A entrega é repetida até 6 vezes (na hora, após 10 s, 30 s, 2 min, 10 min, 1 h); após 10 entregas com falha seguidas, o webhook é desativado — o suporte pode reativá-lo.

Verificação da assinatura do 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:   # mais de 5 minutos — rejeitar
        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"])
Chaves e segurança

A chave da BuyCrypt abre apenas a conta demo

Vinculada a uma conta

A chave de API é criada para uma conta demo específica e funciona só com ela. Contas reais em corretoras não ficam acessíveis por esta API. A chave somente leitura não opera nem nessa conta.

O segredo é exibido uma vez

Guarde a chave e o segredo em variáveis de ambiente ou em um gerenciador de segredos, não no código nem em repositórios públicos.

Revogação em um segundo

No terminal web ou no app, no mesmo bloco “Bot API keys”, clique em “Revoke”: todas as requisições com essa chave passam a receber o erro 401 na hora.

Perguntas

Perguntas frequentes

O bot opera com dinheiro real?

Não. A API da BuyCrypt executa as ordens na sua conta demo: preços de mercado, saldo em USDT demo. As ordens não vão para uma corretora, então dá para testar a estratégia sem risco.

Preciso reescrever o bot para a BuyCrypt?

Normalmente, não. Se o bot funciona com a Binance USD-M Futures, troque a base URL por https://api.buycrypt.com e use uma chave da BuyCrypt. Caminhos, assinatura e formato das respostas são os mesmos. Confira se o bot não usa o modo hedge nem o caminho /fapi/v2/ticker/price.

Onde consigo uma chave de API?

No terminal web ou no app BuyCrypt: Perfil → Chaves de API → sua conta demo → Bot API keys → Generate API key. Para MCP e assistentes de IA, use “Generate read-only key (for MCP)” no terminal web: essa chave vê a conta, mas não opera. O segredo aparece uma única vez, salve-o logo. No mesmo lugar você pode revogar a chave.

O que é MCP e para que serve?

MCP (Model Context Protocol) é um padrão aberto pelo qual assistentes de IA se conectam a dados externos. Depois de conectar o servidor https://buycrypt.com/mcp, você pode perguntar ao Claude, ao ChatGPT ou ao Cursor sobre torneios, líderes e o passaporte do trader, e o assistente responde com dados ao vivo da BuyCrypt.

Preciso me cadastrar para conectar o MCP?

Não. Torneios, ranking, passaportes de traders e preços estão disponíveis sem chave. A chave só é necessária para as três ferramentas que leem sua conta demo, e uma chave somente leitura basta.

Um assistente de IA pode operar via MCP?

Não. Todas as nove ferramentas do servidor apenas leem dados: nenhuma ordem é enviada ou cancelada, ninguém entra em torneios, nenhum dinheiro é transferido.

O desenvolvedor do bot vai receber minhas chaves de corretora?

Não. Quando você conecta o bot de outra pessoa, a BuyCrypt abre para ele uma conta demo separada e emite uma chave só para ela. Suas contas reais e chaves de corretora não são repassadas ao bot. Mais sobre proteção de dados na página «Segurança».

Comece pela conta demo

A conta BuyCrypt é gratuita: conta demo para o bot, chave de API no aplicativo, torneios e um rating que mostra quanto vale a sua estratégia.