Acciones tokenizadas (xStocks)
Las acciones tokenizadas de Skipo (NVDASPV, TSLASPV, AMDSPV, GLDSPV…) son activos
rebasing. La cantidad liquidada nunca se mueve; las acciones corporativas —reinversión
de dividendos, splits, splits inversos— se expresan subiendo un multiplicador:
acciones subyacentes = cantidad liquidada × multiplicador
precio por acción = tasa / multiplicador
Las dos representaciones describen el mismo dinero: cantidad × tasa da el mismo importe
en la moneda de cotización en ambos casos. El rebase afecta solo a la pata base — un
mercado xStock es <ACCIÓN>-CLP o <ACCIÓN>-USDT, así que la otra pata es fiat o una
stablecoin.
assetFormat
Los endpoints de órdenes y fills aceptan un parámetro assetFormat:
| Valor | Qué devuelve |
|---|---|
rebased (por defecto) | Importes en términos de la acción subyacente — lo que un tenedor considera "sus acciones". |
base | Importes en términos de los tokens SPV liquidados — lo que se movió en cadena y en el libro contable. |
GET /v2/fills?market=NVDASPV-CLP # rebased (por defecto)
GET /v2/fills?market=NVDASPV-CLP&assetFormat=base # cifras liquidadas
rebasedEs un cambio deliberado respecto al comportamiento anterior, que devolvía base. Un
inversor piensa en acciones, no en tokens SPV, y es lo que hacen las plataformas
comparables (el rebase_multiplier de Kraken tiene el mismo valor por defecto). Si tu
integración depende de las cifras liquidadas, pide assetFormat=base explícitamente.
En los demás activos no cambia nada: el multiplicador es 1 y ambos modos son idénticos.
El campo multiplier
Órdenes y fills publican el factor aplicado:
{
"id": "1096473",
"baseAsset": "NVDASPV",
"baseAmount": "10.000658218334353",
"rate": "18499.8",
"multiplier": "1.0000658218334353"
}
Con él puedes reconstruir la otra representación sin pedir de nuevo:
- base → rebased:
baseAmount × multiplier,rate ÷ multiplier - rebased → base:
baseAmount ÷ multiplier,rate × multiplier
Esto es lo que permite conciliar un importe de la API contra un saldo en cadena.
El multiplicador es puntual en el tiempo
Es la parte que más importa y la más fácil de equivocar:
El factor que publicamos es el que estaba vigente en el momento de ese fill, leído de la propia fila. Nunca se recalcula con el factor de hoy.
Una acción corporativa cambia el factor hacia adelante; no cambia lo que entregó una operación pasada. Aplicar el multiplicador de hoy a un fill del año pasado reescribe la historia: si un activo hace un split 10:1, todo tu historial pasado aparecería multiplicado por diez.
Es la regla 3 de la guía de la extensión Scaled UI Amount de Solana: un importe histórico debe mostrarse con el multiplicador vigente cuando ocurrió la transacción.
multiplier: "1" no significa "no es una acción tokenizada"Un factor de exactamente 1 es simplemente un factor que todavía no se ha movido —
TSLASPV está hoy en 1. No lo uses para clasificar activos. La clase de activo es
dato de referencia y se consulta en GET /v2/assets/{assetSymbol}.
El libro contable no acepta assetFormat
GET /v2/ledger expone deliberadamente los importes liquidados, sin assetFormat.
El libro es el registro de doble entrada de lo que realmente se movió, y hoy sus asientos no
llevan el multiplicador vigente en el momento del apunte. Honrar assetFormat obligaría a
resolver el factor en vivo, que es exactamente el error de reescritura descrito arriba.
Preferimos una cifra correcta y sin escalar a una cifra escalada y potencialmente falsa.
Para ver un fill en términos de acciones, úsalo desde /v2/fills, que sí lleva el factor de
su momento.