¿Por qué usar Gold?
- Proporciona un formato claro y estructurado para transferencias de activos.
- Define fuentes, destinos y montos explícitamente.
- Soporta lógica de transacciones avanzada, como la distribución de saldos basada en porcentajes o montos restantes.
- Mejora la automatización y consistencia en los flujos de trabajo financieros.
Estructura de un archivo .gold
Un archivo .gold representa una Transacción utilizando una estructura jerárquica. A continuación se muestra un ejemplo:
Jerarquía del DSL
A continuación se muestra la estructura jerárquica de un archivo.gold, ilustrando las relaciones clave:
Comprensión de palabras clave del DSL
Transacción
Abre un nuevo bloque de Transacción, donde se definen todos los elementos relacionados.send
Especifica el activo y el monto a transferir, incluyendo las cuentas de origen desde las cuales se debitarán los fondos. Múltiples cuentasfrom pueden agruparse usando source.
Formato: send {asset_code} {value}|{scale}
distribute
Define las cuentas de destino donde se acreditarán los fondos. Múltiples cuentasto pueden incluirse dentro de distribute.
Notaciones de valores en transacciones
El DSL gold soporta diferentes formas de expresar valores dentro de una Transacción::amount– Notación estándar que especifica el activo, monto y escala.:share– Especifica un porcentaje del monto total delsend.:remaining– Asigna el saldo restante después de todas las demás distribuciones.
Ejemplo: Flujo de Transacción Pix Out
Este ejemplo demuestra una Transacción Pix Out en formato.gold:
Desglose:
- (Transacción v1) – Define una nueva Transacción usando la versión 1.
- (chart-of-accounts-group-name PIX_OUT) – Categoriza la Transacción.
- (metadata …) – Almacena datos adicionales de la Transacción.
- (send BRL fee|2) – Especifica el monto total enviado.
- (source …) – Detalla las cuentas de origen desde las cuales se debita el monto.
- (distribute …) – Asigna los fondos a las cuentas apropiadas.
- (distribute :remaining …) – Asegura que cualquier saldo restante sea manejado.

