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 3×.
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:
- Randomizador —
tokenRandomizedPreset retorna um fileId pronto para uso (além
de nome, símbolo, modo, etc.) que você pode passar direto para tokenCreate.
- 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 |
5× |
MAYHEM |
30s |
5× |
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. |
{
"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 PublicPositionEvent —
PublicPositionOpenedEvent | 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#
- O cliente abre o socket com o subprotocolo
graphql-transport-ws.
- Cliente →
{"type":"connection_init"}.
- Servidor →
{"type":"connection_ack"}.
- Cliente →
subscribe com um id único e um documento GraphQL.
- 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
| Nome | Tipo | Padrão | Descriçã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
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
tokens#
List tokens with cursor pagination, sort, and filter.
tokens(input: PublicTokenListInput!): PublicTokenListOutput!
Argumentos
turboToken#
Get a single token by id with aggregated trading statistics.
turboToken(tokenId: ID!): PublicTokenDetailsOutput!
Argumentos
| Nome | Tipo | Padrão | Descriçã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
fileFinalize#
Mark an upload as finished after the S3 POST succeeds. Returns the public file URL.
fileFinalize(id: String!): PublicFileFinalizeOutput!
Argumentos
| Nome | Tipo | Padrão | Descriçã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
tokenCreate#
Create a new turbo token. Always uses balance-based payment; payment type cannot be overridden.
tokenCreate(input: PublicTokenCreateInput!): String!
Argumentos
tradeClose#
Close an open position via USER_SELL.
tradeClose(input: PublicTradeCloseInput!): PublicTradeCloseOutput!
Argumentos
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
tradeLimitDelete#
Remove the SL/TP limit from an open position.
tradeLimitDelete(input: PublicTradeLimitDeleteInput!): PublicTradePositionOutput!
Argumentos
tradeLimitUpdate#
Replace the SL/TP limit on an open position.
tradeLimitUpdate(input: PublicTradeLimitUpdateInput!): PublicTradePositionOutput!
Argumentos
tradeOpen#
Open a position. Body must specify exactly one of `usdtDrops` (USDT-denominated) or `amountWei` (token-denominated).
tradeOpen(input: PublicTradeOpenInput!): PublicTradePositionOutput!
Argumentos
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
| Nome | Tipo | Padrão | Descrição |
tokenId |
ID! |
— |
|
tokenCreated#
Stream of newly created turbo tokens
tokenCreated: PublicTokenCreatedEvent!
Argumentos
Sem argumentos.
Objects
PublicBalanceOutput object#
Campos
| Nome | Tipo | Descriçã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
| Nome | Tipo | Descriçã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
| Nome | Tipo | Descriçã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
| Nome | Tipo | Descriçã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
| Nome | Tipo | Descrição |
balanceUsdtDrops |
String! |
Free balance of the referral user. USDT drops (1e6 = 1 USDT). |
user |
PublicMinimalUserOutput! |
|
PublicClosedPositionOutput object#
Campos
| Nome | Tipo | Descriçã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. |
PublicClosedPositionsOutput object#
Campos
PublicClosedPositionTokenInfoOutput object#
Campos
| Nome | Tipo | Descriçã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
| Nome | Tipo | Descrição |
id |
ID! |
|
url |
String! |
Public URL of the finalized file. |
PublicFileUploadOutput object#
Campos
| Nome | Tipo | Descriçã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
| Nome | Tipo | Descrição |
key |
String! |
|
value |
String! |
|
PublicMinimalUserOutput object#
Campos
| Nome | Tipo | Descrição |
avatarToken |
String! |
|
id |
ID! |
|
profileName |
String! |
|
PublicPositionClosedEvent object#
Campos
PublicPositionOpenedEvent object#
Campos
| Nome | Tipo | Descriçã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! |
|
PublicPositionUpdatedEvent object#
Campos
PublicPriceTick object#
Campos
| Nome | Tipo | Descrição |
price |
Float! |
|
tokenId |
ID! |
|
PublicTokenCreatedEvent object#
Campos
PublicTokenDetailsOutput object#
Campos
PublicTokenListItemOutput object#
Campos
| Nome | Tipo | Descriçã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). |
PublicTokenListOutput object#
Campos
PublicTokenPresetOutput object#
Campos
PublicTokenStatisticsOutput object#
Campos
| Nome | Tipo | Descrição |
buysCount |
Int! |
|
sellsCount |
Int! |
|
totalVolumeUsdtDrops |
String! |
|
uniqueTradersCount |
Int! |
|
volumeFromBoostersUsdtDrops |
String! |
|
PublicTradeCloseOutput object#
Campos
| Nome | Tipo | Descriçã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
| Nome | Tipo | Descriçã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
| Nome | Tipo | Descriçã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
| Nome | Tipo | Descriçã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 |
|
Enums
PositionSide enum#
Valores
PositionType enum#
Position type: SPOT (1x LONG) or FUTURES (leveraged LONG / SHORT)
Valores
SortDirection enum#
Valores
SpeedMode enum#
Valores
| Nome | Descrição |
|---|
CRACK | |
FAST | |
FLASH | |
MAYHEM | |
NORMAL | |
TokenBoosterType enum#
Valores
| Nome | Descrição |
|---|
B1 | |
B2 | |
B3 | |
B4 | |
B5 | |
B6 | |
TurboPriceMode enum#
Valores
| Nome | Descrição |
|---|
FiveHundred | |
Hundred | |
One | |
Ten | |
TurboTokenListSorting enum#
Valores
| Nome | Descrição |
|---|
BuysCount | |
SellsCount | |
StartTime | |
TimeLeft | |
TradersCount | |
Volume | |
TurboTokenMode enum#
Valores
| Nome | Descrição |
|---|
Crack | |
Fast | |
Flash | |
Mayhem | |
Slow | |
TurboTokenPositionCloseType enum#
Valores
| Nome | Descrição |
|---|
EXPIRED | |
LIQUIDATION | |
STOP_LOSS | |
TAKE_PROFIT | |
USER_SELL | |
TurboTokenPositionEventType enum#
Valores
| Nome | Descrição |
|---|
POSITION_CLOSED | |
POSITION_OPENED | |
POSITION_UPDATED | |
TurboTokenRank enum#
Valores
| Nome | Descrição |
|---|
Competition | |
Private | |
Public | |
UserStatus enum#
Valores
UserWalletType enum#
Valores
| Nome | Descriçã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.