Playground ↗
Português

Visão geral#

A API da Catapult alimenta uma plataforma de derivativos de tokens sintéticos — negociação e dados de tokens — através de um único endpoint GraphQL para operações de requisição/resposta e um endpoint WebSocket para assinaturas em tempo real.

Endpoints base#

Transporte URL
GraphQL (HTTP) https://public-api.catapult.trade/graphql
WebSocket wss://public-api.catapult.trade/graphql

Todas as requisições HTTP usam POST com um corpo JSON no formato { "query": "...", "variables": { ... } }.

Autenticação#

As operações autenticadas usam um token JWT (bearer), enviado no cabeçalho Authorization:

Authorization: Bearer <your-jwt-token>

O token é um JSON Web Token (JWT), válido por 730 dias (≈2 anos) a partir da emissão por padrão — rotacione-o antes de expirar. Apenas ping é público; todas as outras operações exigem o token bearer, e leituras como tokens e turboToken também precisam da permissão tokens.read.

Criar uma chave de API#

Gere seu token no painel da sua conta em catapult.trade/settings/api-key (Configurações → API Key). Você pode gerenciar sua conta em catapult.trade.

Convenções#

  • Os IDs são strings opacas; não os parseie.
  • Os valores monetários são inteiros codificados como string do tipo String! (ex.: balanceUsdtDrops) — parseie-os como BigInt, nunca como float. O único scalar personalizado é DateTime.
  • Os timestamps usam o scalar DateTime (ISO-8601, UTC).
  • As consultas de listas são paginadas por cursor via input.pagination: limit (padrão 10) com afterCursor / beforeCursor.

Exemplo rápido#

query Tokens {
  # veja a aba Reference para o PublicTokenListInput completo e os campos do token
  tokens(input: { pagination: { limit: 5 } }) {
    items { id }
  }
}

OAuth de chave de API#

Este link permite obter a chave de API de um usuário para criar diversos recursos, por exemplo copy trading. O usuário concede as permissões à sua chave de API, e ela é enviada para a sua URL de callback na lista de permissões.

https://catapult.trade/settings/api-key?bot_id=<WHITELISTED_BOT_ID>

Substitua <WHITELISTED_BOT_ID> pelo ID do seu bot na lista de permissões.

Lista de permissões do bot#

Coloque seu bot na lista de permissões entrando em contato com nossa equipe de desenvolvimento:

[email protected]

Unidades e convenções#

Leia isto primeiro: cada campo monetário da API depende destas convenções.

USDT drops (*UsdtDrops)#

Todos os valores em USDT são inteiros de USDT × 1,000,000 (6 casas decimais), com o sufixo UsdtDrops. São enviados como String! (inteiros codificados como string) — parseie-os como BigInt, nunca como float.

Campo Valor bruto USDT
balanceUsdtDrops 6666670000 6,666.67

Converta com usdt = drops / 1e6 e drops = round(usdt × 1e6) — calcule em BigInt.

Alavancagem (leverageX10)#

A alavancagem é codificada como alavancagem × 10. leverageX10: 125 significa 12.5×; 30 significa .

Colateral vs nocional#

notional = collateral × leverage. O que você aporta é o colateral; o valor de face da posição em USDT é o nocional.

Ao abrir uma posição, o valor é colateral, antes da taxa. tradeOpen aceita exatamente um de usdtDrops (em USDT) ou amountWei (em tokens) — o motor deriva o nocional a partir dele e da alavancagem. Não é o nocional.

Saldos#

userBalance { balanceUsdtDrops, inPositionsBalanceUsdtDrops }:

Campo Significado
balanceUsdtDrops Saldo livre — antes da taxa, os USDT efetivamente movidos ao abrir.
inPositionsBalanceUsdtDrops Colateral atualmente bloqueado em posições abertas (após a taxa).

Mídia do token (fileId)#

A imagem de um token é anexada passando um fileId para tokenCreate. Há duas formas de obter um:

  1. RandomizadortokenRandomizedPreset retorna um fileId pronto para uso (além de nome, símbolo, modo, etc.) que você pode passar direto para tokenCreate.
  2. Upload próprio — um fluxo S3 presigned-POST de três etapas:
    • fileUpload(input) → retorna uma URL S3 presigned-POST mais os campos de formulário que o cliente deve incluir no POST multipart.
    • O cliente faz POST da imagem para essa URL do S3 com esses campos exatos.
    • fileFinalize(id) → marca o upload como concluído após o POST no S3 e retorna a URL pública do arquivo; use o arquivo resultante como imagem do token.

