Playground ↗
Español

Introducción#

La API de Catapult impulsa una plataforma de derivados de tokens sintéticos —operativa y datos de tokens— a través de un único endpoint GraphQL para operaciones petición/respuesta, y un endpoint WebSocket para suscripciones en tiempo real.

Endpoints base#

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

Todas las solicitudes HTTP usan POST con un cuerpo JSON con la forma { "query": "...", "variables": { ... } }.

Autenticación#

Las operaciones autenticadas usan un token JWT (bearer), enviado en la cabecera Authorization:

Authorization: Bearer <your-jwt-token>

El token es un JSON Web Token (JWT), válido por 730 días (≈2 años) desde su emisión por defecto: rótalo antes de que caduque. Solo ping es público; el resto de operaciones requiere el token bearer, y las lecturas como tokens y turboToken también necesitan el permiso tokens.read.

Crear una clave API#

Genera tu token desde el panel de tu cuenta en catapult.trade/settings/api-key (Ajustes → API Key). Puedes gestionar tu cuenta en catapult.trade.

Convenciones#

  • Los IDs son cadenas opacas; no los parsees.
  • Los importes monetarios son enteros codificados como cadena de tipo String! (p. ej. balanceUsdtDrops): parséalos como BigInt, nunca como float. El único escalar personalizado es DateTime.
  • Las marcas de tiempo usan el escalar DateTime (ISO-8601, UTC).
  • Las consultas de listas se paginan por cursor mediante input.pagination: limit (10 por defecto) con afterCursor / beforeCursor.

Ejemplo rápido#

query Tokens {
  # consulta la pestaña Reference para PublicTokenListInput y los campos del token
  tokens(input: { pagination: { limit: 5 } }) {
    items { id }
  }
}

OAuth de clave API#

Este enlace te permite obtener la clave API de un usuario para crear distintas funciones, por ejemplo copy trading. El usuario concede los permisos sobre su clave API y esta se envía a tu URL de callback incluida en la lista blanca.

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

Reemplaza <WHITELISTED_BOT_ID> por el ID de tu bot incluido en la lista blanca.

Inclusión del bot en la lista blanca#

Incluye tu bot en la lista blanca contactando con nuestro equipo de desarrollo:

[email protected]

Unidades y convenciones#

Lee esto primero: cada campo monetario de la API depende de estas convenciones.

USDT drops (*UsdtDrops)#

Todos los importes en USDT son enteros de USDT × 1,000,000 (6 decimales), con el sufijo UsdtDrops. Se envían como String! (enteros codificados como cadena): parséalos como BigInt, nunca como float.

Campo Valor en bruto USDT
balanceUsdtDrops 6666670000 6,666.67

Convierte con usdt = drops / 1e6 y drops = round(usdt × 1e6): calcula en BigInt.

Apalancamiento (leverageX10)#

El apalancamiento se codifica como apalancamiento × 10. leverageX10: 125 significa 12.5×; 30 significa .

Colateral vs nocional#

notional = collateral × leverage. Lo que aportas es el colateral; el valor nominal de la posición en USDT es el nocional.

Al abrir una posición, el importe es colateral, antes de comisión. tradeOpen toma exactamente uno de usdtDrops (en USDT) o amountWei (en tokens): el motor deriva el nocional a partir de él y del apalancamiento. No es el nocional.

Saldos#

userBalance { balanceUsdtDrops, inPositionsBalanceUsdtDrops }:

Campo Significado
balanceUsdtDrops Saldo libre: antes de comisión, los USDT que realmente se mueven al abrir.
inPositionsBalanceUsdtDrops Colateral actualmente bloqueado en posiciones abiertas (después de comisión).

Medios del token (fileId)#

La imagen de un token se adjunta pasando un fileId a tokenCreate. Hay dos formas de obtenerlo:

  1. AleatorizadortokenRandomizedPreset devuelve un fileId listo para usar (además de nombre, símbolo, modo, etc.) que puedes pasar directamente a tokenCreate.
  2. Subida propia — un flujo S3 presigned-POST de tres pasos:
    • fileUpload(input) → devuelve una URL S3 presigned-POST más los campos de formulario que el cliente debe incluir en el POST multipart.
    • El cliente hace POST de la imagen a esa URL de S3 con esos campos exactos.
    • fileFinalize(id) → marca la subida como finalizada tras el POST a S3 y devuelve la URL pública del archivo; usa el archivo resultante como imagen del token.

