Skip to main content
This guide takes you from an existing Human Gate to a secured account that your server has verified. Work in Development first, with a pk_test_... site key.

Before you start

Trusted Accounts is part of a paid plan. See pricing. You need:
  • A site key whose allowed origins include your page. See Keys and environments.
  • An active Human Gate. See Place a gate. An Age Gate cannot offer Trusted Accounts.
  • A signed-in user on your side, and a stable ID for that user’s account.
platform-user-ref must be an ID that never changes for the account, such as your internal user ID. It must not be an email address. BotShield refuses a value that contains @ with notarize_ref_must_be_stable, because an email address can change and it identifies a person. BotShield stores the value only as a one-way hash.

Steps

1

Turn on the offer

In the BotShield Console, open BotShield Gate, select your Human Gate, and find Notarize account with BotShield in the Configuration card. Turn it on.For a Production gate, the Console asks you to confirm with your Console passkey before the switch changes.In the gate list, a gate with the offer on shows Notarize · On.The switch is the authority. The offer appears only while it is on. Your page markup cannot turn the offer on.
2

Add the widget after your sign-in

Show the offer only to a user you have just signed in or re-authenticated. The binding says that the human confirming is the one using this account, so your own sign-in has to come first.
3

The person secures the account

The widget shows a card titled Secure your account with BotShield, with a Link BotShield ID button.The code lasts 5 minutes and works once. The person can scan the QR code, or type the code at app.botshield.ai/link.In BotShield, the person sees Secure your account? with your platform’s name, and confirms with a passkey. The card on your page then reads Your account is secured.
4

Handle the result on your page

Listen for botshield:success and send the token to your server. trusted is true when the account is secured.
Treat trusted in the browser as a hint. The decision belongs on your server.
5

Verify on your server

Send the token to POST /sdk/verify-token. The call needs no API key. The token lives 120 seconds.
Check all of these before you mark the account as trusted:
  1. data.error is absent and valid is true.
  2. organization_id is your organization.
  3. request_id is the one your page sent.
  4. trusted is true.
Then store trusted_since against your user record. See Token and webhooks for local verification and for the events your endpoint receives.
6

See it in the Console

Open Trusted Accounts in the Console. The Registry tab lists the account by its opaque handle, with the date it became trusted and the gate it came through.The Try it tab runs the same widget against your Development key, with you as the customer. Use it to see each card before you ship.

Server-to-server

If you create verification requests from your server instead of using the widget, pass partner_user_ref to POST /sdk/create-verification-link. The same rules apply: a Human Gate with the switch on, and a stable ID that is not an email address. notarize: false skips the offer for one request. notarize: true cannot turn the offer on while the gate’s switch is off. The request is then an ordinary verification.

Test the other paths