Limites de upload: apenas JPEG ou PNG, máximo 5 MB, mínimo 314×314 px. O POST pré-assinado deve concluir em 15 segundos após a chamada fileUpload, e os uploads são limitados a 200 por hora por IP.

Modos de velocidade de tokens#

Cada token funciona em um de cinco modos de velocidade. O campo de criação/randomização é turboTokenMode; os registros de token expõem speedMode. SLOW e NORMAL são o mesmo modo com dois nomes.

Os valores de alavancagem máxima e de tempo de vida abaixo são configuração atual que pode mudar no servidor — trate-os como valores atuais e verifique na consulta de leverage-config ao vivo.

Modo Tempo de vida típico Alavancagem máx. (motor)
SLOW / NORMAL 4h 125×
FAST 1h 40×
FLASH 15mins 15×
CRACK 3mins
MAYHEM 30s

A alavancagem máxima é um limite fixo do motor#

A alavancagem máxima de cada modo é um limite rígido aplicado pelo motor — use o valor da tabela diretamente. O motor rejeita qualquer ordem acima dele.

Taxas e tamanho da posição#

Taxa de abertura (~1%)#

Abrir uma posição cobra uma taxa de abertura de ~1% (0.01), deduzida do colateral que você envia:

collateral_post_fee = collateral_sent × (1 − fee)

Para que o colateral bloqueado fique exatamente em notional / leverage, envie:

collateral_sent = (notional / leverage) / (1 − fee)

Limite de nocional por posição#

O servidor aplica um limite de nocional por posição — atualmente 20,000 USDT por (token, alavancagem, lado). Excedê-lo retorna Maximum notional limit … exceeded. Verifique o valor exato na configuração ao vivo; pode variar por modo ou alavancagem.

Posição máxima disponível (nocional)#

Seja fee = 0.01, free = balanceUsdtDrops / 1e6, inPos = inPositionsBalanceUsdtDrops / 1e6, capTotal = seu limite total de colateral opcional, capPos = limite de nocional por posição (~20,000), L = alavancagem:

maxCollateralFromBalance = free × (1 − fee)
remainingTotalBudget     = capTotal − inPos          # se você aplicar um limite total
maxNewCollateral         = min(maxCollateralFromBalance, remainingTotalBudget)
maxNotionalAchievable    = maxNewCollateral × L
maxPositionNotional      = min(maxNotionalAchievable, capPos)

Colateral a enviar = (maxPositionNotional / L) / (1 − fee).

Pegadinha de arredondamento. Após dividir por (1 − fee), um round(collateral × 1e6) ingênuo ultrapassa o limite por alguns drops e a abertura é rejeitada. Arredonde para baixo o colateral em drops (BigInt) para um passo pequeno (ex.: 10 drops = 0.00001 USDT) antes de enviar. Você perde uma fração insignificante de centavo e fica abaixo do limite em qualquer alavancagem.

Exemplo resolvido#

FLASH, 3×, taxa 1%, limite 20,000 de nocional:

collateral_post_fee target = 20,000 / 3        = 6,666.67
collateral_sent            = 6,666.67 / 0.99 ≈ 6,734.01   (arredondado para baixo em drops)
→ bloqueado após taxa ≈ 6,666.67, nocional ≈ 20,000

Códigos de status#

As respostas GraphQL retornam HTTP 200 mesmo quando uma operação falha — inspecione o array errors[] e o extensions.code de cada erro. Problemas de transporte usam códigos HTTP padrão.

Códigos de status HTTP#

Código Significado
200 Resposta padrão. TODOS os resultados de operação — sucesso e erros, incluindo autenticação, permissão, limite de taxa, não encontrado e regras de negócio — retornam 200; inspecione errors[] e errors[].extensions.code.
400 Requisição GraphQL malformada ou inválida (erro de análise, campo desconhecido, variável incorreta).
500 Erro inesperado do servidor. Seguro repetir com backoff.

O serviço GraphQL retorna falhas de autenticação, permissão e limite de taxa dentro da resposta como 200 (ver códigos de erro GraphQL). Os 401 / 403 / 429 de transporte só ocorrem se um gateway/CDN upstream rejeitar a requisição antes de chegar à API.

Códigos de erro GraphQL#

Os códigos diferenciam maiúsculas; corresponda à string exata. Códigos de domínio são PascalCase (ex.: RateLimited); alguns códigos do framework usam maiúsculas com sublinhado (ex.: UNAUTHENTICATED).

Código Significado
UNAUTHENTICATED Sem token válido, ou o token está expirado/desativado, ou o usuário está bloqueado.
BAD_USER_INPUT Um argumento ou variável falhou na validação.
GRAPHQL_VALIDATION_FAILED A consulta é estruturalmente inválida (campo/tipo desconhecido).
RateLimited Limite de taxa excedido (ver Limites de uso).
NotFound Um recurso referenciado não existe.
InternalError Erro inesperado do servidor.

