IM18+ implements a zero-knowledge approach to age verification, meaning we only store the minimum information necessary: whether a user has been verified, not their identity.
verified=true
No user accounts or registration required
// Only stores boolean verification status
setcookie('age_verified', 'true', time() + (30 * 24 * 60 * 60));
No correlation between verification and identity
// No user tracking or session storage
$verified = ($_COOKIE['age_verified'] === 'true');
Partner sites cannot access verification details
// Cross-domain isolation via iframe
parent.postMessage({verified: true}, '*');
User confirms they are 18+ (no personal data collected)
Boolean verification flag stored locally
Partner sites receive verification status only
We collect the absolute minimum data required for age verification - just a confirmation that you're 18+.
No analytics, tracking pixels, or behavioral monitoring. We don't know which sites you visit.
Verification expires after 30 days, requiring periodic re-confirmation without storing history.
Partner sites cannot access or modify verification data - only receive yes/no status.
<?php
// Zero-knowledge verification check
// No personal data processing or storage
function isAgeVerified() {
// Only check boolean cookie value
return isset($_COOKIE['age_verified']) && $_COOKIE['age_verified'] === 'true';
}
function setAgeVerified() {
// Only store verification status, no personal data
$expires = time() + (30 * 24 * 60 * 60); // 30 days
setcookie('age_verified', 'true', $expires, '/', '.im18.app', true, true);
// No database storage, no user tracking
// No logs containing personal information
}
// Usage: Simple boolean check
if (isAgeVerified()) {
echo json_encode(['verified' => true, 'source' => 'im18plus']);
} else {
echo json_encode(['verified' => false, 'verification_url' => '/verify.php']);
}
?>
Our zero-knowledge approach ensures compliance with GDPR, CCPA, and other privacy regulations by design. Since we don't collect personal data, there's nothing to breach or misuse.