Límites de subida: solo JPEG o PNG, máximo 5 MB, mínimo 314×314 px. El POST prefirmado debe completarse en 15 segundos tras la llamada a fileUpload, y las subidas están limitadas a 200 por hora por IP.

Modos de velocidad de tokens#

Cada token funciona en uno de cinco modos de velocidad. El campo de creación/aleatorización es turboTokenMode; los registros de token exponen speedMode. SLOW y NORMAL son el mismo modo con dos nombres.

Los valores de apalancamiento máximo y de vida útil siguientes son configuración actual que puede cambiar en el servidor: trátalos como valores actuales y verifícalos con la consulta de leverage-config en vivo.

Modo Vida útil típica Apalancamiento máx. (motor)
SLOW / NORMAL 4h 125×
FAST 1h 40×
FLASH 15mins 15×
CRACK 3mins
MAYHEM 30s

El apalancamiento máximo es un límite fijo del motor#

El apalancamiento máximo de cada modo es un límite estricto que aplica el motor: usa el valor de la tabla directamente. El motor rechaza cualquier orden por encima.

Comisiones y tamaño de posición#

Comisión de apertura (~1%)#

Abrir una posición cobra una comisión de apertura de ~1% (0.01), deducida del colateral que envías:

collateral_post_fee = collateral_sent × (1 − fee)

Para que el colateral bloqueado quede exactamente en notional / leverage, envía:

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

Límite de nocional por posición#

El servidor aplica un límite de nocional por posición: actualmente 20,000 USDT por (token, apalancamiento, lado). Superarlo devuelve Maximum notional limit … exceeded. Verifica el valor exacto con la configuración en vivo; puede variar según el modo o el apalancamiento.

Posición máxima disponible (nocional)#

Sea fee = 0.01, free = balanceUsdtDrops / 1e6, inPos = inPositionsBalanceUsdtDrops / 1e6, capTotal = tu límite total de colateral opcional, capPos = límite de nocional por posición (~20,000), L = apalancamiento:

maxCollateralFromBalance = free × (1 − fee)
remainingTotalBudget     = capTotal − inPos          # si aplicas un límite total
maxNewCollateral         = min(maxCollateralFromBalance, remainingTotalBudget)
maxNotionalAchievable    = maxNewCollateral × L
maxPositionNotional      = min(maxNotionalAchievable, capPos)

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

Trampa de redondeo. Tras dividir por (1 − fee), un round(collateral × 1e6) ingenuo supera el límite por unos drops y la apertura se rechaza. Redondea hacia abajo el colateral en drops (BigInt) a un paso pequeño (p. ej. 10 drops = 0.00001 USDT) antes de enviar. Pierdes una fracción insignificante de céntimo y te mantienes bajo el límite en cualquier apalancamiento.

Ejemplo resuelto#

FLASH, 3×, comisión 1%, límite 20,000 de nocional:

collateral_post_fee target = 20,000 / 3        = 6,666.67
collateral_sent            = 6,666.67 / 0.99 ≈ 6,734.01   (redondeado hacia abajo en drops)
→ bloqueado tras comisión ≈ 6,666.67, nocional ≈ 20,000

Códigos de estado#

Las respuestas GraphQL devuelven HTTP 200 incluso cuando una operación falla: inspecciona el array errors[] y el extensions.code de cada error. Los problemas de transporte usan códigos HTTP estándar.

Códigos de estado HTTP#

Código Significado
200 Respuesta estándar. TODOS los resultados de operación —éxito y errores, incluidos autenticación, permisos, límite de tasa, no encontrado y reglas de negocio— devuelven 200; inspecciona errors[] y errors[].extensions.code.
400 Solicitud GraphQL malformada o inválida (error de análisis, campo desconocido, variable incorrecta).
500 Error inesperado del servidor. Seguro reintentar con backoff.

El servicio GraphQL devuelve los fallos de autenticación, permisos y límite de tasa dentro de la respuesta como 200 (ver códigos de error GraphQL). Los 401 / 403 / 429 de transporte solo ocurren si un gateway/CDN upstream rechaza la solicitud antes de llegar a la API.

Códigos de error GraphQL#

Los códigos distinguen mayúsculas; coincide con la cadena exacta. Los códigos de dominio son PascalCase (p. ej. RateLimited); algunos códigos del framework van en mayúsculas con guion bajo (p. ej. UNAUTHENTICATED).

