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 luna.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 →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 →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.
4 of 29 sources verified evidence; among the rest, 11 had nothing to report (thin subject is honest, not a defect); 1 source couldn't reach data. The score of 27/100 reflects the thin public footprint. Low scores are expected for subjects with little public footprint — this is a finding, not an error.
Your counterparty graph shows a closed-loop or low-diversity high-volume pattern — the heuristic Veral uses to detect wash trading or sybil clusters. Either same addresses repeatedly transacting, or a small handful of counterparties carrying the majority of value.
Wash / sybil patterns are detected from on-chain transfer history; they cannot be retroactively cleared. Practical paths: • If the pattern reflects internal operations (e.g. an aggregator routing through a fixed set of pools), diversify your counterparty set going forward — the 90-day window will reflect the change. • If the pattern is structural and intentional (e.g. settlement-only addresses for a closed-system service), the flag may be permanent under current methodology. Consider a signed manifest declaring the operational shape; future Anchored tier review can override the heuristic.
90-day rolling window. Diversification effects visible after the window cycles.
| Attribute | Weight | Raw | Contribution |
|---|---|---|---|
| fid | 0.17 | 1.00 | 0.1334 |
| accountAgeSeconds | 0.17 | 0.80 | 0.1334 |
| castsCount | 0.17 | 0.51 | 0.1334 |
| verifiedAddressCount | 0.17 | 0.60 | 0.1334 |
| Attribute | Weight | Raw | Contribution |
|---|---|---|---|
| nonce | 0.13 | 1.00 | 0.0746 |
| firstTxBlock | 0.13 | 1.00 | 0.0746 |
| firstTxTimestamp |
| Attribute | Weight | Raw | Contribution |
|---|---|---|---|
| counterparty.distinctCounterpartyCount | 0.25 | 1.00 | 0.1000 |
| counterparty.uniqueCounterpartiesIn30d | 0.25 | 1.00 | 0.1000 |
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 === 27The same evidence always produces the same score — no AI, no per-visitor variation. The methodology document above is the canonical reference.
| 0.13 |
| 0.79 |
| 0.0746 |
| transferCountRecent90d | 0.13 | 1.00 | 0.0746 |
| deployedContractCount· clean baseline, no adverse flag | 0.13 | 0.00 | 0.0746 |
| isContract· clean baseline, no adverse flag | 0.13 | 0.00 | 0.0746 |
| counterparty.uniqueCounterpartiesIn90d | 0.25 | 1.00 | 0.1000 |
| counterparty.washPatternFlag | 0.25 | 1.00 | 0.1000 |