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#

Global booster availability: active/max/available slots and per-tier configuration (price, duration, points boost, applicable speed modes).

boosterAvailability: PublicBoosterAvailabilityOutput!

Argumentos

Sem argumentos.

boosters#

All tokens with a currently active boost, including the time-decayed current return percentage.

boosters: [PublicBoostedTokenOutput!]!

Argumentos

Sem argumentos.

checkReferral#

Returns the referral's minimal profile and free USDT balance when the given user ID is one of the caller's referrals. Returns null when the user is not a referral of the authenticated caller (or does not exist).

checkReferral(referralUserId: ID!): PublicCheckReferralOutput

Argumentos

NomeTipoPadrãoDescrição
referralUserId ID!

closedPositions#

Cursor-paginated list of the authenticated user's closed positions, newest first. Optionally filtered to a single token.

closedPositions(input: PublicClosedPositionsInput!): PublicClosedPositionsOutput!

Argumentos

NomeTipoPadrãoDescrição
input PublicClosedPositionsInput!

ping#

Health probe for the public GraphQL API. Returns "pong". Does not require authentication.

ping: String!

Argumentos

Sem argumentos.

tokenRandomizedPreset#

Returns a randomized token preset (name, symbol, avatar, mode flags) useful for pre-filling token creation inputs.

tokenRandomizedPreset(allowedValues: TurboTokenPresetAllowedValuesInput): PublicTokenPresetOutput!

Argumentos

NomeTipoPadrãoDescrição
allowedValues TurboTokenPresetAllowedValuesInput

tokens#

List tokens with cursor pagination, sort, and filter.

tokens(input: PublicTokenListInput!): PublicTokenListOutput!

Argumentos

NomeTipoPadrãoDescrição
input PublicTokenListInput!

turboToken#

Get a single token by id with aggregated trading statistics.

turboToken(tokenId: ID!): PublicTokenDetailsOutput!

Argumentos

NomeTipoPadrãoDescrição
tokenId ID!

userBalance#

Authenticated user balance. Returns free balance and amount allocated to open positions, in USDT drops.

userBalance: PublicBalanceOutput!

Argumentos

Sem argumentos.

userMe#

Authenticated user profile. Excludes role, kaito attribution, and session info.

userMe: PublicUserOutput!

Argumentos

Sem argumentos.

Mutations

boosterBuy#

Purchase a booster for one of the authenticated user's tokens. Returns true on success.

boosterBuy(input: PublicBoosterBuyInput!): Boolean!

Argumentos

NomeTipoPadrãoDescrição
input PublicBoosterBuyInput!

fileFinalize#

Mark an upload as finished after the S3 POST succeeds. Returns the public file URL.

fileFinalize(id: String!): PublicFileFinalizeOutput!

Argumentos

NomeTipoPadrãoDescrição
id String!

fileUpload#

Start a file upload. Returns an S3 presigned-POST URL with form fields the client must include in the multipart upload.

fileUpload(input: PublicFileUploadInput!): PublicFileUploadOutput!

Argumentos

NomeTipoPadrãoDescrição
input PublicFileUploadInput!

tokenCreate#

Create a new turbo token. Always uses balance-based payment; payment type cannot be overridden.

tokenCreate(input: PublicTokenCreateInput!): String!

Argumentos

NomeTipoPadrãoDescrição
input PublicTokenCreateInput!

tradeClose#

Close an open position via USER_SELL.

tradeClose(input: PublicTradeCloseInput!): PublicTradeCloseOutput!

Argumentos

NomeTipoPadrãoDescrição
input PublicTradeCloseInput!

tradeLimitCreate#

Attach an SL/TP limit to an open position. At least one trigger (SL or TP) must be specified.

tradeLimitCreate(input: PublicTradeLimitCreateInput!): PublicTradePositionOutput!

Argumentos

NomeTipoPadrãoDescrição
input PublicTradeLimitCreateInput!

tradeLimitDelete#

Remove the SL/TP limit from an open position.

tradeLimitDelete(input: PublicTradeLimitDeleteInput!): PublicTradePositionOutput!

Argumentos

NomeTipoPadrãoDescrição
input PublicTradeLimitDeleteInput!

tradeLimitUpdate#

Replace the SL/TP limit on an open position.

tradeLimitUpdate(input: PublicTradeLimitUpdateInput!): PublicTradePositionOutput!

Argumentos

NomeTipoPadrãoDescrição
input PublicTradeLimitUpdateInput!

tradeOpen#

Open a position. Body must specify exactly one of `usdtDrops` (USDT-denominated) or `amountWei` (token-denominated).

tradeOpen(input: PublicTradeOpenInput!): PublicTradePositionOutput!

Argumentos

NomeTipoPadrãoDescrição
input PublicTradeOpenInput!

Subscriptions

positions#

Stream of position events for the authenticated user. Emits a snapshot of every open position once at start (as POSITION_OPENED), then live POSITION_OPENED / POSITION_CLOSED / POSITION_UPDATED events.

