Show what was measured, not what was claimed
A live badge for any endpoint in the paid panel. It shows the fault rate upper bound and the sample it rests on, and links to the full record. It updates itself every ten minutes.
Free and automatic. It cannot be bought, earned by contact with the observatory, or switched off for a bad week: it shows the measurement as it is.
Make a badge
Your endpoint’s badge
Paste the URL of a paid x402 endpoint. If it is not measured yet the badge says so, and changes on its own once measurement starts.
Reading a badge
What each state means
The figure is an upper bound at 95% confidence: the worst fault rate consistent with what has been observed. It is not an estimate. Colour only appears once the sample is large enough to publish (n ≥ 100).
Published, bound under 10%.
Published, bound from 10% to 30%.
Published, bound above 30%.
Provisional: 20 to 99 observations. Enough for a policy, not for a rate.
Measuring: fewer than 20 observations.
Not in the paid panel yet.
Claim your endpoint
Prove it is yours with a signature
Claiming lets you be told when your endpoint crosses a bound, and reply on your record. It never changes how you are measured.
Sign a short message with the payTo address your 402 challenge declares. Stellar addresses sign it as a SEP-53 Stellar signed message, with any wallet or SDK that supports it; EVM addresses use personal_sign. Your secret key never leaves your machine.
1. Sign this exact message
Freighter, xBull, Lobstr, Hana and other wallets that sign messages. The wallet shows you the message before signing; the signature is checked in your browser before anything is sent.
Or with the Stellar SDK, on your own machine:
import { Keypair } from '@stellar/stellar-sdk';
const signature = Keypair.fromSecret(PAYTO_SECRET).signMessage(message).toString('base64');