Formato do erro#

{
  "errors": [
    { "message": "Token not found", "extensions": { "code": "NotFound" } }
  ],
  "data": null
}

Limites de uso#

As operações GraphQL compartilham um único bucket de limite, indexado por token de API (jti) e IP: 600 consultas/min e 60 mutações/min. Ao exceder um limite, retorna uma resposta HTTP 200 cujo errors[] contém um único erro com extensions.code = RateLimited. A API não envia status 429 nem cabeçalho Retry-After; dicas de tempo de retry vêm em extensions do erro.

Limites HTTP (GraphQL)#

Operação Limite Janela
Consultas 600 1 minuto
Mutações 60 1 minuto

Limites de WebSocket#

Escopo Limite
Assinaturas por conexão 1000
Mensagens recebidas 200 / segundo (rajada 400)
Tempo limite de connection_init 10 s (código de fechamento 4408)

Os limites de WebSocket são configuráveis no servidor, portanto a produção pode diferir destes padrões. São aplicados por conexão, não por IP.

Cabeçalhos de resposta#

A API não emite cabeçalhos de limite (X-RateLimit-*, Retry-After). Um gateway upstream pode adicioná-los; não dependa deles.

Pegadinhas e idempotência#

Uma lista do que os integradores mais erram.

Dinheiro e dimensionamento#

  • Drops são inteiros — BigInt de ponta a ponta; nunca faça parse de *UsdtDrops como float.
  • O valor de abertura que você envia (usdtDrops ou amountWei) é colateral, antes da taxa, não o nocional.
  • O limite de nocional é aplicado em drops; arredonde para baixo seu colateral para evitar ultrapassar por alguns drops (ver «Taxas e tamanho da posição»).
  • A alavancagem máxima é um limite fixo do motor por modo (ver «Modos de velocidade de tokens») — use-o diretamente.

Tokens#

  • O randomizador retorna um rank aleatório (Competition | Private | Public). Force Public se o token precisar ser listado / copiável.
  • tokenCreate sempre usa pagamento por saldo — o tipo de pagamento não pode ser sobrescrito.
  • Não há flag de "ativo" no servidor para tokens — filtre no cliente por endDate.

Abertura e fechamento#

  • tradeOpen exige exatamente um de usdtDrops (em USDT) ou amountWei (em tokens) — nunca ambos, nunca nenhum.
  • tradeClose fecha uma posição aberta via USER_SELL.

Take-profit / stop-loss (tradeLimit*)#

  • tradeLimitCreate exige pelo menos um gatilho (SL ou TP).
  • No update, um null explícito para um lado o limpa; um campo omitido é preservado.
  • tradeLimitUpdate rejeita uma entrada totalmente nula (Validation failed: input=MissingValue) — use tradeLimitDelete para limpar.
  • Não há exclusão por lado; tradeLimitDelete remove ambos, TP e SL.

Assinaturas (WebSocket)#

  • Autentique no connection_init com payload: { Authorization: "Bearer <apiKey>" }.
  • A assinatura positions transmite a união PublicPositionEventPublicPositionOpenedEvent | PublicPositionClosedEvent | PublicPositionUpdatedEvent. Verifique o campo type antes de ler os campos específicos do evento.
  • PublicPositionClosedEvent carrega positionId, tokenId, type, closeType, closedAt, closePriceUsdtDrops, receivedAmountUsdtDrops, pnlUsdtDrops. Os campos buyPriceUsdtDrops, collateralUsdtDrops, notionalUsdtDrops, leverageX10 pertencem ao PublicPositionOpenedEvent, não ao de fechamento.
  • Os eventos de fechamento são at-least-once e não são reenviados. Um fechamento emitido enquanto você reconecta é perdido pela nova assinatura — consulte cada posição aberta ao (re)assinar para detectar fechamentos perdidos e deduplique por positionId.

API WebSocket#

Os dados em tempo real são entregues por uma conexão WebSocket usando o protocolo GraphQL over WebSocket (graphql-transport-ws). Use-o para operações de subscription, como atualizações de preço ao vivo.

Conexão#

Abra um WebSocket em:

wss://public-api.catapult.trade/graphql

Negocie o subprotocolo graphql-transport-ws. Depois que o socket abrir, envie uma mensagem connection_init; o servidor responde com connection_ack.

Propriedade Valor
URL wss://public-api.catapult.trade/graphql
Subprotocolo graphql-transport-ws
Keep-alive o servidor envia ping a cada 30s; responda com pong
Máx. de assinaturas 1000 por conexão

