Skip to content

A badge that cannot go stale

The badge reads the registry every time it renders. If a later audit moves the score from 88 to 43, the badge shows 43.

English governs the contract statements on this page. Contract names, addresses and numbers are shown as they are on the chain.

Embed code

Paste this where you want the badge. It is an iframe and needs no script.

Preview

Enter a token address and the badge appears here, reading the registry live.

There is no "verified safe" badge and there never will be. A badge reports a measurement and its date.

Or read the contract directly

The badge reads two registries: a signed report from KAY9Registry when one exists, a basic scan from KAY9ScanRegistry otherwise. No API key, no rate limit and no dependence on this site.

KAY9Registry.latestSummaryForToken(bytes32 chainKey, address token)
  returns (
    bool    exists,
    uint256 reportId,
    uint8   overallTrust,     // 0 worst, 100 most trustworthy
    uint64  flags,
    uint32  engineVersion,
    uint64  committedAt      // always render this
  )

KAY9Registry.scoreHistory(bytes32 chainKey, bytes32 assetId, uint256 offset, uint256 limit)
  returns (uint64[] committedAt, uint8[] overallTrust)

chainKey = keccak256("eip155:4663")