Código Significado
UNAUTHENTICATED No hay un token válido, o el token expiró/está deshabilitado, o el usuario está bloqueado.
BAD_USER_INPUT Un argumento o variable no superó la validación.
GRAPHQL_VALIDATION_FAILED La consulta es estructuralmente inválida (campo/tipo desconocido).
RateLimited Límite de tasa superado (ver Límites de uso).
NotFound El recurso referenciado no existe.
InternalError Error inesperado del servidor.

Forma del error#

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

Límites de uso#

Las operaciones GraphQL comparten un único bucket de límite, indexado por token de API (jti) e IP: 600 consultas/min y 60 mutaciones/min. Al superar un límite se devuelve una respuesta HTTP 200 cuyo errors[] contiene un único error con extensions.code = RateLimited. La API no envía un estado 429 ni una cabecera Retry-After; las sugerencias de reintento se incluyen en extensions del error.

Límites HTTP (GraphQL)#

Operación Límite Ventana
Consultas 600 1 minuto
Mutaciones 60 1 minuto

Límites de WebSocket#

Ámbito Límite
Suscripciones por conexión 1000
Mensajes entrantes 200 / segundo (ráfaga 400)
Tiempo de espera de connection_init 10 s (código de cierre 4408)

Los límites de WebSocket son configurables en el servidor, por lo que en producción pueden diferir de estos valores por defecto. Se aplican por conexión, no por IP.

Cabeceras de respuesta#

La API no emite cabeceras de límite (X-RateLimit-*, Retry-After). Un gateway upstream podría añadirlas; no dependas de ellas.

Trampas e idempotencia#

Una lista de lo que los integradores suelen equivocar.

Dinero y dimensionamiento#

  • Los drops son enteros: BigInt de principio a fin; nunca parsees *UsdtDrops como float.
  • El importe de apertura que envías (usdtDrops o amountWei) es colateral, antes de comisión, no el nocional.
  • El límite de nocional se aplica en drops; redondea hacia abajo tu colateral para evitar superarlo por unos drops (ver «Comisiones y tamaño de posición»).
  • El apalancamiento máximo es un límite fijo del motor por modo (ver «Modos de velocidad de tokens»): úsalo directamente.

Tokens#

  • El aleatorizador devuelve un rank aleatorio (Competition | Private | Public). Fuerza Public si el token debe listarse / poder copiarse.
  • tokenCreate siempre usa pago desde el saldo: el tipo de pago no se puede anular.
  • No hay una marca de «activo» en el servidor para tokens: filtra en el cliente por endDate.

Apertura y cierre#

  • tradeOpen requiere exactamente uno de usdtDrops (en USDT) o amountWei (en tokens): nunca ambos ni ninguno.
  • tradeClose cierra una posición abierta mediante USER_SELL.

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

  • tradeLimitCreate requiere al menos un disparador (SL o TP).
  • En update, un null explícito para un lado lo borra; un campo omitido se conserva.
  • tradeLimitUpdate rechaza una entrada totalmente nula (Validation failed: input=MissingValue): usa tradeLimitDelete para borrar.
  • No hay borrado por lado; tradeLimitDelete elimina ambos, TP y SL.

Suscripciones (WebSocket)#

  • Autentícate en connection_init con payload: { Authorization: "Bearer <apiKey>" }.
  • La suscripción positions transmite la unión PublicPositionEventPublicPositionOpenedEvent | PublicPositionClosedEvent | PublicPositionUpdatedEvent. Discrimina por el campo type antes de leer los campos específicos del evento.
  • PublicPositionClosedEvent lleva positionId, tokenId, type, closeType, closedAt, closePriceUsdtDrops, receivedAmountUsdtDrops, pnlUsdtDrops. Los campos buyPriceUsdtDrops, collateralUsdtDrops, notionalUsdtDrops, leverageX10 pertenecen a PublicPositionOpenedEvent, no al de cierre.
  • Los eventos de cierre son at-least-once y no se reproducen. Un cierre emitido mientras te reconectas lo pierde la nueva suscripción: sondea cada posición abierta al (re)suscribirte para detectar cierres perdidos y deduplica por positionId.

API WebSocket#

Los datos en tiempo real se entregan por una conexión WebSocket usando el protocolo GraphQL sobre WebSocket (graphql-transport-ws). Úsalo para operaciones de tipo subscription, como las actualizaciones de precio en vivo.

Conexión#

Abre un WebSocket en:

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

Negocia el subprotocolo graphql-transport-ws. Tras abrir el socket, envía un mensaje connection_init; el servidor responde con connection_ack.