positions: PublicPositionEvent!

Argumentos

Sem argumentos.

priceTicks#

Live price ticks for a token in USDT.

priceTicks(tokenId: ID!): PublicPriceTick!

Argumentos

NomeTipoPadrãoDescrição
tokenId ID!

tokenCreated#

Stream of newly created turbo tokens

tokenCreated: PublicTokenCreatedEvent!

Argumentos

Sem argumentos.

Objects

CursorPaginationMetaOutput object#

Campos

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

PublicBalanceOutput object#

Campos

NomeTipoDescrição
balanceUsdtDrops String! Free balance available for trading. USDT drops (1e6 = 1 USDT).
inPositionsBalanceUsdtDrops String! Capital currently allocated to open positions. USDT drops.

PublicBoostedTokenOutput object#

Campos

NomeTipoDescrição
avatarUrl String!
boostedUntil DateTime! When the boost expires.
boosterType TokenBoosterType!
currentReturnPercentage Float! Current time-decayed return percentage of the boost.
name String!
symbol String!
tokenId ID!

PublicBoosterAvailabilityOutput object#

Campos

NomeTipoDescrição
active Int! Boost slots currently active.
available Int! Remaining free boost slots (max - active, floored at 0).
max Int! Maximum number of concurrently boosted tokens.
types [PublicBoosterTypeConfigOutput!]! Configuration for each available booster tier.

PublicBoosterTypeConfigOutput object#

Campos

NomeTipoDescrição
availableModes [SpeedMode!]! Token speed modes this tier can be applied to.
durationSeconds Int! Boost duration in seconds.
pointsBoost Float! Points multiplier applied while the boost is active.
priceUsdtDrops String! Price of this tier. USDT drops (1e6 = 1 USDT).
type TokenBoosterType!

PublicCheckReferralOutput object#

Campos

NomeTipoDescrição
balanceUsdtDrops String! Free balance of the referral user. USDT drops (1e6 = 1 USDT).
user PublicMinimalUserOutput!

PublicClosedPositionOutput object#

Campos

NomeTipoDescrição
amountWei String! Token amount in wei.
boughtUsdtDrops Obsoleto String! Deprecated; superseded by `paidAmountUsdtDrops`. Amount in USDT drops (1e6 = 1 USDT).
buyPriceUsdtDrops String! Entry price in USDT drops (1e6 = 1 USDT).
closePriceUsdtDrops String Close price in USDT drops (1e6 = 1 USDT); null until settled.
closeType TurboTokenPositionCloseType How the position was closed (manual, liquidation, etc.).
closedAt DateTime When the position was closed/settled; null if still open.
collateralUsdtDrops String! Collateral amount in USDT drops (1e6 = 1 USDT).
currentPriceUsdtDrops String! Current price in USDT drops (1e6 = 1 USDT).
endTimestamp DateTime! Scheduled end time of the position.
id ID!
isScoreBoosted Boolean! Whether the position score was boosted.
leverageX10 Int! Leverage X10 (10 = 1.0x, 20 = 2.0x, 100 = 10.0x).
limit PublicTradeLimitOutput Attached stop-loss / take-profit limit, if any.
liquidationPriceUsdtDrops String Liquidation price in USDT drops (1e6 = 1 USDT); null for SPOT 1x LONG.
notionalUsdtDrops String! Notional value in USDT drops (collateral * leverage, 1e6 = 1 USDT).
paidAmountUsdtDrops String! Amount paid to open the position in USDT drops (1e6 = 1 USDT).
pnlUsdtDrops String! Realized PnL in USDT drops (1e6 = 1 USDT).
positionType PositionType! Position type: SPOT (1x LONG) or FUTURES (leveraged LONG / SHORT).
realizedFeesUsdtDrops String! Total fees paid for this position in USDT drops (1e6 = 1 USDT).
scoreForPosition Float! Points-program score earned for this position.
side PositionSide! Position side: LONG or SHORT.
timestamp DateTime! When the position was opened.
token PublicClosedPositionTokenInfoOutput! The token this position was opened on.

PublicClosedPositionTokenInfoOutput object#

Campos

NomeTipoDescrição
avatarUrl String!
id String!
name String!
rank TurboTokenRank! Rank/tier of the token.
speedMode SpeedMode! Trading speed mode of the token.
symbol String!
tokenDecimals Int! Number of decimals for the token amount.

PublicFileFinalizeOutput object#

Campos

NomeTipoDescrição
id ID!
url String! Public URL of the finalized file.

PublicFileUploadOutput object#

Campos

