How to verify the Vectorial Stocks track record
Every announced Vectorial Stocks pick is recorded in a SHA-256 hash chain — ticker, price and date, each linked to the previous one — and every link is attested on the Ethereum Attestation Service on the Base network. Anyone can download /picks-ledger.json, recompute the chain with the script on this page and compare it with the attestations on Base. The check proves that a pick was not edited afterwards; it does not prove when the pick was decided and it does not cover the thesis.
The chain today
The public chain has 179 announced picks, and 179 of them have their attestation on Base. It only includes announced picks: each pick joins the public chain on the day it is announced.
Hash of the latest link (the script must print this same value):
b287ddbbeac6a73a151899f2b91efda82d33a2743689a7caa29383aada5a8cf5The formula
Each link is computed from the pick's data and the hash of the previous link. The first one starts from 64 zeros.
hash₀ = 0000…0000 (64 zeros)
hashₙ = SHA-256( ticker | price | date | hashₙ₋₁ )- ticker: the symbol exactly as it appears in the ledger, for example UBS.
- price: the entry price per share in U.S. dollars, written as a number without padding zeros (39.76, not 39.760; 100, not 100.00).
- date: the decision date, in YYYY-MM-DD format.
- The four fields are joined with a vertical bar (|) and no spaces; SHA-256 is applied to the UTF-8 text, and the hexadecimal result is the pick's hash.
Worked example with pick #1 (UBS, 39.76, March 4, 2026):
SHA-256("UBS|39.76|2026-03-04|0000…0000")
= a6cedc77391539cd8653bb1a61430ca3fb2fd5abbf58cc00185e35e065e7892dThe attestation on Base
Each pick is also recorded on the Ethereum Attestation Service (EAS), a public contract on Base, Ethereum's layer-2 network. The attestation stores the ticker, the price, the date, the pick number and the chain hash, and it cannot be revoked or edited.
- Network and EAS contract
- Base · EAS 0x4200000000000000000000000000000000000021
- Schema
- string ticker, uint256 price, string date, uint256 pickNumber, bytes32 chainHash
- Schema UID
- 0x7e94bb9245e7dd9242e4f251ed5b28a00ac6fcefd6f8f403a33dd18893cc8494
- Attester (the signing account)
- 0x3fB301C378EdfF40d957E2Eec7ec2EEF969cda18
- Revocable
- No
In the attestation the price is stored in cents as an integer (39.76 → 3976), because the field is a uint256. The pick number is the position in the chain: 1, 2, 3…
Example: the attestation of pick #1 in the EAS explorer. See the attestation of pick #1 (UBS)
Recompute the chain yourself
This script downloads /picks-ledger.json and recomputes every hash from scratch. Save it as verify.mjs and run it with Node 18 or newer; it has no dependencies.
// Node 18+: node verify.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); // genesis: 64 zeros
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}): hash mismatch`);
}
prev = hash;
}
console.log("OK", ledger.length, "picks", prev);If it ends with OK, every hash in the ledger matches its ticker, price and date, and every link points to the previous one. The last hash it prints must match the one under “The chain today”.
Compare with Base
- Download the list of picks with the attestation UID of each one: /api/v1/verify/picks
- Look up a UID on base.easscan.org and check that the attester and the schema UID are the ones above.
- Compare the attestation's chainHash field with the hash the script computed for that pick; the attestation shows it with a 0x prefix.
You can also check the picks one by one on the verification page
Limits: what this check does not prove
We would rather say it ourselves.
- The thesis is not attested. The chain and the attestation only cover the ticker, price, date, pick number and hash. The text of the thesis and the risk is not part of the chain, so the chain does not prove it has not changed.
- The first 27 picks were attested in a batch. Picks #1 to #27 (March 4 to March 31, 2026) were recorded on Base on April 1, 2026, between 13:00 and 13:04 UTC. From #28 on, each pick is attested on its decision date or the following day (Mexico City time).
- The attestation comes after the open. The recorded price is the opening price on the decision date, and the attestation is made hours later, sometimes after the market close. It proves the pick has not been edited since then; it does not prove the pick was decided before the market opened.
- The model enters before the announcement. The model portfolio records each pick on its decision date at that day's opening price. Announcements come later and in order, through a queue that releases one pick per business day (between 9:00 and 12:59 Mexico City time), so a pick can be announced days or weeks after it entered the model. Someone who buys when the announcement arrives pays a different price.
- Some picks have more than one attestation. Because of retries when recording, 17 pick numbers (for example #28 and #29) have two or more attestations on Base with the same data. The one that counts is the one listed in /api/v1/verify/picks.
- It is a young track record. The first pick is from March 4, 2026. A verifiable chain shows what was published and when; it does not say whether the strategy works.
How the model's performance is calculated: Methodology