Ciclo de vida#

  1. O cliente abre o socket com o subprotocolo graphql-transport-ws.
  2. Cliente → {"type":"connection_init"}.
  3. Servidor → {"type":"connection_ack"}.
  4. Cliente → subscribe com um id único e um documento GraphQL.
  5. Servidor → uma ou mais mensagens next, depois complete.

Assinatura#

{
  "id": "1",
  "type": "subscribe",
  "payload": {
    "query": "subscription($t: ID!) { priceTicks(tokenId: $t) { tokenId price } }",
    "variables": { "t": "<tokenId>" }
  }
}

Mensagem de dados#

{
  "id": "1",
  "type": "next",
  "payload": { "data": { "priceTicks": { "tokenId": "tok_123", "price": "0.0123" } } }
}

Cancelar assinatura#

Envie uma mensagem complete para parar uma assinatura; feche o socket para parar todas.

{ "id": "1", "type": "complete" }

Erros#

Os erros no nível da operação chegam como uma mensagem error para o id correspondente:

{ "id": "1", "type": "error", "payload": [{ "message": "Token not found" }] }

Conexões que não enviam connection_init em 10 segundos são fechadas com o código 4408 (tempo de inicialização da conexão esgotado).

Queries

boosterAvailability#

Disponibilidade global de boosters: slots ativos/máximos/disponíveis e configuração por tier (preço, duração, boost de pontos, modos de velocidade aplicáveis).

boosterAvailability: PublicBoosterAvailabilityOutput!

Argumentos

Sem argumentos.

boosters#

Todos os tokens com um boost atualmente ativo, incluindo a porcentagem de retorno atual com decaimento ao longo do tempo.

boosters: [PublicBoostedTokenOutput!]!

Argumentos

Sem argumentos.

checkReferral#

Retorna o perfil mínimo do indicado e o saldo livre em USDT quando o ID de usuário fornecido é um dos indicados de quem faz a chamada. Retorna null quando o usuário não é um indicado de quem faz a chamada autenticado (ou não existe).

checkReferral(referralUserId: ID!): PublicCheckReferralOutput

Argumentos

NomeTipoPadrãoDescrição
referralUserId ID!

closedPositions#

Lista paginada por cursor das posições fechadas do usuário autenticado, das mais recentes para as mais antigas. Opcionalmente filtrada para um único token.

closedPositions(input: PublicClosedPositionsInput!): PublicClosedPositionsOutput!

Argumentos

NomeTipoPadrãoDescrição
input PublicClosedPositionsInput!

ping#

Sonda de saúde para a API pública GraphQL. Retorna "pong". Não requer autenticação.

ping: String!

Argumentos

Sem argumentos.

tokenChartData#

Chart candles and current price for a token.

tokenChartData(tokenId: ID!): PublicTokenChartDataOutput!

Argumentos

NomeTipoPadrãoDescrição
tokenId ID!

tokenRandomizedPreset#

Retorna uma predefinição de token aleatória (nome, símbolo, avatar, flags de modo) útil para pré-preencher os inputs de criação de token.

tokenRandomizedPreset(allowedValues: TurboTokenPresetAllowedValuesInput): PublicTokenPresetOutput!

Argumentos

NomeTipoPadrãoDescrição
allowedValues TurboTokenPresetAllowedValuesInput

tokens#

Lista tokens com paginação por cursor, ordenação e filtro.

tokens(input: PublicTokenListInput!): PublicTokenListOutput!

Argumentos

NomeTipoPadrãoDescrição
input PublicTokenListInput!

turboToken#

Obtém um único token por id com estatísticas de negociação agregadas.

turboToken(tokenId: ID!): PublicTokenDetailsOutput!

Argumentos

NomeTipoPadrãoDescrição
tokenId ID!

userBalance#

Saldo do usuário autenticado. Retorna o saldo livre e o valor alocado em posições abertas, em USDT drops.

userBalance: PublicBalanceOutput!

Argumentos

Sem argumentos.

userMe#

Perfil do usuário autenticado. Exclui role, atribuição kaito e informações de sessão.

userMe: PublicUserOutput!

Argumentos

Sem argumentos.

Mutations

boosterBuy#

Compra um booster para um dos tokens do usuário autenticado. Retorna true em caso de sucesso.

boosterBuy(input: PublicBoosterBuyInput!): Boolean!

Argumentos

NomeTipoPadrãoDescrição
input PublicBoosterBuyInput!

claimAllCreatorFees#

Claim all available creator fees across tokens.

claimAllCreatorFees: PublicClaimAllCreatorFeesOutput!

Argumentos

