Tikin · Docs
Conceptos

Dinero

Assets, unidades mínimas, y por qué los montos viajan como texto.

El monto es un objeto, y raw es texto

Todo monto en el API tiene esta forma:

{ "raw": "2500000", "asset": "COPM" }

raw es un entero positivo en unidades mínimas del asset, como string. Ese ejemplo son 2.500.000 centavos = $25.000 COP.

Los assets

AssetQué esEscala"100" equivale a
COPMCentavos de peso colombiano2$1 COP
DUSDMillonésimas de dólar6US$0,0001

Por qué texto y no número

Porque JSON no tiene enteros — tiene floats IEEE 754, y los parsers hacen lo que quieren con ellos:

  • 9007199254740993 (más de 2⁵³) se corrompe en silencio en JavaScript.
  • 0.1 + 0.2 ≠ 0.3 — los decimales binarios no representan dinero decimal.
  • Cada lenguaje redondea distinto, y un ledger no puede depender del parser del cliente.

Un string llega intacto a todos lados. Tu trabajo es parsearlo con un tipo entero (BigInt, int64, Decimal) — nunca con parseFloat.

Las reglas

  • Sin decimales: raw es un entero (patrón ^\d+$). "$25.000,50" en COPM es "2500050", no "25000.50". Un monto con más precisión de la que el asset admite es 400 — no se redondea dinero ajeno.
  • Sin signos: la dirección la da la operación (transferencia, payout, bono), no el monto.
  • Al mostrar, divide por la escala: COPM entre 100, DUSD entre 1.000.000.

Dónde lo vas a ver

En todo: amount de transferencias y bonos, available/held de los saldos, los movimientos, el fee de cada operación. El libro habla una sola lengua.

On this page