Cómo verificar el historial de Vectorial Stocks

Cada pick anunciado de Vectorial Stocks queda en una cadena de hashes SHA-256 —ticker, precio y fecha, cada uno enlazado al anterior— y cada eslabón se atestigua en Ethereum Attestation Service sobre la red Base. Cualquiera puede descargar /picks-ledger.json, recalcular la cadena con el script de esta página y compararla con las atestaciones en Base. La verificación prueba que un pick no se editó después; no prueba cuándo se decidió ni incluye la tesis.

La cadena hoy

La cadena pública tiene 179 picks anunciados y 179 de ellos tienen su atestación en Base. Solo incluye picks ya anunciados: cada pick entra a la cadena pública el día en que se anuncia.

Hash del último eslabón (el script debe imprimir este mismo valor):

b287ddbbeac6a73a151899f2b91efda82d33a2743689a7caa29383aada5a8cf5

La fórmula

Cada eslabón se calcula con los datos del pick y el hash del eslabón anterior. El primero parte de 64 ceros.

hash₀ = 0000…0000   (64 ceros)
hashₙ = SHA-256( ticker | precio | fecha | hashₙ₋₁ )
  • ticker: el símbolo tal como aparece en el libro, por ejemplo UBS.
  • precio: el precio de entrada por acción en dólares, como número sin ceros de relleno (39.76, no 39.760; 100, no 100.00).
  • fecha: el día de la decisión, en formato AAAA-MM-DD.
  • Los cuatro campos se unen con una barra vertical (|), sin espacios; se aplica SHA-256 al texto en UTF-8 y el resultado, en hexadecimal, es el hash del pick.

Ejemplo resuelto con el pick #1 (UBS, 39.76, 4 de marzo de 2026):

SHA-256("UBS|39.76|2026-03-04|0000…0000")
= a6cedc77391539cd8653bb1a61430ca3fb2fd5abbf58cc00185e35e065e7892d

La atestación en Base

Además, cada pick se registra en Ethereum Attestation Service (EAS), un contrato público en Base, la red de capa 2 de Ethereum. La atestación guarda el ticker, el precio, la fecha, el número de pick y el hash de la cadena, y no se puede revocar ni editar.

Red y contrato EAS
Base · EAS 0x4200000000000000000000000000000000000021
Esquema
string ticker, uint256 price, string date, uint256 pickNumber, bytes32 chainHash
UID del esquema
0x7e94bb9245e7dd9242e4f251ed5b28a00ac6fcefd6f8f403a33dd18893cc8494
Atestador (la cuenta que firma)
0x3fB301C378EdfF40d957E2Eec7ec2EEF969cda18
Revocable
No

En la atestación el precio va en centavos, como número entero (39.76 → 3976), porque el campo es uint256. El número de pick es la posición en la cadena: 1, 2, 3…

Ejemplo: la atestación del pick #1 en el explorador de EAS. Ver la atestación del pick #1 (UBS)

Recalcula la cadena tú mismo

Este script descarga /picks-ledger.json y recalcula cada hash desde cero. Guárdalo como verificar.mjs y ejecútalo con Node 18 o más reciente; no necesita dependencias.

// Node 18+:  node verificar.mjs
import { createHash } from "node:crypto";

const url = "https://vectorialdata.com/picks-ledger.json";
const ledger = await (await fetch(url)).json();

let prev = "0".repeat(64); // génesis: 64 ceros
for (const p of ledger) {
  const input = `${p.ticker}|${p.price}|${p.date}|${prev}`;
  const hash = createHash("sha256").update(input).digest("hex");
  if (p.previous_hash !== prev || p.hash !== hash) {
    throw new Error(`Pick #${p.pick_number} (${p.ticker}): el hash no coincide`);
  }
  prev = hash;
}
console.log("OK", ledger.length, "picks", prev);

Si termina con OK, cada hash del libro corresponde a su ticker, su precio y su fecha, y cada eslabón apunta al anterior. El último hash impreso debe coincidir con el de «La cadena hoy».

Compara con Base

  1. Descarga la lista de picks con el UID de la atestación de cada uno: /api/v1/verify/picks
  2. Busca un UID en base.easscan.org y comprueba que el atestador y el UID del esquema sean los de arriba.
  3. Compara el campo chainHash de la atestación con el hash que calculó el script para ese pick; la atestación lo muestra con el prefijo 0x.

También puedes revisar los picks uno por uno en la página de verificación

Límites: lo que esta verificación no prueba

Preferimos decirlo nosotros.

  1. La tesis no se atestigua. La cadena y la atestación solo cubren ticker, precio, fecha, número de pick y hash. El texto de la tesis y del riesgo no forma parte de la cadena, así que la cadena no prueba que no haya cambiado.
  2. Los primeros 27 picks se atestiguaron en lote. Los picks #1 a #27 (del 4 al 31 de marzo de 2026) se registraron en Base el 1 de abril de 2026, entre las 13:00 y las 13:04 UTC. Desde el #28, cada pick se atestigua el mismo día de su fecha de decisión o al día siguiente (hora de Ciudad de México).
  3. La atestación es posterior a la apertura. El precio registrado es el de apertura del día de la decisión, y la atestación se hace horas después, a veces tras el cierre del mercado. Prueba que el pick no se editó desde ese momento; no prueba que se decidió antes de que abriera el mercado.
  4. El modelo entra antes del anuncio. El portafolio modelo registra cada pick en su fecha de decisión, al precio de apertura de ese día. Los anuncios salen después y en orden, por una fila de un pick por día hábil (entre las 9:00 y las 12:59, hora de Ciudad de México), así que un pick puede anunciarse días o semanas después de entrar al modelo. Quien compra al recibir el anuncio paga otro precio.
  5. Algunos picks tienen más de una atestación. Por reintentos al registrar, 17 números de pick (por ejemplo, #28 y #29) tienen dos o más atestaciones en Base con los mismos datos. La que cuenta es la que aparece en /api/v1/verify/picks.
  6. Es un historial joven. El primer pick es del 4 de marzo de 2026. Una cadena verificable muestra qué se publicó y cuándo; no dice si la estrategia funciona.

Cómo se calcula el rendimiento del modelo: Metodología