Dit is wat een klant elke dag ziet zodra zijn domein achter de poort staat. Geen script in zijn pagina, geen cookie, geen toestemmingsbanner — de poort staat ervóór en telt elke aanvraag. Daarom telt de poort ook als bezoekers een adblocker gebruiken, en daarom weet je hier het verschil tussen een mens, een echte zoekmachine en een bot die zich als zoekmachine voordoet.
Waarheidsronde 22-09-2026. De claims op dit blad zijn afgezwakt naar wat de motor vandaag dekt: de telsleutel beveiligt /telling, niet /toegang (astra ronde 8, punt 8), dus "elk cijfer is een bewezen mens" geldt alleen voor de rij mens, en "één mens, één account" binnen één platform doet itsme zelf (Regel 9). Nog geen betalende klant; alles hieronder is testnet en sandbox.
Elk analytics-pakket meet ín de pagina: een script, een cookie, een toestemmingsbanner. Daardoor mist het 30 tot 50 procent (adblockers, weggeklikte banners) en telt het bots half mee of schat ze weg. Onze poort staat vóór de site en ziet elke aanvraag. Daarom telt de poort zonder cookie en zonder banner, en ziet ze het verschil tussen een bewezen mens (attest), een geverifieerde zoekmachine en een bot die zich als Googlebot voordoet. Het getal is een poorttelling, geen audit: /toegang boekt zelf en is niet door de telsleutel gedekt.
En er is één cijfer dat een analytics-pakket niet geeft: bewezen unieke mensen. Niet sessies, niet cookie-gebruikers — mensen, geworteld in eID of itsme. Binnen één platform kan itsme dat zelf ook (Regel 9); de meerwaarde ligt pas over organisaties heen.
Het moet de poort zijn, geen script: bots voeren geen JavaScript uit, dus een script meet juist de bots níét. Op Cloudflare is het één bestand (_middleware.js) plus zijn sleutel uit de Key Box — vijf minuten, geen code van hem. Voor WordPress of Nginx komt er een plugin of één proxy-regel. Wie niets wil aanraken kan zijn domein via een CNAME door de poort laten lopen.
De proefperiode is de verkoop. De poort start in meetstand: hij telt alles en blokkeert niets, de site werkt exact zoals vroeger. Na veertien dagen krijgt hij zijn rapport — "van je 5.000 aanvragen waren er 4.100 bot, 92 deden zich voor als Googlebot, 11 waren mensen". Dat rapport kost hem niets en is het gesprek. Wil hij die bots daarna weren of laten betalen, dan zetten wij één instelling om: zelfde installatie, nu actief. Dat is het moment van betalen.
Bij de poort hoort een wallet: agents die binnen willen, betalen per oproep in stablecoin, en dat geld gaat naar de site-eigenaar. Eerlijk erbij: vandaag kregen 659 agents een 402 en betaalde er nul. De meeste crawlers spreken x402 nog niet; ze draaien weg in plaats van te betalen. Daarom verkoopt dit in deze volgorde:
Gedrag ín de pagina (scrollen, klikken, tijd op de pagina) kan erbij: de poort kan het meetscript zelf in de pagina zetten, dus de klant plakt nog steeds niets. Zonder cookie en zonder identificatie, dus zonder banner. Ongeveer twee dagen werk — maar het is een nieuwe motorfunctie en valt onder de bouwstop tot Nele.
Hacking tegenhouden is een andere laag. Wat de poort wél stopt is alles wat volume nodig heeft: credential stuffing, brute force, scraping, bulk-registraties, scalping — bij de meeste sites is dat het grootste deel van het inlogverkeer. Wat hij niet stopt is een lek in hun eigen code: SQL-injectie, XSS, een verkeerd ingestelde API, phishing. Daar horen een WAF en pentests bij. Beloof je bescherming, dan ben je aansprakelijk als er toch iets doorkomt.
Wat wél kan zonder die belofte: de meldkant. De poort ziet het aanvalsverkeer toch al, dus toon het in hetzelfde dagrapport ("47 aanvragen met een injectiepatroon, allemaal geweigerd"). En als dienst erbovenop: wij zetten de WAF van hun host voor hen goed, want negen op de tien kleine bedrijven hebben er een maar hebben nooit een regel ingesteld.
Het bot-weren zelf is kopieerbaar — dat doet Cloudflare al. Wie hiermee naar buiten komt als "wij houden bots tegen", verkoopt iets wat de klant misschien gratis in zijn dashboard heeft. Niet kopieerbaar is het bewijs dat er één unieke, geverifieerde mens achter zit: dat is geen techniek maar een keten — eID/itsme via een erkende aanbieder, verwerkersovereenkomsten, een juridisch dossier. Dat bouwt een infrastructuurbedrijf niet even na.
Dus niet tégen Cloudflare maar erbovenop: zij weren bots op gedrag en IP, wij bewijzen mensen op identiteit. Dan is hun platform een kanaal in plaats van een bedreiging, en is de logische volgende stap een integratie. De praktische verdediging zijn de klanten en hun persoonscodes: wie een jaar op onze codes telt, stapt niet over — die codes zijn niet overdraagbaar.
"Wij stoppen hacking" is de enige claim die we gegarandeerd verliezen: één lek in de code van de klant en het statement ligt op straat. Wat we wél kunnen waarmaken, en wat bijna even hard klinkt:
sub per dienstverlener, Regel 9); wij tellen pas over organisaties heen.De uitdaging (nog niet uitgeschreven, beslissing van Franky 19-09-2026). Niet "hack ons", wel smal en meetbaar: €1.000 voor wie een R4M-beveiligd testaccount overneemt zonder die mens te zijn. Buiten scope: phishing, social engineering, aanvallen op itsme of Signicat, fysieke toegang, DDoS. Eén testomgeving die wij beheren; elke poging verzegeld in het logboek. Laag genoeg om te dragen, hoog genoeg om serieus genomen te worden — het bedrag gaat pas omhoog als hij een paar maanden overleefd is, en dán is het pas echt reclame. Ook als niemand hem wint levert elke poging bewijsmateriaal op.
Alles hieronder is gezien op testnet en sandbox (Bewijsboek); of een ander het tegelijk kan zeggen is niet nagekeken.
Iedereen denkt bij de poort aan "bots buiten". Draai het om: elke site achter wwebpass kan zeggen "elke mens-rij hier is een unieke, bewezen mens" (de andere rijen zijn tellingen, geen bewijs) — elke bezoeker, elke registratie, elke review, elke stem, elke advertentie-impressie. Dat is geen beveiliging, dat is gecertificeerd publiek, en daar zit het geld aan drie kanten tegelijk:
Waarom dit moeilijk te omzeilen is: hackers werken op schaal met valse identiteiten. Wij maken identiteit schaars — je koopt geen duizend itsme's; de schaarste zit bij de overheid die de eID uitgeeft. Niet "onbreekbaar": gehuurde accounts en gekopieerde kaartjes op hetzelfde netwerk blijven open punten (astra ronde 8, punt 5).
In één zin: "Wij bewijzen dat je publiek echt is — en echt is meer waard." Dat zet ons niet naast Cloudflare maar naast Nielsen en de auditeurs, en daar staat nog niemand.
Wel: alles wat op volume draait. Credential stuffing, brute force, scraping, bulk-registraties, scalping, en een layer-7-vloed waarbij elke aanvraag eruitziet als een gewone bezoeker — zonder geldig kaartje komt er niets door, hoe echt het verkeer er ook uitziet.
Niet: een gat in de code van de klant. SQL-injectie, XSS, een verkeerd ingestelde API, phishing naar zijn boekhouder, malware op een laptop. Daar horen een WAF en pentests bij.
DDoS, eerlijk: een volumetrische aanval van miljoenen aanvragen per seconde legt onze poort net zo goed plat — die vangt de host op (Cloudflare), niet wij. Op de laag daarboven werkt de poort wél. Het is dus "samen met de host", nooit "in plaats van".
Wat we daar bovenop verkopen zonder één belofte te breken: de meldkant — het aanvalsverkeer dat de poort toch al ziet, elke dag in hetzelfde rapport ("47 aanvragen met een injectiepatroon, allemaal geweigerd"). En als dienst: wij zetten de WAF van hun host goed, want negen op de tien kleine bedrijven hebben er een en hebben nooit een regel ingesteld.
Het product. Een bedrijf zet een filmpje of advertentie achter de poort. Alleen bewezen mensen kunnen kijken. Elke kijker krijgt na het kijken een unieke kortingscode die aan zijn persoonscode hangt en na twee of vijf uur verloopt — niet te delen, niet te scrapen. De kijker wordt betaald voor zijn aandacht; de adverteerder ziet in zijn dashboard exact hoeveel bewezen mensen keken en hoeveel codes verzilverd zijn.
Wat vandaag al draait (v0.50.0):
Wat er nog moet, in dagen:
Samen: acht werkdagen. Alles behalve echt geld kan vóór Nele op testnet gebouwd en getoond worden; de uitbetaling in euro of mainnet-USDC is de kassa-laag en wacht op haar antwoord.
De eerlijke hindernis: de kijkers bestaan nog niet. Er zijn vandaag twee bewezen mensen op de motor. De eerste campagne is dus geen advertentie maar een werving: honderd mensen die zich één keer met itsme bewijzen omdat er iets tegenover staat — een echte korting bij een echte winkel. Dat is meteen het eindklant-verhaal in het klein.
De AI-advertentiebouwer is een apart product en hoort niet in deze acht dagen. Eerst bewijzen dat honderd bewezen mensen kijken en verzilveren; dán pas een bouwer erbij.
Eerste stap: één winkel die er al is als klant of prospect, één filmpje van dertig seconden, één code van 10 procent die om middernacht verloopt, honderd kijkers. Meten: hoeveel bewezen zich, hoeveel keken uit, hoeveel verzilverden. Dat getal beslist of er een tweede campagne komt.
Laag 1 · Meten: gratis, altijd. Niet veertien dagen, voor altijd. De meting is de verkoop: wie zijn eigen getal ziet, zet de poort aan. Kost ons bijna niets (de poort telt toch) en het is een cijfer dat een analytics-pakket niet geeft.
Laag 2 · De poort aan: één vast bedrag per domein per maand. Richting €39. Daarvoor: zoekmachines geverifieerd, bots buiten of betalend, het dagrapport, het verzegelde logboek. Klein genoeg dat een eenmanszaak niet nadenkt, opzegbaar per maand, en de meting blijft gratis als hij hem weer uitzet.
Laag 3 · Per bewezen mens. Elke nieuwe mens die zich via itsme/eID bewijst kost ons een verificatie bij de aanbieder (M1); die kost geven we door met een marge — richting €0,50 per nieuwe mens. Elke volgende controle op diezelfde mens (M2) is gratis, want die kost ons niets. Zo betaalt de klant exact voor wat echt is en nooit voor een bot.
De x402-kant: het geld is van de site, wij nemen een deel. Betaalt een agent om binnen te komen, dan gaat dat naar de wallet van de site-eigenaar; wij houden 20 procent in. Fair omdat de content van hem is en de deur van ons. Vandaag is dat nul euro (659 keer 402, nul betaald) — maar de klant weet dat zijn deur al met een prijs klaarstaat, en dat hij ons niets extra betaalt tot er iemand betaalt.
Waarom dit fair is: geen instapkost, geen jaarcontract, de meting altijd gratis, per mens alleen betalen voor wat bewezen is, en aan de agent-kant verdienen wij pas als hij verdient. Eén ding nog na te meten vóór het op papier gaat: de exacte prijs per verificatie bij Signicat — die bepaalt of €0,50 klopt.
Wat het is. Op het moment dat een mens de poort passeert, krijgt hij meteen een aanbod: "15% op X, één uur geldig". De code hangt aan zijn persoonscode — niet te delen, niet te herhalen, na een uur dood. Een bot krijgt er nooit een, want een bot komt nooit door de poort. De winkel controleert de code met één oproep. Zelfde bouwblok als de kortingscode uit kaartje 10, andere trigger: niet na het kijken maar bij het binnenkomen.
Waarom dit de instap makkelijk maakt. Een bedrijf koopt geen "bewezen mensen"; het koopt verkoop. Het dashboard telt dan drie dingen: bewezen mensen · aanbod getoond · verzilverd. Dat laatste cijfer is het bewijs dat de poort geld opbrengt, en dat is de zin die een eigenaar doet tekenen zonder uitleg.
Direct reward, aan beide kanten. De eigenaar ziet binnen het uur of het werkt. En wij kunnen daardoor anders rekenen dan een vast maandbedrag: een klein deel van elke verzilverde verkoop — bijvoorbeeld 5 procent van de korting-omzet — bovenop of in plaats van de €39. Dan verdienen wij alleen als hij verdient, en groeit onze omzet met zijn conversie. Dat is geen abonnement meer, dat is een partner die betaald wordt per resultaat.
Wat het vraagt. Ongeveer twee dagen, gedeeld met kaartje 10 (zelfde code-endpoint), plus één regel in de Key Box per klant: het aanbod, de korting, de geldigheid. Nieuwe poortfunctie, dus bouwstop tot Nele — op testnet klaar te zetten. Open keuze van Franky: standaard aan bij elke klant, of zelf aan te zetten.
Waar het staat: tak voorstel/2026-09-19-aanbod-aan-de-poort in de engine, met
BOUWPLAN-aanbod-aan-de-poort.md. Niets naar main, niets live — klaar voor de dag dat Nele antwoordt.
Wat het hergebruikt: het kaartje met vervaltijd (HMAC), de pairwise persoonscode, de hash-keten van
gate_log, de Key Box en de bestaande tellers. Geen nieuwe geldstroom: de korting geeft de winkel zelf,
wij leveren alleen het bewijs. De kassa-laag wordt niet geraakt.
Nieuw in het datamodel: sponsors.aanbod_json (tekst, minuten, doel-URL, hoe vaak per mens) en
de tabel poort_aanbod met één rij per code: persoonscode, code van tien tekens, vervaltijd, verzilverd
wanneer en met welke referentie van de winkel.
Drie routes: uitgifte ín de poort (alleen na een mens-kaartje), POST /api/poort/:audience/code
waarmee de winkel controleert en in dezelfde transactie verzilvert, en een telling die aangeboden · verzilverd ·
conversie geeft.
Regels die niet mogen schuiven: nooit een code voor een agent of zoekmachine · één code telt één keer, atomair · niet te raden (10 tekens uit 32) · verlopen is verlopen · de motor bewaart nooit wat er gekocht is.
Zeven tests (geen code bij agent of mandaat, tweede keer al gebruikt, code van site A niet op site B, twee gelijktijdige controles precies één succes, keten blijft narekenbaar) en twee dagen werk, in zes stappen.
Drie open vragen voor Franky: staat het aanbod standaard aan bij een nieuwe afnemer? Eén aanbod per mens per dag, één ooit, of elke keer? En krijgt een terugkerende bezoeker ook een code, of alleen wie zich die dag opnieuw bewijst?
Eén klik kan niet, want de poort moet vóór de site staan. Drie wegen, van kortst naar langst:
BOUWPLAN-wordpress-plugin.md): mu-plugin als poort, drie admin-schermen, meetstand als standaard, plugin beslist niets zelf en valt open bij storing — 7,5 dagen._middleware.js plus de sleutel, vijf minuten. Te veel voor een bakker.Wat er al staat: de ophaallink — wij maken een afnemer aan zonder sleutel, de klant opent de link en krijgt zijn sleutel één keer te zien. Wat ontbreekt is het zelfbedieningsstuk: account, domein, betaling, en meteen de juiste installatie voor zijn hosting (2 dagen, zit in het plugin-plan).
AI-applicaties — sterker dan het web. Hun duurste probleem is gratis-tier-misbruik: één mens maakt duizend accounts en verstookt het GPU-budget. Vandaag lossen ze dat op met telefoonnummers en creditcards; één bewezen mens per account lost het definitief op. En de andere kant is onze MCP-lijn (79 cases): een agent die een betaalde dienst aanroept met een mandaat als bewijs dat hij namens een echt mens handelt. Geen middleware — een API-sleutel of een MCP-server. Dezelfde motor.
iOS-apps — ja, via een andere deur. "Log in met R4M" (OIDC) of een kleine SDK, geen poort. Op mobiel werkt het beter dan op desktop, want itsme is zelf een app: app-naar-app, één tik, terug. Concrete aanleiding: Apple en de EU schroeven de leeftijdsverificatie op, en ons leeftijdsattest geeft "ouder dan N" zonder geboortedatum. Dating, gaming en social hebben daarnaast het "één account per mens"-probleem.
Volgorde: geen van beide aanraken vóór de web-kant zijn eerste betalende klanten heeft. Het zijn aparte producten met eigen bouwwerk (SDK, App Store-review).
Wereldwijd vanaf dag één: de poort. Meten, bots weren, zoekmachines verifiëren, agents laten betalen, het dagrapport, de wallet — daar komt geen identiteit aan te pas. Een site in Brazilië of Japan installeert hetzelfde bestand en het werkt. Dat is meteen het hele "wat er op je site gebeurt"-verhaal, en dat is wat verkoopt.
Per land: het mensbewijs. Dat hangt aan een identiteitsbron. België en Nederland lopen via Signicat (itsme, eID, iDIN), en diezelfde koppeling brokert nog een stuk of vijftien Europese schema's — MitID, BankID, Personalausweis, SPID, ID Austria. Eén contract, veel landen, geen extra bouwwerk. Buiten Europa is het per land: Aadhaar in India, mDL in de VS, elk met een eigen koppeling en een eigen juridisch kader.
De zin voor een gesprek: "De poort werkt overal. Het mensbewijs werkt vandaag in Europa, en daarbuiten sluiten we per land aan."
Wat dat praktisch betekent: morgen wereldwijd lanceren met laag 1 — de meting en de bots. De mens-laag eerst in Europa verkopen, want precies daar zit de voorsprong: die identiteitsketen bouwt niemand even na.
De kop die klopt: niet "wij houden bots tegen", maar "wij bewijzen wie een mens is, en houden de rest buiten of laten hem betalen."