LAMP.AR / SCRIPTS
Overage
Camera age checks. One line of code. Visitors look at the camera for three seconds and turn their head slightly. Our model estimates age and hands your site the result as a signed token.
Live demo
Try it on your face
The camera only turns on with your permission. No photos are stored.
How it works
Three seconds
Camera
The widget takes 6 frames: looking straight and turning the head. That makes printed-photo tricks harder.
Estimate
On our EU server a face detector and an age model return a result in seconds. Frames are dropped from memory right away.
Token
If the estimate clears the threshold, your site gets an Ed25519-signed JWT that your server verifies.
Embed
Two steps
1. Add the script to your site
<!-- Simplest: one line. Covers the page until the visitor passes, remembers it until the tab is closed -->
<script src="https://lamp.ar/overage.js" data-site-key="YOUR_SITE_KEY" data-auto="gate"></script>
<!-- Or call it yourself and verify the token on your server -->
<script src="https://lamp.ar/overage.js" data-site-key="YOUR_SITE_KEY"></script>
<script>
// result: { result: "pass", token } | { result: "fail" } | { result: "cancelled" }
AgeGate.verify().then(function (r) {
if (r.result === "pass") {
fetch("/api/age-verified", { method: "POST", body: r.token }); // verify on your server
}
});
</script>2. Verify the token on your server
// npm i jose
import { createRemoteJWKSet, jwtVerify } from "jose";
const JWKS = createRemoteJWKSet(new URL("https://lamp.ar/.well-known/jwks.json"));
export async function isAdult(token) {
const { payload } = await jwtVerify(token, JWKS, {
issuer: "https://lamp.ar",
audience: "YOUR_SITE_KEY",
});
return payload.age_over >= 18; // then set your own session cookie
}Never trust the browser result alone: always verify the token server-side. Public keys: https://lamp.ar/.well-known/jwks.json
Privacy
We keep no photos
Photos stored
Frames are processed in memory and deleted as soon as we answer.
EU server
The service runs in Germany, in a Hetzner data centre.
Only the threshold
The token carries only “18+”, never the age, a name or a photo.
Plans
Early access
The service is in early access. Write to us and we will run a free pilot on your site.
Limits
Straight talk
- This is age estimation, not identity verification. The model's average error is a few years, so the default threshold is 25.
- The head-turn check stops printed photos, not video replays or masks.
- Where the law requires formal verification, offer an ID check when the result is “fail”.