← Volver al catálogo 🏠 Inicio
METODO_INDICES.md

Metodo de Indices — Composicion de Economia Real en BSC

Arquitectura de Tres Capas

CAPA 3: INDICE NACIONAL

┌─────────────────────────────────────────────────────┐

│ VZ_ECONOMIA = Σ (peso_cat × Indice_Categoria) │

└─────────────────────────────────────────────────────┘

▲ ▲ ▲ ▲

│ │ │ │

CAPA 2: INDICES DE CATEGORIA

┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐

│ IDX_AGRI │ │ IDX_PESC │ │ IDX_MIN │ │ IDX_ENER │ ...

│Σ(w×inst) │ │Σ(w×inst) │ │Σ(w×inst) │ │Σ(w×inst) │

└──────────┘ └──────────┘ └──────────┘ └──────────┘

▲ ▲ ▲ ▲

│ │ │ │

CAPA 1: INSTRUMENTOS INDIVIDUALES

MANGO_g BOCACHICO_g ORO_g PETROLEO_g POLLO_g CASABE_g ...


1. Instrumento (Capa 1 — ya existe)

Cada instrumento es un CommodityToken (extiende GoldTokenBase):

No cambia nada aqui. Los instrumentos ya funcionan.


2. Indice de Categoria (Capa 2 — NUEVO)

2.1 Definicion

Un indice de categoria es un token ERC20 (IndexToken) cuyo precio refleja el promedio ponderado de los precios de sus instrumentos componentes.

Precio_Indice_Categoria = Σ (peso_i × Precio_Instrumento_i)

2.2 Constitucion del Contrato

Cada categoria tiene un CategoryIndex que define:

struct Component {

address token; // direccion del InstrumentToken

bytes32 pricePair; // par en el Oracle (ej: "MANGO/USD")

uint256 weightBps; // peso en basis points (10000 = 100%)

bool active; // se puede desactivar sin recompilar

}

struct CategoryIndex {

string name; // "Indice Agricola Venezolano"

string symbol; // "IDX_AGRI"

bytes32 indexPair; // par sintetico en Oracle (ej: "IDX_AGRI/USD")

Component[] components;

uint256 totalWeightBps; // suma de pesos (debe ser 10000)

uint256 rebalancePeriod; // segundos entre rebalanceos

uint256 lastRebalance; // timestamp del ultimo rebalanceo

}

2.3 Mecanismo de Precio

El precio del indice NO se calcula on-chain en tiempo real (gas costoso).

En cambio:

1. Oracle Centralizado (API PHP) calcula el valor del indice off-chain

2. Push al Oracle on-chain: oracle.updatePrice("IDX_AGRI/USD", valor)

3. IndexToken lee el precio del Oracle igual que cualquier CommodityToken

Esto reutiliza la infraestructura existente sin nuevos patrones.

2.4 Mecanismo de Minteo

El usuario deposita BNB en el IndexToken y recibe tokens del indice:

El tenedor del indice NO posee los instrumentos individuales — posee un token que refleja el valor ponderado de la canasta. Es un derivado sintetico con respaldo en BNB.

2.5 Rebalanceo

Los pesos se ajustan periodicamente segun cambios en la produccion real:

Evento de rebalanceo:

1. Oracle API recalcula pesos basado en datos de produccion actualizados

2. Owner llama a rebalance(nuevos_pesos) en el contrato

3. El contrato actualiza weightBps de cada componente

4. Se emite evento Rebalanced(nuevos_pesos, timestamp)

Frecuencia sugerida: trimestral (cada 90 dias).


3. Indice Nacional (Capa 3 — NUEVO)

3.1 Definicion

El indice nacional es un IndexToken cuyos componentes son indices de categoria (no instrumentos individuales).

Precio_Indice_Nacional = Σ (peso_cat × Precio_Indice_Categoria)

3.2 Constitucion