Propiedad Valor
URL wss://public-api.catapult.trade/graphql
Subprotocolo graphql-transport-ws
Keep-alive el servidor envía ping cada 30s; responde con pong
Máx. suscripciones 1000 por conexión

Ciclo de vida#

  1. El cliente abre el socket con el subprotocolo graphql-transport-ws.
  2. Cliente → {"type":"connection_init"}.
  3. Servidor → {"type":"connection_ack"}.
  4. Cliente → subscribe con un id único y un documento GraphQL.
  5. Servidor → uno o varios mensajes next, después complete.

Suscripción#

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

Mensaje de datos#

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

Cancelar suscripción#

Envía un mensaje complete para detener una suscripción; cierra el socket para detenerlas todas.

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

Errores#

Los errores a nivel de operación llegan como un mensaje error para el id correspondiente:

{ "id": "1", "type": "error", "payload": [{ "message": "Mercado desconocido" }] }

Las conexiones que no envían connection_init en 10 segundos se cierran con el código 4408 (tiempo de inicialización agotado).

Queries

boosterAvailability#

Disponibilidad global del booster: ranuras activas/máximas/disponibles y configuración por nivel (precio, duración, incremento de puntos, modos de velocidad aplicables).

boosterAvailability: PublicBoosterAvailabilityOutput!

Argumentos

Sin argumentos.

boosters#

Todos los tokens con un boost actualmente activo, incluyendo el porcentaje de retorno actual con decaimiento temporal.

boosters: [PublicBoostedTokenOutput!]!

Argumentos

Sin argumentos.

checkReferral#

Devuelve el perfil mínimo del referido y su saldo libre en USDT cuando el ID de usuario indicado es uno de los referidos del solicitante. Devuelve null cuando el usuario no es un referido del solicitante autenticado (o no existe).

checkReferral(referralUserId: ID!): PublicCheckReferralOutput

Argumentos

NombreTipoPor defectoDescripción
referralUserId ID!

closedPositions#

Lista paginada por cursor de las posiciones cerradas del usuario autenticado, de más reciente a más antigua. Opcionalmente filtrada a un único token.

closedPositions(input: PublicClosedPositionsInput!): PublicClosedPositionsOutput!

Argumentos

NombreTipoPor defectoDescripción
input PublicClosedPositionsInput!

ping#

Sonda de estado para la API pública de GraphQL. Devuelve "pong". No requiere autenticación.

ping: String!

Argumentos

Sin argumentos.

tokenChartData#

Chart candles and current price for a token.

tokenChartData(tokenId: ID!): PublicTokenChartDataOutput!

Argumentos

NombreTipoPor defectoDescripción
tokenId ID!

tokenRandomizedPreset#

Devuelve una plantilla de token aleatoria (nombre, símbolo, avatar, flags de modo) útil para rellenar previamente los campos de creación de tokens.

tokenRandomizedPreset(allowedValues: TurboTokenPresetAllowedValuesInput): PublicTokenPresetOutput!

Argumentos

NombreTipoPor defectoDescripción
allowedValues TurboTokenPresetAllowedValuesInput

tokens#

Lista tokens con paginación por cursor, ordenamiento y filtrado.

tokens(input: PublicTokenListInput!): PublicTokenListOutput!

Argumentos

NombreTipoPor defectoDescripción
input PublicTokenListInput!

turboToken#

Obtiene un único token por id con estadísticas de trading agregadas.

turboToken(tokenId: ID!): PublicTokenDetailsOutput!

Argumentos

NombreTipoPor defectoDescripción
tokenId ID!

userBalance#

Saldo del usuario autenticado. Devuelve el saldo libre y el importe asignado a posiciones abiertas, en USDT drops.

userBalance: PublicBalanceOutput!

Argumentos

Sin argumentos.

userMe#

Perfil del usuario autenticado. Excluye el rol, la atribución de kaito y la información de sesión.

userMe: PublicUserOutput!

Argumentos

Sin argumentos.

Mutations

boosterBuy#

Compra un booster para uno de los tokens del usuario autenticado. Devuelve true si tiene éxito.

boosterBuy(input: PublicBoosterBuyInput!): Boolean!

Argumentos

NombreTipoPor defectoDescripción
input PublicBoosterBuyInput!

claimAllCreatorFees#

Claim all available creator fees across tokens.

claimAllCreatorFees: PublicClaimAllCreatorFeesOutput!

Argumentos

Sin argumentos.

claimCreatorFee#