Sem argumentos.

claimCreatorFee#

Claim accumulated creator fees for a single token.

claimCreatorFee(input: PublicClaimCreatorFeeInput!): PublicClaimCreatorFeeOutput!

Argumentos

NomeTipoPadrãoDescrição
input PublicClaimCreatorFeeInput!

fileFinalize#

Marca um upload como concluído após o POST do S3 ser bem-sucedido. Retorna a URL pública do arquivo.

fileFinalize(id: String!): PublicFileFinalizeOutput!

Argumentos

NomeTipoPadrãoDescrição
id String!

fileUpload#

Inicia um upload de arquivo. Retorna uma URL de POST pré-assinada do S3 com os campos de formulário que o cliente deve incluir no upload multipart.

fileUpload(input: PublicFileUploadInput!): PublicFileUploadOutput!

Argumentos

NomeTipoPadrãoDescrição
input PublicFileUploadInput!

tokenCreate#

Cria um novo turbo token. Usa sempre pagamento baseado em saldo; o tipo de pagamento não pode ser substituído.

tokenCreate(input: PublicTokenCreateInput!): String!

Argumentos

NomeTipoPadrãoDescrição
input PublicTokenCreateInput!

tradeClose#

Fecha uma posição aberta via USER_SELL.

tradeClose(input: PublicTradeCloseInput!): PublicTradeCloseOutput!

Argumentos

NomeTipoPadrãoDescrição
input PublicTradeCloseInput!

tradeLimitCreate#

Anexa um limite de SL/TP a uma posição aberta. Pelo menos um gatilho (SL ou TP) deve ser especificado.

tradeLimitCreate(input: PublicTradeLimitCreateInput!): PublicTradePositionOutput!

Argumentos

NomeTipoPadrãoDescrição
input PublicTradeLimitCreateInput!

tradeLimitDelete#

Remove o limite de SL/TP de uma posição aberta.

tradeLimitDelete(input: PublicTradeLimitDeleteInput!): PublicTradePositionOutput!

Argumentos

NomeTipoPadrãoDescrição
input PublicTradeLimitDeleteInput!

tradeLimitUpdate#

Substitui o limite de SL/TP em uma posição aberta.

tradeLimitUpdate(input: PublicTradeLimitUpdateInput!): PublicTradePositionOutput!

Argumentos

NomeTipoPadrãoDescrição
input PublicTradeLimitUpdateInput!

tradeOpen#

Abre uma posição. O corpo deve especificar exatamente um entre `usdtDrops` (denominado em USDT) ou `amountWei` (denominado em token).

tradeOpen(input: PublicTradeOpenInput!): PublicTradePositionOutput!

Argumentos

NomeTipoPadrãoDescrição
input PublicTradeOpenInput!

Subscriptions

positions#

Stream de eventos de posição para o usuário autenticado. Na inicialização, emite um snapshot de cada posição aberta (cada uma como POSITION_OPENED) e, em seguida, transmite ao vivo os eventos POSITION_OPENED / POSITION_CLOSED / POSITION_UPDATED.

positions: PublicPositionEvent!

Argumentos

Sem argumentos.

priceTicks#

Ticks de preço ao vivo de um token em USDT.

priceTicks(tokenId: ID!): PublicPriceTick!

Argumentos

NomeTipoPadrãoDescrição
tokenId ID!

tokenCreated#

Stream de turbo tokens recém-criados

tokenCreated: PublicTokenCreatedEvent!

Argumentos

Sem argumentos.

unclaimedReward#

Stream of unclaimed reward balances for the authenticated user.

unclaimedReward: PublicUnclaimedRewardOutput!

Argumentos

Sem argumentos.

Objects

CursorPaginationMetaOutput object#

Campos

NomeTipoDescrição
firstCursor String
hasNextItems Boolean!
hasPreviousItems Boolean!
lastCursor String

PublicBalanceOutput object#

Campos

NomeTipoDescrição
balanceUsdtDrops String! Saldo livre disponível para negociação. USDT drops (1e6 = 1 USDT).
inPositionsBalanceUsdtDrops String! Capital atualmente alocado em posições abertas. USDT drops.

PublicBoostedTokenOutput object#

Campos

NomeTipoDescrição
avatarUrl String!
boostedUntil DateTime! Quando o boost expira.
boosterType TokenBoosterType!
currentReturnPercentage Float! Porcentagem de retorno atual do boost com decaimento ao longo do tempo.
name String!
symbol String!
tokenId ID!

PublicBoosterAvailabilityOutput object#

Campos

