Veral is fanning out across the public evidence sources for this subject. Cold reads can take a few seconds while sources respond — the page will paint as soon as the score settles.
Veral is fanning out across the public evidence sources for this subject. Cold reads can take a few seconds while sources respond — the page will paint as soon as the score settles.
Veral is reading the public evidence for base.base.eth. Cold reads can take a few seconds while sources respond — the score panel will paint as soon as the reading settles.
Caution-band standing, but one or more negative signals fired — review the overlay below.
This macro has no contributing evidence yet. Publish the records that drive it (ENS, GitHub, audits) to lift it from — into a graded band.
What evidence would grade this →Publishing requires control of this subject — only the wallet its ENS primary address resolves to can issue the certificate.
8 of 29 sources verified evidence; among the rest, 10 had nothing to report (thin subject is honest, not a defect); 1 source couldn't reach data. The score of 33/100 reflects the thin public footprint. Low scores are expected for subjects with little public footprint — this is a finding, not an error.
Your subject is an upgradeable proxy contract whose admin is NOT a timelock. Buyers can be exposed to a no-notice upgrade if the admin key is compromised — Veral caps the score at the top of the Established band to reflect this governance gap.
Add upgrade governance proportional to the value at risk: • Transfer proxy admin to a timelock contract (e.g. OpenZeppelin TimelockController) with a delay ≥ 24h. • Alternatively, transfer admin to a multisig (Safe with threshold ≥ 3) — the next methodology iteration will distinguish EOA / multisig / timelock admins, and a verified multisig will reduce (but not fully clear) this flag. • If the proxy is intended to be permanently non-upgradeable, transfer admin to address(0) — the proxy then behaves as immutable code and this flag clears.
On-chain change visible after one block confirmation; admin-probe cache TTL is ~6 hours.
| Attribute | Weight | Raw | Contribution |
|---|---|---|---|
| upgrade.proxyAdmin· clean baseline, no adverse flag | 0.25 | 0.00 | 0.0500 |
| upgrade.isUpgradeable | 0.25 | 1.00 | 0.0500 |
| upgrade.hasTimelock· clean baseline, no adverse flag | 0.25 | 0.00 | 0.0500 |
| Attribute | Weight | Raw | Contribution |
|---|---|---|---|
| fid | 0.17 | 1.00 | 0.1293 |
| accountAgeSeconds | 0.17 | 0.53 | 0.1293 |
| Attribute | Weight | Raw | Contribution |
|---|---|---|---|
| firstTxBlock | 0.13 | 1.00 | 0.0354 |
| isContract | 0.13 | 1.00 | 0.0354 |
| Attribute | Weight | Raw | Contribution |
|---|---|---|---|
| counterparty.distinctCounterpartyCount | 0.25 | 1.00 | 0.0700 |
| counterparty.uniqueCounterpartiesIn30d | 0.25 | 0.12 | 0.0700 |
| Attribute | Weight | Raw | Contribution |
|---|---|---|---|
| contracts[].address | 0.25 | 1.00 | 0.1500 |
| contracts[].etherscanVerified | 0.25 | 1.00 | 0.1500 |
pnpm add @veral/score
import { computeProfile } from '@veral/score';
const compute = computeProfile('project/v1.0.0');
const result = compute(evidence, { nowSeconds: Math.floor(Date.now() / 1000) });
// result.score === 33The same evidence always produces the same score — no AI, no per-visitor variation. The methodology document above is the canonical reference.
| castsCount |
| 0.17 |
| 0.93 |
| 0.1293 |
| verifiedAddressCount | 0.17 | 0.80 | 0.1293 |
| contractDeployedTimestamp |
| 0.13 |
| 0.57 |
| 0.0354 |
| recentEventCount· clean baseline, no adverse flag | 0.13 | 0.00 | 0.0354 |
| Attribute | Weight | Raw | Contribution |
|---|---|---|---|
| chainPresence[].deployed | 0.25 | 0.25 | 0.1563 |
| chainPresence[].verified | 0.25 | 1.00 | 0.1563 |
| chainPresence[].isProxy· clean baseline, no adverse flag | 0.25 | 0.00 | 0.1563 |
| chainCount | 0.25 | 0.25 | 0.1563 |
| counterparty.uniqueCounterpartiesIn90d | 0.25 | 0.28 | 0.0700 |
| counterparty.washPatternFlag· clean baseline, no adverse flag | 0.25 | 0.00 | 0.0700 |
| contracts[].hasProxy· clean baseline, no adverse flag |
| 0.25 |
| 0.00 |
| 0.1500 |
| verifiedCount | 0.25 | 0.20 | 0.1500 |