Claim accumulated creator fees for a single token.

claimCreatorFee(input: PublicClaimCreatorFeeInput!): PublicClaimCreatorFeeOutput!

Argumentos

NombreTipoPor defectoDescripción
input PublicClaimCreatorFeeInput!

fileFinalize#

Marca una subida como finalizada después de que el POST a S3 tenga éxito. Devuelve la URL pública del archivo.

fileFinalize(id: String!): PublicFileFinalizeOutput!

Argumentos

NombreTipoPor defectoDescripción
id String!

fileUpload#

Inicia la subida de un archivo. Devuelve una URL de POST prefirmada de S3 con los campos de formulario que el cliente debe incluir en la subida multipart.

fileUpload(input: PublicFileUploadInput!): PublicFileUploadOutput!

Argumentos

NombreTipoPor defectoDescripción
input PublicFileUploadInput!

tokenCreate#

Crea un nuevo turbo token. Siempre usa el pago basado en saldo; el tipo de pago no se puede sobrescribir.

tokenCreate(input: PublicTokenCreateInput!): String!

Argumentos

NombreTipoPor defectoDescripción
input PublicTokenCreateInput!

tradeClose#

Cierra una posición abierta mediante USER_SELL.

tradeClose(input: PublicTradeCloseInput!): PublicTradeCloseOutput!

Argumentos

NombreTipoPor defectoDescripción
input PublicTradeCloseInput!

tradeLimitCreate#

Adjunta un límite SL/TP a una posición abierta. Debe especificarse al menos un disparador (SL o TP).

tradeLimitCreate(input: PublicTradeLimitCreateInput!): PublicTradePositionOutput!

Argumentos

NombreTipoPor defectoDescripción
input PublicTradeLimitCreateInput!

tradeLimitDelete#

Elimina el límite SL/TP de una posición abierta.

tradeLimitDelete(input: PublicTradeLimitDeleteInput!): PublicTradePositionOutput!

Argumentos

NombreTipoPor defectoDescripción
input PublicTradeLimitDeleteInput!

tradeLimitUpdate#

Reemplaza el límite SL/TP de una posición abierta.

tradeLimitUpdate(input: PublicTradeLimitUpdateInput!): PublicTradePositionOutput!

Argumentos

NombreTipoPor defectoDescripción
input PublicTradeLimitUpdateInput!

tradeOpen#

Abre una posición. El cuerpo debe especificar exactamente uno entre `usdtDrops` (denominado en USDT) o `amountWei` (denominado en token).

tradeOpen(input: PublicTradeOpenInput!): PublicTradePositionOutput!

Argumentos

NombreTipoPor defectoDescripción
input PublicTradeOpenInput!

Subscriptions

positions#

Flujo de eventos de posiciones para el usuario autenticado. Al iniciarse emite una instantánea de cada posición abierta (cada una como POSITION_OPENED) y luego transmite en vivo los eventos POSITION_OPENED / POSITION_CLOSED / POSITION_UPDATED.

positions: PublicPositionEvent!

Argumentos

Sin argumentos.

priceTicks#

Ticks de precio en vivo para un token en USDT.

priceTicks(tokenId: ID!): PublicPriceTick!

Argumentos

NombreTipoPor defectoDescripción
tokenId ID!

tokenCreated#

Flujo de turbo tokens recién creados

tokenCreated: PublicTokenCreatedEvent!

Argumentos

Sin argumentos.

unclaimedReward#

Stream of unclaimed reward balances for the authenticated user.

unclaimedReward: PublicUnclaimedRewardOutput!

Argumentos

Sin argumentos.

Objects

CursorPaginationMetaOutput object#

Campos

NombreTipoDescripción
firstCursor String
hasNextItems Boolean!
hasPreviousItems Boolean!
lastCursor String

PublicBalanceOutput object#

Campos

NombreTipoDescripción
balanceUsdtDrops String! Saldo libre disponible para operar. USDT drops (1e6 = 1 USDT).
inPositionsBalanceUsdtDrops String! Capital actualmente asignado a posiciones abiertas. USDT drops.

PublicBoostedTokenOutput object#

Campos

NombreTipoDescripción
avatarUrl String!
boostedUntil DateTime! Cuándo expira el boost.
boosterType TokenBoosterType!
currentReturnPercentage Float! Porcentaje de retorno actual del boost con decaimiento temporal.
name String!
symbol String!
tokenId ID!

PublicBoosterAvailabilityOutput object#

Campos

