Skip to content

🕊️ Freebird rate limiting

For more information about Freebird, go here.

Freebird is an optional anonymous admission-control integration for new attestation jobs. It is not required for private local networks and it does not hide transport metadata.

Configure the gateway

For a public gateway, configure the verifier and require tokens:

export FREEBIRD_VERIFIER_URL=https://freebird-verifier.example.org
export FREEBIRD_REQUIRED=true
export FREEBIRD_CONSUME_TOKENS=true

Consuming mode sends { "token_b64": "..." } to Freebird's POST /v1/verify and rejects reuse. With FREEBIRD_CONSUME_TOKENS=false, Witness uses POST /v1/check; this checks possession without consuming the token and must be paired with another replay or rate-control boundary.

Pass a token from the CLI

Create a token file with the current verifier shape:

{"token_b64":"<base64url-freebird-token>"}

Then pass it to the supported attestation command:

witness attest --file document.pdf --freebird-token token.json

Polling an existing job and retrying a request for an existing canonical hash do not consume another token. New-job admission is the protected operation.

Caveats

Use HTTPS for the verifier and review issuer, expiry, audience, and scope policy there. FREEBIRD_ALLOW_INSECURE_LOCAL=true is for plaintext loopback smoke tests only and must not be used for a public gateway. Freebird reduces an admission linkability or abuse problem; it does not provide content confidentiality, transport anonymity, or Byzantine fault tolerance. See the full Freebird integration reference.