Identifier specification
A record nobody can cite is a record nobody can carry. VetMyToken issues short, permanent, resolvable identifiers so that an incident, a cluster of linked wallets or a verdict can be quoted in someone else's database, footnoted in someone else's report, and checked years later against what was said at the time.
The three families
There is one format per family and no second spelling of any of them.
VMT-INC-<year>-<number>names an incident.VMT-CL-<year>-<number>names a cluster of linked wallets.VMT-VER-<chain>-<address>-<block>names a verdict recorded at one block.
The first two are allocated from a counter. The third is derived from its own subject, because a verdict is a statement about one token at one block and there is exactly one of those — which means two parties who have never spoken can name the same verdict and agree.
Assignment rules
- Numbers run from one, upwards, within a family and a calendar year. A number is taken once.
- An identifier is assigned to a subject once. Asking for the same subject twice returns the identifier that already exists.
- An identifier is never reassigned to a different subject, and it is never rewritten. A record that is later corrected keeps the identifier it was issued with, so a citation made today still lands on the same record.
- Numbers are written 6 digits wide from release 0133 onward. Padding carries no meaning: identifiers issued earlier are four digits wide, they stay exactly as issued, and the resolver accepts either width for the same record.
- Chains are written in lower case. On chains whose addresses are hexadecimal the address is written in lower case; on chains whose addresses are case-sensitive it is written exactly as the chain writes it.
Resolving
Every identifier resolves at https://vetmytoken.com/i/ followed by the identifier. A browser gets a page. A caller that asks for JSON in the Accept header gets the same fields as JSON, plus the attestation leaf for a verdict identifier. An identifier the register does not carry answers 404 and echoes the identifier back.
This address is permanent. An identifier is assigned once, is never reassigned to a different subject, and the page it resolves to keeps this address for as long as the site exists.
The attestation leaf
A verdict identifier has an attestation-ready form: the bytes that become a Merkle leaf under the daily root described in the draft standard. The leaf is a single SHA-256 over these fields, joined with the unit separator, in this order:
domainidentifierverdictblock_hashobserved_at
The first field is the fixed domain tag VMT-VER-v1. Field order is part of the commitment — an attester and a verifier that disagree about the order compute different leaves and neither can prove anything.
Asking for an identifier
A holder of an API key may ask for an identifier by posting a chain, an address or transaction hash, a one-line claim and a link to the evidence to https://vetmytoken.com/api/v1/identifiers/request. The allowance is 10 requests per key per day. A request goes to a review queue and nothing is published by the call itself: identifiers are assigned by a person who has read the evidence.
Licence
The identifiers are free to use for any purpose, including commercial purposes, on one condition: the identifier is reproduced exactly as issued and VetMyToken is credited as its source. The condition covers the identifier alone. The evidence, scores, findings and check results this site publishes alongside an identifier are not granted by this licence.