NombreTipoDescripción
active Int! Ranuras de boost actualmente activas.
available Int! Ranuras de boost libres restantes (max - active, con mínimo en 0).
max Int! Número máximo de tokens con boost simultáneo.
types [PublicBoosterTypeConfigOutput!]! Configuración de cada nivel de booster disponible.

PublicBoosterTypeConfigOutput object#

Campos

NombreTipoDescripción
availableModes [SpeedMode!]! Modos de velocidad de token a los que se puede aplicar este nivel.
durationSeconds Int! Duración del boost en segundos.
pointsBoost Float! Multiplicador de puntos aplicado mientras el boost está activo.
priceUsdtDrops String! Precio de este nivel. USDT drops (1e6 = 1 USDT).
type TokenBoosterType!

PublicCandleOutput object#

Campos

NombreTipoDescripción
close Float!
high Float!
low Float!
open Float!
time Float!

PublicCheckReferralOutput object#

Campos

NombreTipoDescripción
balanceUsdtDrops String! Saldo libre del usuario referido. USDT drops (1e6 = 1 USDT).
user PublicMinimalUserOutput!

PublicClaimAllCreatorFeesOutput object#

Campos

NombreTipoDescripción
balanceAfterUsdtDrops String!
claimedAmountUsdtDrops String!
claimedCount Int!

PublicClaimCreatorFeeOutput object#

Campos

NombreTipoDescripción
claimedAmountUsdtDrops String!

PublicClosedPositionOutput object#

Campos

NombreTipoDescripción
amountWei String! Cantidad de token en wei.
boughtUsdtDrops Obsoleto String! Obsoleto; reemplazado por `paidAmountUsdtDrops`. Importe en USDT drops (1e6 = 1 USDT).
buyPriceUsdtDrops String! Precio de entrada en USDT drops (1e6 = 1 USDT).
closePriceUsdtDrops String Precio de cierre en USDT drops (1e6 = 1 USDT); null hasta que se liquide.
closeType TurboTokenPositionCloseType Cómo se cerró la posición (manual, liquidación, etc.).
closedAt DateTime Cuándo se cerró/liquidó la posición; null si aún está abierta.
collateralUsdtDrops String! Importe de colateral en USDT drops (1e6 = 1 USDT).
currentPriceUsdtDrops String! Precio actual en USDT drops (1e6 = 1 USDT).
endTimestamp DateTime! Hora de finalización programada de la posición.
id ID!
isScoreBoosted Boolean! Si la puntuación de la posición fue potenciada con boost.
leverageX10 Int! Apalancamiento X10 (10 = 1.0x, 20 = 2.0x, 100 = 10.0x).
limit PublicTradeLimitOutput Límite stop-loss / take-profit adjunto, si lo hay.
liquidationPriceUsdtDrops String Precio de liquidación en USDT drops (1e6 = 1 USDT); null para SPOT 1x LONG.
notionalUsdtDrops String! Valor nocional en USDT drops (collateral * leverage, 1e6 = 1 USDT).
paidAmountUsdtDrops String! Importe pagado para abrir la posición en USDT drops (1e6 = 1 USDT).
pnlUsdtDrops String! PnL realizado en USDT drops (1e6 = 1 USDT).
positionType PositionType! Tipo de posición: SPOT (1x LONG) o FUTURES (LONG / SHORT apalancado).
realizedFeesUsdtDrops String! Total de comisiones pagadas por esta posición en USDT drops (1e6 = 1 USDT).
scoreForPosition Float! Puntuación del programa de puntos obtenida por esta posición.
side PositionSide! Lado de la posición: LONG o SHORT.
timestamp DateTime! Cuándo se abrió la posición.
token PublicClosedPositionTokenInfoOutput! El token sobre el que se abrió esta posición.

PublicClosedPositionTokenInfoOutput object#

Campos

NombreTipoDescripción
avatarUrl String!
id String!
name String!
rank TurboTokenRank! Rango/nivel del token.
speedMode SpeedMode! Modo de velocidad de trading del token.
symbol String!
tokenDecimals Int! Número de decimales para la cantidad del token.

PublicFileFinalizeOutput object#

Campos

NombreTipoDescripción
id ID!
url String! URL pública del archivo finalizado.

PublicFileUploadOutput object#

Campos

NombreTipoDescripción
fields [PublicFormField!]! Campos de formulario para el POST prefirmado de S3. Añade cada (key, value) a tu `FormData` y luego añade `file` al final.
id ID! Id del archivo; pásalo a `fileFinalize` después del POST a S3.
uploadUrl String! URL a la que enviar el formulario multipart mediante POST.

