Documentation menuOverview
Documentation

BlockAlt documentation

How BlockAlt protects an action: a browser script earns a single-use token, and your server verifies it before doing anything.

API base URL
https://blockalt.click
Browser script
0.3.0, 4,640 bytes gzip
API description
OpenAPI document
Start here

Quickstart

Protect a sign-up form end to end: create a site, add the script, send the token and verify it on your server.

  1. Create your workspace
  2. Add a site
  3. Prove you own the hostname
  4. Add the script and get a token at submit time
  5. Verify on your server
  6. Check it works

Browse by topic

How BlockAlt works, the quickstart, installation and the public test keys.

The browser script: getting tokens, forms without code, CSP and browser support.

Verify tokens with siteverify: every field and reason, copy-paste helpers and the HTTP API.

Complete integrations, from the browser form to the server check, for common stacks.

Also: Changelog · Service status · OpenAPI document

How it works
On this page

The three parties #

  1. The visitor's browser loads the BlockAlt script from https://blockalt.click. When the visitor submits, the script fetches your site's signed configuration, solves a proof-of-work challenge and receives a token.
  2. Your backend receives the token together with the form or API request, and calls POST /v1/siteverify with your secret key.
  3. BlockAlt answers with a decision, success: true or false, and a reason. Your backend performs the action only when success is true.

Your traffic never passes through BlockAlt, and you keep your hosting and DNS.

Keys #

KeyLooks likeWhere it lives
Public site keyba_pk_…In your page. Identifies the site; safe to publish
Secret keyba_sk_…On your server only, for example in BLOCKALT_SECRET. Shown once when created
Configuration public keysMCowBQYDK2VwAyEA…In your page. The script accepts only configuration signed by one of them

Lifetimes #

ObjectLifetimeNotes
Signed site configuration5 minutesBound to your site key and the page's hostname
Proof-of-work challenge90 secondsWorks once
Token120 secondsWorks once; bound to the site, hostname, action and published configuration version

Site states #

StateWhat visitors getWhat siteverify answers
ProtectedThe script does the work and gets a tokenaccepted or a refusal reason
Unpaid (priced workspace whose free allowance is used up, without credit)No work; the script returns an empty tokensuccess: true, reason unpaid
PausedNo work; the script returns an empty tokensuccess: true, reason paused
Lockdown (rule blocking all issuance)Every action is refusedsuccess: false, reason rule_blocked
Suspended by BlockAlt support (abuse)Every action is refusedsuccess: false, reason suspended

When several apply, the first one in this order decides: suspended, lockdown, paused, unpaid, protected. Always forward the token, even when it is empty, and let siteverify decide. See pause and lockdown and billing.

What it is not #

Proof of work raises the cost of automated requests and, with per-visitor limits, shapes their rate. It does not prove that a visitor is human: a bot that pays the computing cost can still pass, at the rate you allow. BlockAlt is not a proxy or WAF, and a token is not an identity: keep your own authentication and authorisation.

Next steps #

Something unclear or missing on this page? Write to support@blockalt.click.