struct NationalIndex {

string name; // "Indice de Economia Venezolana"

string symbol; // "VZ_ECON"

bytes32 indexPair; // "VZ_ECON/USD"

CategoryComponent[] categories;

}

struct CategoryComponent {

address indexToken; // direccion del IndexToken de categoria

bytes32 categoryPair; // "IDX_AGRI/USD"

uint256 weightBps; // peso de la categoria en la economia nacional

bool active;

}

3.3 Ponderacion de Categorias

Basada en la contribucion al PIB real de Venezuela (aproximada):

CategoriaPeso (%)Fundamento --------- Energia (petroleo, gas)35%Petroleo = 95% de exportaciones historicas Minería18%Oro, hierro, diamantes, coltan Agricultura15%Produccion agrícola nacional Pecuario7%Carne, leche, huevos Pesca2%Pesca artesanal e industrial Nueva Economia3%Reciclaje, pirolisis, economia circular Dinero (FIAT)12%Liquidez, remesas, tipo de cambio Tokens ecosistema8%GOLDT, GOLDVE, FIAT_g (derivados propios)

Total: 100% (10000 bps)

Principio: El sistema solo trabaja con BNB (activo puente) y derivados
creados por el ecosistema. Criptos externas (BTC, ETH, SOL, USDT, etc.) y
tokens de terceros (XAUT) quedan excluidos — son ruido especulativo, no
economia real.

Estos pesos se actualizan cuando cambian las condiciones economicas reales.


4. Calculo del Valor del Indice

4.1 Formula General

Para un indice con N componentes:

Valor_Indice = Σ(i=1..N) [ peso_i × precio_i ]

donde:

peso_i = weightBps_i / 10000

precio_i = Oracle.getPrice(pricePair_i).price

4.2 Ejemplo: Indice Agricola

ComponentePeso (bps)Precio (USD)Aporte ------------ Maiz2000$5.50/kg$1.10 Arroz1500$0.80/kg$0.12 Cafe1500$4.20/kg$0.63 Cacao1000$3.50/kg$0.35 Mango800$1.20/kg$0.10 Yuca800$0.40/kg$0.03 Sabila500$2.00/kg$0.10 Mani500$1.80/kg$0.09 Platano500$0.60/kg$0.03 Patilla300$0.50/kg$0.02 Melon300$0.70/kg$0.02 Algodon300$1.80/kg$0.05 TOTAL10000$2.64

Precio IDX_AGRI/USD = $2.64

4.3 Ejemplo: Indice Nacional

CategoriaPeso (bps)Precio indiceAporte ------------ Energia3500$75.00$26.25 Mineria1800$1800.00$324.00 Agricultura1500$2.64$0.40 Pecuario700$3.20$0.22 Pesca200$1.50$0.03 Nueva Economia300$0.80$0.02 Dinero1200$1.00$0.12 Tokens ecosistema800$1.20$0.10 TOTAL10000$351.14

Precio VZ_ECON/USD = $351.14


5. Reglas de Constitucion

5.1 Criterios para que un instrumento entre en un indice

1. Debe existir como token activo en BSC (CommodityToken desplegado)

2. Debe tener precio en el Oracle (pricePair registrado y valido)

3. Debe tener volumen de produccion real documentado

4. No puede tener peso > 25% del indice (diversificacion obligatoria)

5. Minimo 3 componentes por indice de categoria

5.2 Criterios para que una categoria entre en el indice nacional

1. Debe tener su IndexToken desplegado y activo

2. Debe tener precio en el Oracle (indexPair registrado)

3. No puede tener peso > 35% del indice nacional

4. Minimo 3 categorias en el indice nacional

5.3 Eventos que disparan rebalanceo


6. Flujo de Datos

OFF-CHAIN ON-CHAIN

───────── ────────

API Oracle Centralizado (PHP)

├── rates.php → precios FIAT/crypto

├── commodities.php → precios commodities

