JavaScript-free badges for GitHub, Markdown, RSS, and strict-CSP sites.
The ExistBefore live badge needs JavaScript to fetch the current proof state on every load. Some destinations cannot run third-party JS: GitHub READMEs, RSS feeds, government portals, mobile apps that render Markdown, Substack and Medium articles. For those, paste one of the templates below. The badge image is static; the link points to your specific proof page where the live status (T0, T1, T2) is always shown.
Pasting these templates emits no requests to ExistBefore. The badge image is fetched only when a reader opens the page that hosts it. No tracking pixel, no script, no cookie.
Preview
This is the static badge served from /badge/existbefore-badge.svg. It is the same SVG referenced by every template below. Click it to see how the link behaves (it points to a sample proof page).
Copy-paste templates
Replace att_xxxxxxxxxxxx with your real attestation ID, and the date in the alt attribute with the day you obtained the attestation. Click Select all to highlight a template, then copy with your usual shortcut.
HTML — for any web page or CMS
<a href="https://existbefore.com/proof/att_xxxxxxxxxxxx" rel="noopener" hreflang="en">
<img src="https://existbefore.com/badge/existbefore-badge.svg"
alt="Verified by ExistBefore on YYYY-MM-DD"
width="180" height="40">
</a>
Markdown — for GitHub READMEs, Notion, Substack, Medium
[](https://existbefore.com/proof/att_xxxxxxxxxxxx)
reStructuredText — for Sphinx, Read the Docs
.. image:: https://existbefore.com/badge/existbefore-badge.svg
:alt: Verified by ExistBefore on YYYY-MM-DD
:width: 180
:height: 40
:target: https://existbefore.com/proof/att_xxxxxxxxxxxx
Plain link — for email signatures, chat, plain-text logs
Verified by ExistBefore: https://existbefore.com/proof/att_xxxxxxxxxxxx
Accessibility — write a meaningful alt text
The default alt="Verified by ExistBefore on YYYY-MM-DD" is a starting point. Replace YYYY-MM-DD with the day you obtained the attestation, and ideally append a short description of what the badge certifies — for example "Verified by ExistBefore on 2026-04-22 — original publication of the article". Screen-reader users then hear the substance, not just a brand name. The badge SVG itself carries an internal aria-label as a fallback when alt is missing.
When to use static vs live
Use the static badge above when your destination forbids JavaScript: GitHub README, Notion, RSS feeds, plain-text emails, government portals with script-src 'none', mobile apps that render Markdown.
Use the live badge when you control the page and want the badge to auto-update from T0 (ECDSA) to T1 (eIDAS qualified timestamp) to T2 (Bitcoin anchor) without you editing the embed.
In all cases the link target — https://existbefore.com/proof/att_xxx — is the source of truth. Anyone who clicks the badge sees the current proof level on the proof page.
Need attestations at scale?
The free public ExistBefore service is rate-limited per IP. If you publish many proofs (article archives, scientific datasets, software releases), automate them through the CertiSigma API. Same T0 / T1 / T2 chain, server-side key, webhook notifications on upgrades.