NomeTipoDescrição
active Int! Slots de boost atualmente ativos.
available Int! Slots de boost livres restantes (max - active, com piso em 0).
max Int! Número máximo de tokens com boost simultâneo.
types [PublicBoosterTypeConfigOutput!]! Configuração de cada tier de booster disponível.

PublicBoosterTypeConfigOutput object#

Campos

NomeTipoDescrição
availableModes [SpeedMode!]! Modos de velocidade de token aos quais este tier pode ser aplicado.
durationSeconds Int! Duração do boost em segundos.
pointsBoost Float! Multiplicador de pontos aplicado enquanto o boost está ativo.
priceUsdtDrops String! Preço deste tier. USDT drops (1e6 = 1 USDT).
type TokenBoosterType!

PublicCandleOutput object#

Campos

NomeTipoDescrição
close Float!
high Float!
low Float!
open Float!
time Float!

PublicCheckReferralOutput object#

Campos

NomeTipoDescrição
balanceUsdtDrops String! Saldo livre do usuário indicado. USDT drops (1e6 = 1 USDT).
user PublicMinimalUserOutput!

PublicClaimAllCreatorFeesOutput object#

Campos

NomeTipoDescrição
balanceAfterUsdtDrops String!
claimedAmountUsdtDrops String!
claimedCount Int!

PublicClaimCreatorFeeOutput object#

Campos

NomeTipoDescrição
claimedAmountUsdtDrops String!

PublicClosedPositionOutput object#

Campos

NomeTipoDescrição
amountWei String! Quantidade de token em wei.
boughtUsdtDrops Obsoleto String! Obsoleto; substituído por `paidAmountUsdtDrops`. Valor em USDT drops (1e6 = 1 USDT).
buyPriceUsdtDrops String! Preço de entrada em USDT drops (1e6 = 1 USDT).
closePriceUsdtDrops String Preço de fechamento em USDT drops (1e6 = 1 USDT); null até a liquidação.
closeType TurboTokenPositionCloseType Como a posição foi fechada (manual, liquidação, etc.).
closedAt DateTime Quando a posição foi fechada/liquidada; null se ainda estiver aberta.
collateralUsdtDrops String! Valor do colateral em USDT drops (1e6 = 1 USDT).
currentPriceUsdtDrops String! Preço atual em USDT drops (1e6 = 1 USDT).
endTimestamp DateTime! Horário de término agendado da posição.
id ID!
isScoreBoosted Boolean! Se a pontuação da posição recebeu boost.
leverageX10 Int! Leverage X10 (10 = 1.0x, 20 = 2.0x, 100 = 10.0x).
limit PublicTradeLimitOutput Limite de stop-loss / take-profit anexado, se houver.
liquidationPriceUsdtDrops String Preço de liquidação em USDT drops (1e6 = 1 USDT); null para SPOT 1x LONG.
notionalUsdtDrops String! Valor nocional em USDT drops (collateral * leverage, 1e6 = 1 USDT).
paidAmountUsdtDrops String! Valor pago para abrir a posição em USDT drops (1e6 = 1 USDT).
pnlUsdtDrops String! PnL realizado em USDT drops (1e6 = 1 USDT).
positionType PositionType! Tipo de posição: SPOT (1x LONG) ou FUTURES (LONG / SHORT alavancado).
realizedFeesUsdtDrops String! Total de taxas pagas por esta posição em USDT drops (1e6 = 1 USDT).
scoreForPosition Float! Pontuação do programa de pontos obtida por esta posição.
side PositionSide! Lado da posição: LONG ou SHORT.
timestamp DateTime! Quando a posição foi aberta.
token PublicClosedPositionTokenInfoOutput! O token no qual esta posição foi aberta.

PublicClosedPositionTokenInfoOutput object#

Campos

NomeTipoDescrição
avatarUrl String!
id String!
name String!
rank TurboTokenRank! Rank/tier do token.
speedMode SpeedMode! Modo de velocidade de negociação do token.
symbol String!
tokenDecimals Int! Número de casas decimais para a quantidade do token.

PublicFileFinalizeOutput object#

Campos

NomeTipoDescrição
id ID!
url String! URL pública do arquivo finalizado.

PublicFileUploadOutput object#

Campos

NomeTipoDescrição
fields [PublicFormField!]! Campos de formulário para o POST pré-assinado do S3. Adicione cada (key, value) ao seu `FormData` e, por último, adicione `file`.
id ID! Id do arquivo; passe para `fileFinalize` após o POST do S3.
uploadUrl String! URL para a qual enviar o POST do formulário multipart.

PublicFormField object#

Campos

NomeTipoDescrição
key String!
value String!

PublicMinimalUserOutput object#

Campos

NomeTipoDescrição
avatarToken String!
id ID!
profileName String!

