Build with Umbra

A familiar API boundary.

Use OpenAI-compatible clients with Umbra's model registry. Your API key authorizes requests; prompts are never logged.

Your API keys.

Create persistent keys for the OpenAI-compatible API. Keys are revocable and the full value is kept only in this browser. The server stores a short-lived revocation entry, not the key itself.

The full key is returned once and saved only in this browser. Clearing local data removes your saved copy.

Loading local keys…

In self-hosted deployments, signing a token with UMBRA_API_SECRET still works for direct administration. Local development without that secret uses an ephemeral process secret.

Holder tier.

Holder tiers and tier-based API quotas are active for $UMBRA on Ethereum.

Holder tier

$UMBRA tier

Reading your balance needs no signature and sends nothing to Umbra. Verifying ownership signs a message — no gas, no transaction — so your API keys get your tier's quota and your tier's enforced benefits. Holder-rate credits are enforced on on-chain top-ups; early access and votes are live at /vote.

Verification is signed proof, not a transaction. It enforces your tier's API quota, Council seats, chat and UmbraCode token ceilings, priority routing, and holder-rate credits on on-chain top-ups. Early access and votes are available at /vote.

Tier ladder

Whole-token thresholds
Base0 $UMBRA
Holder100,000 $UMBRA
Circle1,000,000 $UMBRA
Council10,000,000 $UMBRA

Chat completions.

curl https://{your-domain}/api/agent/v1/chat/completions \
  -H "Authorization: Bearer $UMBRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"umbra-auto","stream":true,"messages":[{"role":"user","content":"Hello"}]}'
from openai import OpenAI

client = OpenAI(
    base_url="https://{your-domain}/api/agent/v1",
    api_key=os.environ["UMBRA_API_KEY"],
)
response = client.chat.completions.create(
    model="umbra-auto",
    messages=[{"role": "user", "content": "Hello"}],
)
print(response.choices[0].message.content)

The base URL is /api/agent/v1 relative to your Umbra host. Set it from your deployment origin rather than hardcoding a local port.

Privacy boundary: server-side redaction is not applied to API calls. Client applications own redaction before sending requests to this endpoint.

Models and indicative credits.

ModelContextInput / 1MOutput / 1M
Umbra Auto
A balanced route selected for your prompt
128,0000.15 cr0.60 cr
Nova 4
Fast, capable everyday reasoning
128,0002.50 cr10.00 cr
Sage Sonnet
Careful writing and analysis
200,0003.00 cr15.00 cr
Reasoning R1
Deep, deliberate problem solving
65,5360.55 cr2.19 cr
Gemini Flash
Multimodal speed with a large context
1,000,0000.10 cr0.40 cr
Qwen Coder
Focused help for code and debugging
262,1440.30 cr1.00 cr
Llama Open
Open-weight conversation
131,0720.40 cr0.40 cr
Mistral Small
Efficient and precise
32,0000.10 cr0.30 cr
Venice Private
Private, uncensored Venice flagship
128,0000.20 cr0.90 cr
Venice Flash
Fast inference with a very large context
1,048,5760.15 cr0.50 cr
Venice Deep
Deliberate reasoning for difficult work
200,0001.54 cr4.84 cr

Credits are indicative local test pricing. On-chain funding is not connected in this MVP.