PublicFormField object#

Campos

NombreTipoDescripción
key String!
value String!

PublicMinimalUserOutput object#

Campos

NombreTipoDescripción
avatarToken String!
id ID!
profileName String!

PublicPositionOpenedEvent object#

Campos

NombreTipoDescripción
amountWei String!
buyPriceUsdtDrops String! Precio de entrada en USDT drops.
collateralUsdtDrops String! Importe de colateral en USDT drops (entrada del usuario menos comisiones).
currentPriceUsdtDrops String! Precio actual en USDT drops.
leverageX10 Int!
limit PublicTradeLimitOutput
liquidationPriceUsdtDrops String Precio de liquidación en USDT drops (null para SPOT 1x LONG).
notionalUsdtDrops String! Valor nocional en USDT drops (collateral * leverage).
paidAmountUsdtDrops String! Importe pagado en USDT drops.
pnlUsdtDrops String! PnL en vivo en USDT drops.
positionId ID!
positionType PositionType!
side PositionSide!
timestamp DateTime!
tokenId String!
type TurboTokenPositionEventType!

PublicPriceTick object#

Campos

NombreTipoDescripción
price Float!
tokenId ID!

PublicTokenListItemOutput object#

Campos

NombreTipoDescripción
avatarUrl String!
boostedUntil DateTime Cuándo expira el boost activo de este token, o null si no tiene 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! Volumen acumulado de operaciones (USDT drops, 1e6 = 1 USDT).

PublicTokenStatisticsOutput object#

Campos

NombreTipoDescripción
buysCount Int!
nonMmVolumeFromBoostersUsdtDrops String!
sellsCount Int!
totalVolumeUsdtDrops String!
uniqueTradersCount Int!
volumeFromBoostersUsdtDrops String!

PublicTradeCloseOutput object#

Campos

NombreTipoDescripción
amountUsdtDrops String! Importe de la posición en USDT drops sin comisiones.
closePriceUsdtDrops String!
closeType TurboTokenPositionCloseType! Cómo se cerró la posición.
closedAt DateTime!
leverageX10 Int! Apalancamiento X10 (10 = 1.0x, 20 = 2.0x, 100 = 10.0x).
paidAmountUsdtDrops String! Importe pagado en USDT drops.
pnlPercentage String!
pnlUsdtDrops String!
positionId String!
positionType PositionType! Tipo de posición (SPOT o FUTURES).
receivedAmountUsdtDrops String! Importe recibido tras cerrar la posición en USDT drops.
side PositionSide! Lado de la posición (LONG o SHORT).
tokenId String!
totalCloseFeeUsdtDrops String! Comisión de cierre + comisión de beneficio en USDT drops.

PublicTradeLimitOutput object#

Campos

NombreTipoDescripción
positionId ID! Id de la posición a la que está adjunto este límite.
slTriggerPnlUsdtDrops String PnL del disparador de stop-loss en USDT drops (1e6 = 1 USDT); null si no está definido.
slTriggerPriceUsdtDrops String Precio del disparador de stop-loss en USDT drops (1e6 = 1 USDT); null si no está definido.
tokenId String! Id del token con el que opera la posición.
tpTriggerPnlUsdtDrops String PnL del disparador de take-profit en USDT drops (1e6 = 1 USDT); null si no está definido.
tpTriggerPriceUsdtDrops String Precio del disparador de take-profit en USDT drops (1e6 = 1 USDT); null si no está definido.
userId String! Id del usuario propietario.

PublicTradePositionOutput object#

Campos

NombreTipoDescripción
amountUsdtDrops String!
amountWei String!
collateralUsdtDrops String! Importe de colateral en USDT drops (entrada del usuario menos comisiones).
id ID!
leverageX10 Int!
limit PublicTradeLimitOutput
liquidationPriceUsdtDrops String Precio de liquidación en USDT drops (null para SPOT 1x LONG).
notionalUsdtDrops String! Valor nocional en USDT drops (collateral * leverage).
positionType PositionType!
priceUsdtDrops String!
side PositionSide!
timestamp DateTime!

PublicUserOutput object#

Campos

NombreTipoDescripción
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

NombreTipoDescripción
afterCursor String
beforeCursor String
last Boolean Devuelve los últimos elementos según `limit`
limit Float!

PublicBoosterBuyInput input#

Campos

