Skip to content
The friendlier robot check

Prove you are a life form.

Lifecheck is our version of the "I am not a robot" box. It reads how the cursor moved on the way to the click, plays a short game when that is not enough, and hands your server a token you can check. That is the whole product.

Try it. This one is real. Live
No token yet. Tick the box.

This is the same widget your visitors get. When it passes, it calls your callback with a token.


How it works

We read you, or we play you.

Half of all visits are judged on how the pointer moved, and only interrupted when that does not add up. The other half get a game no matter how they moved. Which half you land in is decided fresh on every visit, so nobody can learn their way past it.

No single reading decides anything. Each one costs a little confidence and the widget acts on the total, so one odd moment never condemns a real person. On a phone it falls back to what a touch screen can honestly report.

When we read you

Did it move?

A pointer that barely twitched, or a click with no travel in front of it, is not somebody reaching for a button.

Does it wobble?

Hands shake constantly, even steady ones. A path drawn by maths barely changes direction on the way.

Does it hesitate?

People stop to read, then stop again to aim. A trail that never once paused is doing something other than deciding.

When we play you
Spot the life Guide it home Aim the dish Beacon order Signal code Odd one out Count the living Select every life form Trace the beam Tag the probe Find the twins

Eleven of them, five seconds each. No blurry traffic lights and no crosswalks, just small tasks that are awkward to script and quick for a person. The three in yellow are new in v1.3, and every one can be played on a keyboard alone.


Why teams pick it

Small, kind, hard to fake.

Six things it does that the box on everyone else's form does not.

It gets out of the way

Most real people go straight through without seeing a game. The people you want are not the ones who should be paying for this.

Yours to verify

Every pass mints a one time token. Check it from your own server with your secret key before you trust anything the form said.

It cannot be lifted

The checking runs inside a sandboxed frame on our domain. What you embed is a URL, not code somebody can read and copy.

Nothing follows you out

No cookies, no profile, nothing sold. What we do keep is behaviour: how the pointer moved and how the game was played. Never what you typed into the page around it.

Invisible when you want it

New in v1.3. Add data-size="invisible" and nothing is drawn. Call Lifecheck.execute() on submit and a game only appears if the check is unconvinced.

Playable without a mouse

Every challenge is a real button. Tab to it, Enter to pick, arrow keys to steer the slider and the dial. The two that want a pointer offer you a different one instead.


Install

Two lines and you are done.

Take a key, load the script once, and drop a .lifecheck box into your form. The docs cover the callbacks, invisible mode and verifying the token.

<!-- load Lifecheck once --> <script src="https://swiftaw.com/lifecheck/lifecheck.js" async defer></script> <!-- drop it into your form --> <div class="lifecheck" data-sitekey="YOUR_SITE_KEY" data-callback="onPass"></div>

Put a friendlier wall on your forms.

Lifecheck v1.3 is free to try and quick to wire up. Built by the people behind Fortized.