├── indices.php (NUEVO)→ calcula valor de cada indice

│ ├── Lee precios de componentes

│ ├── Aplica pesos del manifest

│ ├── Calcula valor ponderado

│ └── Retorna JSON: { "IDX_AGRI/USD": 264, "VZ_ECON/USD": 29333 }

└── Push al Oracle on-chain

├── oracle.updatePrice("IDX_AGRI/USD", 264000000) // 6 decimales

└── oracle.updatePrice("VZ_ECON/USD", 29333000000)

Oracle.sol (BSC)

├── prices["MANGO/USD"] = 1200000 ($1.20)

├── prices["IDX_AGRI/USD"] = 2640000 ($2.64)

└── prices["VZ_ECON/USD"] = 293330000 ($293.33)

IndexToken.sol (BSC)

├── Lee precio de su indexPair del Oracle

├── Mintea tokens proporcional al BNB depositado

└── Fee 1% → Vault → GOLDVE


7. Contratos Necesarios

7.1 IIndex.sol (interfaz)

Define la estructura de componentes y metodos comunes.

7.2 IndexToken.sol (token de indice)

Extiende GoldTokenBase. Es un ERC20 normal cuyo pricePair es el par sintetico del indice. No necesita logica especial — reutiliza todo el sistema existente.

7.3 CategoryIndexFactory.sol

Despliega IndexToken para cada categoria, registrando sus componentes y pesos.

7.4 NationalIndexFactory.sol

Despliega el IndexToken nacional, registrando los indices de categoria como componentes.

7.5 IndexRegistry.sol (opcional)

Registro on-chain de todos los indices y sus componentes para auditoria.


8. API de Indices (NUEVO endpoint)

/api/indices.php — calcula y retorna el valor de todos los indices:

{

"status": "success",

"data": [

{

"symbol": "IDX_AGRI",

"name": "Indice Agricola Venezolano",

"pair": "IDX_AGRI/USD",

"value": 2.64,

"components": [

{"symbol": "MAIZ", "weight": 0.20, "price": 5.50, "contribution": 1.10},

{"symbol": "ARROZ", "weight": 0.15, "price": 0.80, "contribution": 0.12}

],

"lastRebalance": "2026-03-31"

},

{

"symbol": "VZ_ECON",

"name": "Indice de Economia Venezolana",

"pair": "VZ_ECON/USD",

"value": 293.33,

"categories": [

{"symbol": "IDX_ENER", "weight": 0.30, "value": 75.00, "contribution": 22.50},

{"symbol": "IDX_MIN", "weight": 0.15, "value": 1800.00, "contribution": 270.00}

]

}

]

}


9. Ventajas del Modelo

1. Reutiliza infraestructura existente: IndexToken es un GoldTokenBase mas

2. Calculo off-chain: el Oracle API hace el trabajo pesado, on-chain solo almacena

3. Auditable: los componentes y pesos estan en el contrato, verificables

4. Rebalanceable: el owner ajusta pesos sin recompilar

5. Componible: el indice nacional es un indice de indices

6. Transparente: cualquier puede verificar como se calcula el valor

7. Gas eficiente: una sola llamada al Oracle por indice


10. Roadmap de Implementacion

FaseQue se construyeDependencia --------- 1INDICE_MANIFEST.json con composicion de todas las categoriasInstrumentos documentados 2IIndex.sol + IndexToken.solOracle.sol existente 3CategoryIndexFactory.solIndexToken.sol 4Desplegar indices de categoria en BSC testnetFactory + Oracle 5NationalIndexFactory.solIndices de categoria desplegados 6api/indices.php (calculo off-chain)API de rates + commodities 7Integrar push de precios de indice al Oracleapi/indices.php 8Desplegar en mainnetAuditoria + testnet exitoso

Metodo v1.0 — Ecosistema Criptoinversiones

El indice nacional es el termometro de la economia real venezolana tokenizada.