NombreTipoDescripción
boosterType TokenBoosterType! Nivel de booster a comprar.
tokenId String! Id del token a potenciar con boost.
usePackageCredits Boolean! Paga con créditos del paquete del programa de creadores en lugar del saldo en efectivo.

PublicClaimCreatorFeeInput input#

Campos

NombreTipoDescripción
tokenId ID!

PublicClosedPositionsInput input#

Campos

NombreTipoDescripción
pagination CursorPaginationInput!
tokenId ID Restringe a un único token; omítelo para todos los tokens.

PublicFileUploadInput input#

Campos

NombreTipoDescripción
mimeType String! Tipo MIME del archivo a subir, p. ej. `image/png`.
size Int! Tamaño del archivo en bytes.

PublicTokenCreateInput input#

Campos

NombreTipoDescripción
buyUsdtDrops String Importe de compra inicial en USDT drops (1e6 = 1 USDT).
description String
fileId String Id del archivo devuelto por `fileFinalize`.
name String!
priceMode TurboPriceMode
rank TurboTokenRank
symbol String!
turboTokenMode TurboTokenMode
xLink String

PublicTradeCloseInput input#

Campos

NombreTipoDescripción
positionId ID!
tokenId ID!

PublicTradeLimitConfigInput input#

Campos

NombreTipoDescripción
slTriggerPnlUsdtDrops String PnL en USDT drops para el stop loss (valor negativo).
slTriggerPricePercentage Float Porcentaje del precio de entrada en formato decimal donde 1 = 100%, 0.5 = 50%. LONG: debe ser < 1, SHORT: debe ser > 1.
slTriggerPriceUsdtDrops String
tpTriggerPnlUsdtDrops String PnL en USDT drops para el take profit (valor positivo).
tpTriggerPricePercentage Float Porcentaje del precio de entrada en formato decimal donde 1 = 100%, 2 = 200%, etc. LONG: debe ser > 1, SHORT: debe ser < 1.
tpTriggerPriceUsdtDrops String

PublicTradeLimitDeleteInput input#

Campos

NombreTipoDescripción
positionId String!

PublicTradeOpenInput input#

Campos

NombreTipoDescripción
amountWei String Cantidad de token en wei a comprar. Mutuamente excluyente con `usdtDrops`.
leverageX10 Int! Apalancamiento 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 excluyente con `amountWei`.

TurboTokenListFilterInput input#

Campos

NombreTipoDescripción
rank TurboTokenRank
speedMode [SpeedMode!]
userId String

Enums

PositionSide enum#

Valores

NombreDescripción
LONG
SHORT

PositionType enum#

Tipo de posición: SPOT (1x LONG) o FUTURES (LONG / SHORT apalancado)

Valores

NombreDescripción
FUTURES
SPOT

PublicUnclaimedBalanceType enum#

Valores

NombreDescripción
BONDED_TURBO_TOKEN_FEE
CREATOR_FEE
CREATOR_PROGRAM_REFERRAL_REWARD
MINDSHARE_REWARD
PRESALE_REFERRAL_REWARD
REFERRAL_REWARD
SEASON_REWARD

SortDirection enum#

Valores

NombreDescripción
Asc
Desc

SpeedMode enum#

Valores

NombreDescripción
CRACK
FAST
FLASH
MAYHEM
NORMAL

TokenBoosterType enum#

Valores

NombreDescripción
B1
B2
B3
B4
B5
B6

TurboPriceMode enum#

Valores

NombreDescripción
FiveHundred
Hundred
One
Ten

TurboTokenListSorting enum#

Valores

NombreDescripción
BuysCount
SellsCount
StartTime
TimeLeft
TradersCount
Volume

TurboTokenMode enum#

Valores

NombreDescripción
Crack
Fast
Flash
Mayhem
Slow

TurboTokenPositionCloseType enum#

Valores

NombreDescripción
EXPIRED
LIQUIDATION
STOP_LOSS
TAKE_PROFIT
USER_SELL

TurboTokenPositionEventType enum#

Valores

NombreDescripción
POSITION_CLOSED
POSITION_OPENED
POSITION_UPDATED

TurboTokenRank enum#

Valores

NombreDescripción
Competition
Private
Public

UserStatus enum#

Valores

NombreDescripción
GUEST
MEMBER

UserWalletType enum#

Valores

NombreDescripción
Embedded
External

Scalars

DateTime scalar#

Una cadena de fecha y hora en UTC, como 2019-12-03T09:54:33Z, conforme al formato date-time.