# Agent auth for https://2026.jilian.dev

Every endpoint works without credentials. Auth is optional.
An anonymous token gives your agent its own rate limit on POST /api/chat.
Without one, you share the limit of your IP address.

## 1. Discover

- Protected resource metadata: https://2026.jilian.dev/.well-known/oauth-protected-resource
- Authorization server metadata: https://2026.jilian.dev/.well-known/oauth-authorization-server
- The `agent_auth` block names the identity endpoint and the supported identity types.
- Supported identity types: `anonymous`. No user accounts exist, so there is nothing to claim.

## 2. Register

    curl -X POST https://2026.jilian.dev/api/agent/identity \
      -H "Content-Type: application/json" \
      -d '{"type":"anonymous"}'

The response:

    {"access_token":"<jwt>","token_type":"Bearer","expires_in":86400,"scope":"public","identity_type":"anonymous"}

## 3. Use

Send the token as a bearer header:

    Authorization: Bearer <jwt>

## 4. Limits and renewal

- A token lasts 24 hours. Mint a new one when it expires.
- One address can mint 3 tokens an hour. Reuse your token.
- An invalid or expired token is ignored. The request falls back to the IP limit.
- There is no revocation event. Tokens carry the `public` scope only.

## Reference

- Developer portal: https://2026.jilian.dev/developers
- OpenAPI: https://2026.jilian.dev/openapi.json
- llms.txt: https://2026.jilian.dev/llms.txt