PublicPositionOpenedEvent object#

Campos

NomeTipoDescrição
amountWei String!
buyPriceUsdtDrops String! Preço de entrada em USDT drops.
collateralUsdtDrops String! Valor do colateral em USDT drops (input do usuário menos taxas).
currentPriceUsdtDrops String! Preço atual em USDT drops.
leverageX10 Int!
limit PublicTradeLimitOutput
liquidationPriceUsdtDrops String Preço de liquidação em USDT drops (null para SPOT 1x LONG).
notionalUsdtDrops String! Valor nocional em USDT drops (collateral * leverage).
paidAmountUsdtDrops String! Valor pago em USDT drops.
pnlUsdtDrops String! PnL ao vivo em USDT drops.
positionId ID!
positionType PositionType!
side PositionSide!
timestamp DateTime!
tokenId String!
type TurboTokenPositionEventType!

PublicPriceTick object#

Campos

NomeTipoDescrição
price Float!
tokenId ID!

PublicTokenListItemOutput object#

Campos

NomeTipoDescrição
avatarUrl String!
boostedUntil DateTime Quando o boost ativo neste token expira, ou null se não houver boost.
buysCount Int!
creator PublicMinimalUserOutput!
description String
endDate DateTime!
id ID!
initialPrice Float!
name String!
price Float!
rank TurboTokenRank!
sellsCount Int!
speedMode SpeedMode!
startDate DateTime!
symbol String!
uniqueTradersCount Int!
volumeUsdtDrops String! Volume de negociação acumulado (USDT drops, 1e6 = 1 USDT).

PublicTokenStatisticsOutput object#

Campos

NomeTipoDescrição
buysCount Int!
nonMmVolumeFromBoostersUsdtDrops String!
sellsCount Int!
totalVolumeUsdtDrops String!
uniqueTradersCount Int!
volumeFromBoostersUsdtDrops String!

PublicTradeCloseOutput object#

Campos

NomeTipoDescrição
amountUsdtDrops String! Valor da posição em USDT drops sem taxas.
closePriceUsdtDrops String!
closeType TurboTokenPositionCloseType! Como a posição foi fechada.
closedAt DateTime!
leverageX10 Int! Leverage X10 (10 = 1.0x, 20 = 2.0x, 100 = 10.0x).
paidAmountUsdtDrops String! Valor pago em USDT drops.
pnlPercentage String!
pnlUsdtDrops String!
positionId String!
positionType PositionType! Tipo de posição (SPOT ou FUTURES).
receivedAmountUsdtDrops String! Valor recebido após o fechamento da posição em USDT drops.
side PositionSide! Lado da posição (LONG ou SHORT).
tokenId String!
totalCloseFeeUsdtDrops String! Taxa de fechamento + taxa de lucro em USDT drops.

PublicTradeLimitOutput object#

Campos

NomeTipoDescrição
positionId ID! Id da posição à qual este limite está anexado.
slTriggerPnlUsdtDrops String PnL de gatilho do stop-loss em USDT drops (1e6 = 1 USDT); null se não definido.
slTriggerPriceUsdtDrops String Preço de gatilho do stop-loss em USDT drops (1e6 = 1 USDT); null se não definido.
tokenId String! Id do token que a posição negocia.
tpTriggerPnlUsdtDrops String PnL de gatilho do take-profit em USDT drops (1e6 = 1 USDT); null se não definido.
tpTriggerPriceUsdtDrops String Preço de gatilho do take-profit em USDT drops (1e6 = 1 USDT); null se não definido.
userId String! Id do usuário proprietário.

PublicTradePositionOutput object#

Campos

NomeTipoDescrição
amountUsdtDrops String!
amountWei String!
collateralUsdtDrops String! Valor do colateral em USDT drops (input do usuário menos taxas).
id ID!
leverageX10 Int!
limit PublicTradeLimitOutput
liquidationPriceUsdtDrops String Preço de liquidação em USDT drops (null para SPOT 1x LONG).
notionalUsdtDrops String! Valor nocional em USDT drops (collateral * leverage).
positionType PositionType!
priceUsdtDrops String!
side PositionSide!
timestamp DateTime!

PublicUserOutput object#

Campos

NomeTipoDescrição
avatarToken String!
createdAt DateTime!
description String
evmWalletAddress String
id ID!
profileName String!
referralCode String!
solanaWalletAddress String
status UserStatus!
telegram String
tiktok String
twitter String
waitlistEmail String
walletType UserWalletType!
xUsername String

Unions

Input Types

CursorPaginationInput input#

Campos

NomeTipoDescrição
afterCursor String
beforeCursor String
last Boolean Retorna os últimos itens de acordo com `limit`
limit Float!