NomeTipoDescrição
fields [PublicFormField!]! Form fields for the S3 presigned POST. Append each (key, value) to your `FormData`, then append `file` last.
id ID! File id; pass to `fileFinalize` after the S3 POST.
uploadUrl String! URL to POST the multipart form to.

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! Entry price in USDT drops.
collateralUsdtDrops String! Collateral amount in USDT drops (user input minus fees).
currentPriceUsdtDrops String! Current price in USDT drops.
leverageX10 Int!
limit PublicTradeLimitOutput
liquidationPriceUsdtDrops String Liquidation price in USDT drops (null for SPOT 1x LONG).
notionalUsdtDrops String! Notional value in USDT drops (collateral * leverage).
paidAmountUsdtDrops String! Paid amount in USDT drops.
pnlUsdtDrops String! Live PnL in 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 When the active boost on this token expires, or null if not boosted.
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! Cumulative trade volume (USDT drops, 1e6 = 1 USDT).

PublicTokenStatisticsOutput object#

Campos

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

PublicTradeCloseOutput object#

Campos

NomeTipoDescrição
amountUsdtDrops String! Position amount in USDT drops without fees.
closePriceUsdtDrops String!
closeType TurboTokenPositionCloseType! How the position was closed.
closedAt DateTime!
leverageX10 Int! Leverage X10 (10 = 1.0x, 20 = 2.0x, 100 = 10.0x).
paidAmountUsdtDrops String! Paid amount in USDT drops.
pnlPercentage String!
pnlUsdtDrops String!
positionId String!
positionType PositionType! Position type (SPOT or FUTURES).
receivedAmountUsdtDrops String! Amount received after closing position in USDT drops.
side PositionSide! Position side (LONG or SHORT).
tokenId String!
totalCloseFeeUsdtDrops String! Close fee + profit fee in USDT drops.

PublicTradeLimitOutput object#

Campos

NomeTipoDescrição
positionId ID! Id of the position this limit is attached to.
slTriggerPnlUsdtDrops String Stop-loss trigger PnL in USDT drops (1e6 = 1 USDT); null if unset.
slTriggerPriceUsdtDrops String Stop-loss trigger price in USDT drops (1e6 = 1 USDT); null if unset.
tokenId String! Id of the token the position trades.
tpTriggerPnlUsdtDrops String Take-profit trigger PnL in USDT drops (1e6 = 1 USDT); null if unset.
tpTriggerPriceUsdtDrops String Take-profit trigger price in USDT drops (1e6 = 1 USDT); null if unset.
userId String! Id of the owning user.

PublicTradePositionOutput object#

Campos

NomeTipoDescrição
amountUsdtDrops String!
amountWei String!
collateralUsdtDrops String! Collateral amount in USDT drops (user input minus fees).
id ID!
leverageX10 Int!
limit PublicTradeLimitOutput
liquidationPriceUsdtDrops String Liquidation price in USDT drops (null for SPOT 1x LONG).
notionalUsdtDrops String! Notional value in 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 Return last items according to `limit`
limit Float!

PublicBoosterBuyInput input#

Campos

NomeTipoDescrição
boosterType TokenBoosterType! Booster tier to purchase.
tokenId String! Id of the token to boost.
usePackageCredits Boolean! Pay with creator-program package credits instead of the cash balance.

PublicClosedPositionsInput input#

Campos

NomeTipoDescrição
pagination CursorPaginationInput!
tokenId ID Restrict to a single token; omit for all tokens.

PublicFileUploadInput input#

Campos

NomeTipoDescrição
mimeType String! MIME type of the file to upload, e.g. `image/png`.
size Int! File size in bytes.

PublicTokenCreateInput input#

Campos

NomeTipoDescrição
buyUsdtDrops String Initial buy amount in USDT drops (1e6 = 1 USDT).
description String
fileId String File id returned from `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 in USDT drops for stop loss (negative value).
slTriggerPricePercentage Float Percentage of the entry price in decimal format where 1 = 100%, 0.5 = 50%. LONG: must be < 1, SHORT: must be > 1.
slTriggerPriceUsdtDrops String
tpTriggerPnlUsdtDrops String PnL in USDT drops for take profit (positive value).
tpTriggerPricePercentage Float Percentage of the entry price in decimal format where 1 = 100%, 2 = 200%, etc. LONG: must be > 1, SHORT: must be < 1.
tpTriggerPriceUsdtDrops String

PublicTradeLimitDeleteInput input#

Campos

NomeTipoDescrição
positionId String!

PublicTradeOpenInput input#

Campos

NomeTipoDescrição
amountWei String Token amount in wei to buy. Mutually exclusive with `usdtDrops`.
leverageX10 Int! Leverage X10 (10 = 1.0x, 20 = 2.0x, 100 = 10.0x).
side PositionSide!
tokenId ID!
type PositionType!
usdtDrops String Total USDT drops to spend (collateral + fees). Mutually exclusive with `amountWei`.

Enums

PositionSide enum#

Valores

NomeDescrição
LONG
SHORT

PositionType enum#

Position type: SPOT (1x LONG) or FUTURES (leveraged LONG / SHORT)

Valores

NomeDescrição
FUTURES
SPOT

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#

A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date-time format.