Prompt Reach

Verification records

A signed record shows what Prompt Reach checked, how, and when. It confirms control, not legal ownership, business quality or the accuracy of every listed fact.

DNS checks find a challenge in a public TXT record. File checks find it on the website. Email checks confirm access to a mailbox at the business domain. Manual reviews are human decisions. Carried over claims have not been re-checked.

Active means a verified claim, a live subscription, and a domain check passed within 14 days. Email and manual checks do not expire. Lapsed means the plan ended or a domain check has not passed in 14 days. Revoked means the claim was withdrawn. Listings without a verified claim show not verified.

Records expire seven days after issue. Check the signed payload, its expiry and the issuer you trust. A signature authenticates our statement; you can also repeat the DNS or file check.

Record index | Public keys

Published key ids: pr-2026-11

Verify with WebCrypto

const { record, proof } = await (await fetch(recordUrl)).json();
const { keys } = await (await fetch(record.issuer + '/.well-known/jwks.json')).json();
const decode = s => Uint8Array.from(atob(s.replace(/-/g, '+').replace(/_/g, '/')), c => c.charCodeAt(0));
const [h, p, s] = proof.jws.split('.');
const header = JSON.parse(new TextDecoder().decode(decode(h)));
if (header.alg !== 'EdDSA' || header.typ !== 'application/prv+json') throw Error('Invalid header');
const jwk = keys.find(k => k.kid === header.kid);
const key = await crypto.subtle.importKey('jwk', jwk, 'Ed25519', false, ['verify']);
const valid = await crypto.subtle.verify('Ed25519', key, decode(s), new TextEncoder().encode(h + '.' + p));
const signed = JSON.parse(new TextDecoder().decode(decode(p)));
if (!valid || JSON.stringify(signed) !== JSON.stringify(record) || Date.parse(signed.expiresAt) <= Date.now()) throw Error('Invalid or expired record');

The reference command is node scripts/verify-record.mjs <record.json URL>. Download the reference script.

Verification records