PublicBoosterBuyInput input#

Campos

NomeTipoDescrição
boosterType TokenBoosterType! Tier de booster a comprar.
tokenId String! Id do token a receber boost.
usePackageCredits Boolean! Pague com créditos de pacote do creator-program em vez do saldo em dinheiro.

PublicClaimCreatorFeeInput input#

Campos

NomeTipoDescrição
tokenId ID!

PublicClosedPositionsInput input#

Campos

NomeTipoDescrição
pagination CursorPaginationInput!
tokenId ID Restringe a um único token; omita para todos os tokens.

PublicFileUploadInput input#

Campos

NomeTipoDescrição
mimeType String! Tipo MIME do arquivo a ser enviado, ex.: `image/png`.
size Int! Tamanho do arquivo em bytes.

PublicTokenCreateInput input#

Campos

NomeTipoDescrição
buyUsdtDrops String Valor da compra inicial em USDT drops (1e6 = 1 USDT).
description String
fileId String Id do arquivo retornado por `fileFinalize`.
name String!
priceMode TurboPriceMode
rank TurboTokenRank
symbol String!
turboTokenMode TurboTokenMode
xLink String

PublicTradeCloseInput input#

Campos

NomeTipoDescrição
positionId ID!
tokenId ID!

PublicTradeLimitConfigInput input#

Campos

NomeTipoDescrição
slTriggerPnlUsdtDrops String PnL em USDT drops para stop loss (valor negativo).
slTriggerPricePercentage Float Porcentagem do preço de entrada em formato decimal onde 1 = 100%, 0.5 = 50%. LONG: deve ser < 1, SHORT: deve ser > 1.
slTriggerPriceUsdtDrops String
tpTriggerPnlUsdtDrops String PnL em USDT drops para take profit (valor positivo).
tpTriggerPricePercentage Float Porcentagem do preço de entrada em formato decimal onde 1 = 100%, 2 = 200%, etc. LONG: deve ser > 1, SHORT: deve ser < 1.
tpTriggerPriceUsdtDrops String

PublicTradeLimitDeleteInput input#

Campos

NomeTipoDescrição
positionId String!

PublicTradeOpenInput input#

Campos

NomeTipoDescrição
amountWei String Quantidade de token em wei a comprar. Mutuamente exclusivo com `usdtDrops`.
leverageX10 Int! Leverage X10 (10 = 1.0x, 20 = 2.0x, 100 = 10.0x).
side PositionSide!
tokenId ID!
type PositionType!
usdtDrops String Total de USDT drops a gastar (collateral + fees). Mutuamente exclusivo com `amountWei`.

Enums

PositionSide enum#

Valores

NomeDescrição
LONG
SHORT

PositionType enum#

Tipo de posição: SPOT (1x LONG) ou FUTURES (LONG / SHORT alavancado)

Valores

NomeDescrição
FUTURES
SPOT

PublicUnclaimedBalanceType enum#

Valores

NomeDescrição
BONDED_TURBO_TOKEN_FEE
CREATOR_FEE
CREATOR_PROGRAM_REFERRAL_REWARD
MINDSHARE_REWARD
PRESALE_REFERRAL_REWARD
REFERRAL_REWARD
SEASON_REWARD

SortDirection enum#

Valores

NomeDescrição
Asc
Desc

SpeedMode enum#

Valores

NomeDescrição
CRACK
FAST
FLASH
MAYHEM
NORMAL

TokenBoosterType enum#

Valores

NomeDescrição
B1
B2
B3
B4
B5
B6

TurboPriceMode enum#

Valores

NomeDescrição
FiveHundred
Hundred
One
Ten

TurboTokenListSorting enum#

Valores

NomeDescrição
BuysCount
SellsCount
StartTime
TimeLeft
TradersCount
Volume

TurboTokenMode enum#

Valores

NomeDescrição
Crack
Fast
Flash
Mayhem
Slow

TurboTokenPositionCloseType enum#

Valores

NomeDescrição
EXPIRED
LIQUIDATION
STOP_LOSS
TAKE_PROFIT
USER_SELL

TurboTokenPositionEventType enum#

Valores

NomeDescrição
POSITION_CLOSED
POSITION_OPENED
POSITION_UPDATED

TurboTokenRank enum#

Valores

NomeDescrição
Competition
Private
Public

UserStatus enum#

Valores

NomeDescrição
GUEST
MEMBER

UserWalletType enum#

Valores

NomeDescrição
Embedded
External

Scalars

DateTime scalar#

Uma string de data-hora em UTC, como 2019-12-03T09:54:33Z, em conformidade com o formato date-time.