# NIMBRA > Holders of $NIMB (ERC-20 on Elysium, chain 99901) get access to top AI models through a chat and an OpenAI-compatible API. Access tier = lowest $NIMB balance held during the last 24h. ## Start here - [Docs](https://nimbradot.fun/docs): tiers, holding rule, API, errors. - [Token](https://nimbradot.fun/token): your tier, API keys. - Token contract: not launched yet ## Sign in (SIWE, EIP-4361) 1. POST https://nimbradot.fun/api/auth/nonce {"address": "0x…"} → {"message"} (valid 10 min, one use). 2. Sign "message" with EIP-191 personal_sign. 3. POST https://nimbradot.fun/api/auth/verify {"message", "signature"} → session cookie. 4. POST https://nimbradot.fun/api/auth/keys {"name"} (Pro tier or higher) → {"key": "sk-nimb-…"}, shown once. ## API (Authorization: Bearer sk-nimb-…) - POST https://nimbradot.fun/api/v1/chat/completions: OpenAI-compatible, stream supported. - GET https://nimbradot.fun/api/v1/models: models with prices; "allowed" = open to your tier. - GET https://nimbradot.fun/api/v1/usage: tier, today's spend, recent requests. ## Tiers - Visitor: hold >= 0 $NIMB; models: free; daily allowance $0; API: no - Holder: hold >= 10000 $NIMB; models: standard; daily allowance $0.5; API: no - Pro: hold >= 100000 $NIMB; models: all; daily allowance $3; API: yes - Whale: hold >= 1000000 $NIMB; models: all; daily allowance $15; API: yes ## Errors 401 unauthorized · 402 quota_exceeded / trial_exhausted · 413 too_large · 403 model_not_allowed / tier_has_no_api · 429 rate_limited / too_many_concurrent · 503 paused / global_limit