Install the seal
One script tag, no keys to manage, about thirty minutes end to end. All cryptography happens on the Authority's infrastructure — you hold no secrets.
1. Add the snippet
The Authority issues you a snippet when your licence is granted. It looks like this, with your own seal identifier and licensed domain already filled in:
<script src="https://seal.attestregistry.com/v1/load.js"
data-seal-id="<your 64-character seal identifier>"
data-domain="<your licensed domain>"
async></script>
Put it wherever you want the seal to appear — usually the footer template, so it shows on every page. Do not edit the attributes. Do not copy the file to your own server: the loader checks where it is running and a self-hosted copy fails that check.
Choosing where the seal appears
By default the seal renders immediately after the script tag. To place it somewhere
else, add data-target with a CSS selector, and data-width to
size it:
<div id="licence-seal"></div>
<script src="https://seal.attestregistry.com/v1/load.js"
data-seal-id="..."
data-domain="..."
data-target="#licence-seal"
data-width="200"
async></script>
2. Place the seal
The loader injects an SVG wrapped in a link to the Authority verification page. Style the container if you like, but leave the link intact — it is what lets a visitor check your licence, and removing it is a breach of the display condition.
The seal is transparent-backed and scales cleanly. It works on light and dark backgrounds without modification.
3. Confirm your installation
Until the Authority confirms your embed is working, your licence stays in
PENDING and the seal does not render as licensed. Ask your Authority contact
to run the integration verifier, or call it yourself if you have been issued API
credentials:
curl -X POST https://attestregistry.com/admin/v1/licences/<licence-id>/verify-embed \
-H "Authorization: Bearer $ATTEST_TOKEN"
The verifier fetches your page, confirms the snippet is present and well-formed, confirms the identifiers match your licence record, executes the page, and confirms the seal renders and links correctly. It reports each failed check with a specific remedy.
4. If your site blocks third-party scripts
Some regulated environments run a Content Security Policy that will not permit the loader. Use the static fallback instead:
<a href="https://attestregistry.com/validate?domain=<your domain>&seal_id=<your seal id>">
<img src="https://seal.attestregistry.com/v1/seal/static/<your seal id>.svg"
alt="Licence seal" width="220" height="95">
</a>
This is fully functional — the verification page is still the source of truth — but it cannot perform the client-side context checks, so the Authority probes fallback sites more often to compensate.
If you would rather keep the loader, allow these in your CSP:
script-src https://seal.attestregistry.com;
connect-src https://seal.attestregistry.com;
5. What will break your seal
| If you | What happens |
|---|---|
| Copy the snippet to another domain you own | The seal renders as NOT LICENSED on that domain and a fraud signal is raised. Each web address needs its own licence. |
Host or proxy load.js yourself |
The context check fails and no seal is issued. |
Change data-domain |
The render endpoint compares it against the browser's Origin and refuses. |
| Hot-link the seal image without the link | The image may render, but the verification page reports the mismatch on click. |
| Block the analytics beacons | The gap between render requests and impressions is visible to the Authority and raises a compliance alert. |
| Let your licence lapse | The seal turns amber and the verification page shows the expiry date. |
Graceful degradation
If the Authority edge is briefly unreachable, the loader reuses the last seal it successfully fetched, and the verification page shows a staleness banner rather than asserting a status it could not confirm. You do not need to handle this yourself.
Getting help
Run the integration verifier first — it names the specific check that failed and what to do about it. If the verifier passes but the seal still misbehaves, contact your Authority compliance officer with your licence number.