Python client for the WZRD velocity oracle. Reads AI model adoption signals from 4 platforms. Agents stream CCM on Solana by reporting picks.
Project description
wzrd-client
Which AI model should your agent use right now? WZRD tracks real-time developer adoption across HuggingFace, GitHub, OpenRouter, and ArtificialAnalysis. 100+ models. Updated every 5 minutes. Free.
pip install wzrd-client
Pick a model (zero config)
import wzrd
model = wzrd.pick("code") # → "Qwen/Qwen3.5-35B-A3B"
details = wzrd.pick_details("code") # trend, score, confidence
top_3 = wzrd.shortlist("code", 3) # ranked list
No API key. No account. Works immediately.
Task types: code, chat, reasoning, math, multilingual — or any string (falls back to general ranking).
Earn CCM tokens (optional)
Agents that report which model they picked — and what happened — earn CCM tokens on Solana. The usage data makes the signal better, so WZRD pays for it.
wzrd.run_loop(keypair_path="~/.config/solana/id.json")
# authenticates → picks models → runs inference → reports → claims CCM
CCM (Concentrated Compute Merit) is a Solana token earned by contributing to the velocity oracle. It's not bought — it's earned through verified participation. Agents claim CCM through a gasless relay (no SOL needed for claiming).
What you need to earn: A Solana keypair (solana-keygen new if you don't have one). That's it.
Why use this?
- Save money: Models change weekly. The one you hardcoded last month might be 10x more expensive than the trending alternative.
- Better results: Momentum is a leading indicator. Models gaining adoption fast are usually improving fast.
- Get paid: Your usage reports make the oracle more accurate. WZRD pays for that with CCM tokens.
Raw API
GET https://api.twzrd.xyz/v1/signals/momentum
Premium data (velocity EMA, acceleration, quality): set WZRD_API_URL=https://api.twzrd.xyz/v1/signals/momentum/premium
Use as a routing prior
Read the oracle before calling an inference provider:
model = wzrd.pick("code")
models = wzrd.shortlist("chat")
details = wzrd.pick_details("reasoning")
Works with any provider. Pass the result to OpenRouter, OpenAI, Anthropic, HuggingFace, or your own router.
Candidate-aware routing
model = wzrd.pick(
"code",
candidates=[
"openrouter/qwen/qwen3.5-9b",
"openrouter/qwen/qwen3.5-35b-a3b",
"anthropic/claude-sonnet-4.6",
],
)
Optional rewards while reporting
If you want an agent to authenticate, report routing decisions, and participate in WZRD rewards:
import wzrd
choice = wzrd.pick_details("code")
agent = wzrd.WZRDAgent.from_env()
session = agent.authenticate()
receipt = agent.report_pick(choice, quality_score=0.9, latency_ms=1200)
reward_status = agent.earned()
print(session.pubkey)
print(receipt["contribution_id"])
print(reward_status["signup_bonus_ccm"])
No manual onboarding is required. Agents can authenticate with their own Solana keypair, report real routing decisions, and claim rewards through the gasless relay when available.
Router wrapper
If you want a thin client wrapper, use WZRDRouter from wzrd.router.
It only wraps clients that expose client.chat.completions.create(...).
Explicit model names pass through unchanged. To trigger WZRD routing, pass model=None or a task sentinel like model="code" or model="chat".
Automatic reward loop
import wzrd
wzrd.run_loop() # picks, reports, checks rewards, claims when available
run_loop() is the batteries-included path for unattended reporting. It uses the public momentum feed by default and can be pointed at premium explicitly via WZRD_API_URL.
Agent auth
WZRDAgent.authenticate() signs the exact server challenge message and sends the signature in the Solana base58 format the API expects. Keypair loading supports:
~/.config/solana/id.jsonWZRD_AGENT_KEYPAIR_PATHorSOLANA_KEYPAIR_PATHWZRD_AGENT_KEYPAIRorSOLANA_KEYPAIRas a base58 secret or JSON byte array
Authenticated helpers:
agent.challenge()returns the nonce + message formatagent.authenticate()stores the Bearer token on the clientagent.status()reads/v1/agent/statusagent.earned()reads/v1/agent/earnedand surfaces signup bonus + reward statusagent.report(...)posts a manual contributionagent.report_pick(choice, ...)reports apick_details()result with WZRD metadata attached
The signup bonus is recorded on first auth, then becomes claimable after the next merkle publication cycle.
Environment variables
WZRD_API_URL: signal endpoint override. Defaults to the public momentum feed.WZRD_API_BASE_URL: API root for agent auth/report callsWZRD_AGENT_TOKEN: existing Bearer token forWZRDAgentWZRD_AGENT_KEYPAIR_PATH: path to Solana JSON keypairWZRD_AGENT_KEYPAIR: Solana base58 secret or JSON byte arrayWZRD_TIMEOUT_SECONDS: request timeoutWZRD_CACHE_TTL_SECONDS: cache TTL for fetched signalsWZRD_FEED_LIMIT: number of feed rows to request
Verify on-chain
WZRD data is published to 9 Switchboard pull oracle feeds on Solana mainnet (7 velocity + 2 price). You can verify any signal independently:
# Query the Qwen 3.5 9B velocity feed directly on-chain
solana account AepiFwnbfCvXwA5gtAysMaxoqdwsGiYCN6gFBLGqZf1S --output json
# Or view on Solscan:
# https://solscan.io/account/AepiFwnbfCvXwA5gtAysMaxoqdwsGiYCN6gFBLGqZf1S
Sample feeds (quote accounts):
| Model | Address |
|---|---|
| Qwen 3.5 9B | AepiFwnbfCvXwA5gtAysMaxoqdwsGiYCN6gFBLGqZf1S |
| Llama 3.3 70B | 6EgRwhE6db1Aqsxzmp9wj6QH2y5ZEji1xe1YdovwmD9g |
| Kimi K2.5 | 5xmwRtTgcCz6R2KapxpEXVjCNcZCpe24DnCC295S769w |
| Qwen3-Coder-Next | g3RRSmg4PJjDNCq3jkTutMB8431UMMtRTNBRpc7UfVV |
Full feed registry with all 7 velocity + 2 price feeds is available via wzrd.oracle.list_feeds().
What it returns
pick()returns a model name stringpick_details()returns a structured recordshortlist()returns ranked recordscompare()explains the relative signal strength between two modelsWZRDAgentauthenticates an agent wallet and reports contributions for rewards
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wzrd_client-1.1.0.tar.gz.
File metadata
- Download URL: wzrd_client-1.1.0.tar.gz
- Upload date:
- Size: 39.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd3f43e61d22297bb1fbb4a6bb9839633e860468b60912c7018c71d5dc619833
|
|
| MD5 |
e871fe8b14c8f0960bd4d179c1e4463b
|
|
| BLAKE2b-256 |
68d4d51c59b30e58ce4aab8f720e290d580ddf007e5170981823e4b27d45a6f8
|
File details
Details for the file wzrd_client-1.1.0-py3-none-any.whl.
File metadata
- Download URL: wzrd_client-1.1.0-py3-none-any.whl
- Upload date:
- Size: 33.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee10377d970f08541cb5dc9e5c7203d6602d505224dd202df36aa6f8e6b2de0e
|
|
| MD5 |
249a8cbbe74676f8e080c7470d253078
|
|
| BLAKE2b-256 |
ab4c908db17af8d3a0df365b55c253221938df37af72dc0d4fd2db4d54c521bf
|