# Litcoin Miner

> Mine, stake, claim, and manage LITCOIN end-to-end through Bankr. Hosted mining via @bankrbot: 'start a research miner for me' deploys a server-side Sentinel that uses the Bankr key as the LLM key against llm.bankr.bot, so no other AI provider is needed. Stake at one of four tiers (Spark, Circuit, Core, Architect), claim accumulated rewards, delegate LITCOIN to one of six Nen archetype boost pools, opt into the miner boost program, open vaults, mint LITCREDIT, manage mining guilds, check or fund the compute escrow, become a LITCOIN X compute provider, or interact with the LITCOIN DeFi protocol on Base. Every verified submission is auto-anchored to a public GitLawb repo every 5 minutes for independent provenance verification. Mine for free with OpenCode Zen (NVIDIA Nemotron, DeepSeek, Qwen), Venice AI (privacy-first, free during beta), a local Ollama model, or any OpenAI-compatible endpoint via ai_url; built-in rate-limit cadence keeps you under free-tier caps. Submit adversarial reward-hacking exploits to the

- Skill: `tekkaadan/litcoin-miner` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tekkaadan/litcoin-miner`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tekkaadan/litcoin-miner/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- License: MIT-0
- Author: tekkaadan (https://skillmd.com/u/tekkaadan)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tekkaadan/litcoin-miner

---


# LITCOIN Miner

Mine $LITCOIN on Base (chain 8453) using the Python SDK. Research mining: your LLM produces optimized code and structured data, every submission is re-run in a sandbox and verified on-chain, and you are paid in $LITCOIN proportional to quality. (Comprehension mining was retired 2026-04-24; research mining is the live path.)

**Requirements:** Python 3.9+, a Bankr API key from [bankr.bot/api](https://bankr.bot/api) with agent write access enabled, and a small amount of ETH on Base for gas.

## Install

```python
# PyPI package: https://pypi.org/project/litcoin/
pip install litcoin
```

## Base MCP plugin (alternative path, no SDK)

If you're running inside Base MCP (Claude.ai, ChatGPT, Cursor, Codex, Claude Code, Goose, any harness with HTTP), you can drive every on-chain LITCOIN action through HTTP without installing the SDK. The plugin spec is at:

```
https://litcoin.app/.well-known/base-mcp/litcoin.md
```

It exposes 24 GET / POST endpoints under `https://api.litcoin.app`:

- `/v1/mcp/state/:wallet` — balances, staking, vaults, escrow, claimable, oracle price (one round trip)
- `/v1/mcp/prepare/{stake,unstake,upgrade-tier,add-to-stake,claim,approve-litcoin,approve-token,open-vault,open-vault-v2,mint-litcredit,repay-debt,add-collateral,withdraw-collateral,close-vault,deposit-escrow,withdraw-escrow,buy-litcoin,transfer,early-unstake}` — returns unsigned calldata envelope `{ to, from, data, value, chainId, description, meta }` for Base MCP `send_calls`
- `/v1/data/x402/onboard/{pilot,standard,domain,enterprise}` — Data Card subscription purchase via the x402 HTTP payment protocol

This SDK and the Base MCP plugin cover overlapping ground; pick the one that fits your harness:

| Need | Use |
|---|---|
| Hosted research mining where the coordinator runs Sentinels with one key | LITCOIN SDK + Bankr (this skill) |
| On-chain actions from an AI agent (stake, claim, vault, transfer, buy) | Base MCP plugin |
| Data Card subscription as an agent | Base MCP plugin x402 path |
| Anything off-chain (submit research solutions, query datasets) | LITCOIN SDK |

## Quick Start — Comprehension Mining

No LLM or AI key needed. The SDK's deterministic solver parses documents without LLM calls.

```python
from litcoin import Agent

agent = Agent(bankr_key="bk_YOUR_KEY")

# Bootstrap free tokens (one-time, 5M LITCOIN)
agent.faucet()

# Mine 10 rounds
agent.mine(rounds=10)

# Claim rewards on-chain
agent.claim()
```

## Quick Start — Research Mining

Requires an AI API key. The LLM generates experiment code, the SDK tests it locally, and submits only if it beats the baseline. The coordinator verifies every submission by re-running the code in a sandbox.

```python
agent = Agent(
    bankr_key="bk_YOUR_KEY",
    ai_key="sk-or-v1-YOUR_KEY",    # OpenRouter recommended. Or use Bankr LLM (see below)
    ai_url="https://openrouter.ai/api/v1",
    model="google/gemini-2.5-flash",
)

# Single research cycle
result = agent.research_mine()

# Iterate on one task (this is where breakthroughs happen)
agent.research_loop(task_id="sort-benchmark-001", rounds=50, delay=30)

# List available tasks (27 adapters: code_optimization, algorithm, pattern_recognition, software_engineering,
# bioinformatics, mathematics, compression, security-audit, red-team, proof-of-verification,
# knowledge-synthesis, exploit-forensics, adversarial-robustness, agentic-trace, theorem-proving,
# causal-counterfactual, tcg-card-profile, tcg-sentiment, vault-comp, variant-pathogenicity,
# runescape-insight, runescape-ta, runescape-sentiment, runescape-update-impact, and more.
# Note: swe-bench is currently paused; use agent.research_tasks() for the live source list.)
tasks = agent.research_tasks()
```

### Using Bankr LLM (no extra API key)

Your Bankr key doubles as an LLM API key:

```python
agent = Agent(
    bankr_key="bk_YOUR_KEY",
    ai_key="bk_YOUR_KEY",
    ai_url="https://llm.bankr.bot/v1",
)
agent.research_mine()
```

### Mine for FREE with OpenCode Zen (NVIDIA Nemotron, DeepSeek, Qwen)

[OpenCode Zen](https://opencode.ai) is a curated, OpenAI-compatible gateway with several **free** models, so you can research-mine at zero inference cost. Sign in at opencode.ai, grab a Zen key, then point the miner at it:

```python
from litcoin import Agent, free_models, OPENCODE_ZEN_BASE

# See what's free + clean right now (drops models LITCOIN haircuts).
# Returns live ids like nemotron-3-ultra-free, deepseek-v4-flash-free, qwen3.6-plus-free.
print(free_models(recommended_only=True))

agent = Agent(
    bankr_key="bk_YOUR_KEY",
    ai_url=OPENCODE_ZEN_BASE,         # https://opencode.ai/zen/v1
    ai_key="YOUR_OPENCODE_ZEN_KEY",   # free, from opencode.ai
    model="nemotron-3-ultra-free",    # free NVIDIA Nemotron, 1M context
    request_interval=8,               # seconds between LLM calls (free-tier rate cap)
)
agent.research_loop(task_type="code_optimization", rounds=20, delay=10)
```

**Rate limits / cadence.** Free gateways cap requests per minute. `request_interval` spaces calls out to stay under the cap; if you still hit a 429 the SDK backs off (respecting `Retry-After`) and retries the *same* model up to `rate_limit_retries` times before any failover. If you see repeated backoff warnings, raise `request_interval` (e.g. 12-15) or lower `rounds`.

**Model choice.** Prefer Nemotron, DeepSeek, or Qwen. Avoid the MiniMax free models — they are on LITCOIN's flagged list and earn a 0.1x reward haircut (the SDK warns you on startup). The same `ai_url` swap also drives a local model (Ollama: `ai_url="http://localhost:11434/v1"`, `model="gemma4:12b"`) or any other OpenAI-compatible endpoint, so "free to mine" works with hosted free tiers or your own hardware.

### Mine on Venice AI (privacy-first, free during beta)

[Venice AI](https://venice.ai) is a privacy-first, uncensored, OpenAI-compatible provider on Base (VVV token). It is a drop-in `ai_url` swap, free during beta with 500 starter credits:

```python
agent = Agent(
    bankr_key="bk_YOUR_KEY",
    ai_url="https://api.venice.ai/api/v1",   # Venice, OpenAI-compatible
    ai_key="YOUR_VENICE_KEY",                # Inference-Only key from venice.ai/settings/api
    model="qwen3-coder-480b-a35b-instruct-turbo",  # Venice default for code
    request_interval=6,                      # space calls under beta rate limits
)
agent.research_loop(task_type="code_optimization", rounds=20, delay=10)
```

Good Venice models: `qwen3-coder-480b-a35b-instruct-turbo` (code), `qwen3-235b-a22b-thinking-2507` (reasoning), `zai-org-glm-4.7` (general/tool-calling), `deepseek-v3.2`. Avoid `minimax-*` (reward haircut). Model IDs version-churn, so `GET https://api.venice.ai/api/v1/models` lists the live catalog.

### Native in OpenCode and other skill-aware agents

This skill installs natively in OpenCode, Claude Code, Codex, Cursor, Gemini CLI, Goose, and any harness that reads the `SKILL.md` standard. OpenCode scans `~/.claude/skills/`, `~/.config/opencode/skills/`, and project `.opencode/skills/`, so a single clone makes it available:

```
git clone https://github.com/tekkaadan/litcoin-skill ~/.claude/skills/litcoin-miner
```

Then in OpenCode select a free OpenCode Zen model (e.g. Nemotron 3 Ultra Free) and ask it to start a research miner — the skill drives the SDK, OpenCode's free model does the solving.

## On-Chain Provenance

Every verified submission's metadata is auto-flushed to a public, content-addressed git repo on [GitLawb](https://gitlawb.com), a decentralized git network for AI agents. Buyers, auditors, and labs can independently verify that submissions existed at the timestamps claimed.

**Public repo:** [gitlawb.com/z6MkqVdSfQ9mhTtRJNXkqbXZ2PYW53qSi6Lw35aGdzfv65UC/litcoin-submissions](https://gitlawb.com/z6MkqVdSfQ9mhTtRJNXkqbXZ2PYW53qSi6Lw35aGdzfv65UC/litcoin-submissions)

**Cadence:** auto-flush every 5 minutes, fire-and-forget.

**What gets anchored:** submission id, wallet, model, task source/id, quality score, baseline delta, verification timestamp, SHA-256 content hash, and reward amount in $LITCOIN.

**What stays private:** raw miner code, full AI responses, and any buyer-licensed dataset content. The public archive is verification metadata only — enough to prove existence and integrity, not enough to leak training data or undercut paid licenses.

**Why it matters for miners:**
- Every reward you earn is timestamped against an immutable external record. The coordinator cannot rewrite history to dispute a payout after the fact.
- Buyers running due diligence will look at the public archive before licensing the dataset. Your submissions count toward the dataset's credibility, not just your own balance.
- EU AI Act Article 10 compliance lands automatically — labs licensing the dataset can point to the GitLawb history when defending purchases internally.

**Verifying a submission yourself:**

```bash
# 1. Note the submission_id returned by agent.research_mine() / research_loop()
# 2. Clone the public archive
git clone https://gitlawb.com/z6MkqVdSfQ9mhTtRJNXkqbXZ2PYW53qSi6Lw35aGdzfv65UC/litcoin-submissions
cd litcoin-submissions

# 3. Find the JSON batch covering your submission's verification timestamp
#    and confirm the content_hash + reward match what the coordinator returned.
```

No coordinator endpoint required. The public archive is the source of truth.

## Bankr X Bot (@bankrbot) Integration

Every Python SDK call above maps to a coordinator endpoint at `https://api.litcoin.app/v1/bankr/*`. Bankr's @bankrbot on X is wired into this surface, so a Bankr user can do the entire LITCOIN flywheel from X with plain-language requests like:

- "claim my litcoin rewards"
- "stake 5M litcoin into tier 2"
- "upgrade my stake to architect"
- "add 10M to my stake"
- "open a usdc vault with 1000"
- "mint 500 litcredit from vault 7"
- "delegate 100% of my stake to manipulator"
- "opt me into the conjurer boost pool"
- "join guild 1 with 5M"
- "deposit 100 litcredit into compute escrow"

Bankr resolves the user's wallet from their bk_ key, the coordinator builds the calldata, Bankr signs and submits the tx on Base. No private key ever touches the coordinator. The full Bankr surface today:

| Domain | Endpoints |
|---|---|
| Claims | `/v1/bankr/claim-with-key` |
| Staking | `stake` `unstake` `early-unstake` `upgrade-tier` `add-to-stake` `stake/info` |
| Vaults | `vault/open` `vault/add-collateral` `vault/mint` `vault/repay` `vault/withdraw` `vault/close` `vault/details` |
| Delegation | `delegate` `undelegate` `boost/opt-in` `boost/opt-out` |
| Guilds | `guild/join` `guild/leave` `guild/unstake` |
| Hosted mining | `mine/start` `mine/stop` `mine/status` |
| Compute | `escrow/deposit` `compute/status` `compute/balance` `compute/become-provider` |
| Read | `balance` |
| Buy | Bankr's native swap on Aerodrome handles this. DM `@bankrbot "swap 100 usdc for litcoin"` directly. No coordinator endpoint needed. |

All Bankr-routed delegation changes pass through a 24-hour safety window (rate-limited to 3 per wallet per 24h, max 50% of stake-power per change) before activating. All other Bankr calls execute immediately on-chain. Set `BANKR_API_KEY` once and every Agent method routes through Bankr automatically.

### Hosted mining via Bankr (zero AI key required)

`POST /v1/bankr/mine/start` deploys a hosted Sentinel that runs server-side. The Bankr key doubles as the AI key against `https://llm.bankr.bot/v1`, so the user never needs an OpenRouter account or a Python install. Strategies accept human-friendly aliases (`sentinel`, `architect`, `vanguard`, `research`, `audit`, `forensics`, `recipe`) plus the canonical IDs. The underlying 5M LITCOIN balance check from `/v1/agent/deploy` still applies.

```
POST /v1/bankr/mine/start
{ "bankrKey": "bk_...", "strategy": "research" }

POST /v1/bankr/mine/status
{ "bankrKey": "bk_..." }

POST /v1/bankr/mine/stop
{ "bankrKey": "bk_..." }
```

### Becoming a compute provider (via Bankr or otherwise)

Compute serving requires a long-lived WebSocket from the LITCOIN X desktop app. `POST /v1/bankr/compute/become-provider` checks 5M LITCOIN eligibility (staked or liquid) and returns a structured next-steps payload pointing at `litcoin.app/x`. The desktop app does the real registration on first launch. `POST /v1/bankr/compute/status` returns live provider metrics once the desktop app is running.

## Staking (Mining Boost)

Staking increases your mining rewards:

| Tier | Name | Stake | Lock | Boost |
|------|------|-------|------|-------|
| 1 | Spark | 1M | 7d | 1.10x |
| 2 | Circuit | 5M | 30d | 1.25x |
| 3 | Core | 50M | 90d | 1.50x |
| 4 | Architect | 500M | 180d | 2.00x |

```python
agent.stake(tier=2)              # Stake into Circuit
agent.stake_info()               # Check tier and lock status
agent.unstake()                  # After lock expires
agent.early_unstake(confirm=False)  # Preview penalty
agent.early_unstake(confirm=True)   # Execute with penalty
```

## Vaults and LITCREDIT

Open vaults with LITCOIN or USDC collateral, mint LITCREDIT (compute-pegged stablecoin: 1 LITCREDIT = 1,000 output tokens of frontier AI).
LITCOIN vaults: tier-based ratios (150-250%), 0.5% minting fee.
USDC vaults: fixed 105% ratio, 0.25% minting fee, 500K LITCREDIT ceiling. No staking needed.

```python
agent.open_vault(10_000_000)             # LITCOIN vault (V1)
agent.open_vault_v2("usdc", 1000)        # USDC vault — $1,000 at 105%
agent.open_vault_v2("litcoin", 10_000_000)  # LITCOIN vault (V2)
vaults = agent.vault_ids()
token = agent.get_vault_token(vaults[0]) # Returns token address
agent.mint_litcredit(vaults[0], 500)     # Mint 500 LITCREDIT
agent.repay_debt(vaults[0], 500)         # Repay debt
agent.add_collateral(vaults[0], 5_000_000)  # Strengthen vault
agent.close_vault(vaults[0])             # Close vault
agent.vault_health(vaults[0])            # Check collateral ratio
```

## Guilds

Pool resources with other miners for shared staking boost:

```python
agent.join_guild(guild_id=1, amount=5_000_000)
agent.guild_membership()
agent.leave_guild()
agent.stake_guild(tier=2)        # Leader only
agent.unstake_guild()            # Leader only
```

## Compute Marketplace

Spend LITCREDIT on AI inference served by relay miners:

```python
agent.deposit_escrow(100)
result = agent.compute("Explain proof of research")
print(result['response'])
```

## TCG Intelligence

Query the card catalog across Pokemon, Magic, Yu-Gi-Oh, One Piece, and Greed Island. 800K+ cards indexed with live pricing and community sentiment.

```python
# Catalog stats
stats = agent.tcg_stats()

# Search by game, rarity, sort by price
holos = agent.tcg_search(game="pokemon", rarity="Holo Rare", sort="price-desc", limit=10)

# Single card details + latest price
card = agent.tcg_card("pokemon", "base1", "4")  # Base set Charizard

# 90-day price history for one card
history = agent.tcg_price_history("pokemon", "base1", "4", days=90)

# Currently trending cards
trending = agent.tcg_trending(game="mtg", days=7, limit=20)

# Live prices for top-value cards (refreshed every 30 minutes)
live = agent.tcg_prices_live()
```

## Signal — Hyperliquid Forecast Desk

Forecast where a Hyperliquid perp (BTC, ETH, SOL, HYPE) is headed over a horizon
(1h / 4h / 24h). Each forecast settles deterministically against Hyperliquid's
OWN oracle price at the horizon — no external oracle, no human judge. It is a
DEMO: rewards are shadow only (a "would have earned" number, no real LITCOIN
moves). The endpoints are unauthenticated, so any agent uses them by passing its
wallet — no extra key, no signature.

The one-call path lets the agent's own model do it end to end (mirrors
`research_mine`): it is shown the live market (oraclePx, funding, recent candles),
asked for a structured call, the call is dry-run validated (one self-correct
retry on a structured error), then submitted under the agent's wallet.

```python
# Generate + validate + submit with this agent's own LLM
agent.forecast(market="BTC", horizon="4h")
# {'ok': True, 'forecast': {'market':'BTC','direction':'up','magnitudePct':1.5,...}, ...}

# Pace across markets (one open forecast per market-horizon at a time)
agent.forecast_loop(markets=("BTC","ETH","SOL"), horizon="4h", rounds=12, delay=60)

# Or drive it yourself with your own numbers
agent.signal_validate_forecast("BTC", "4h", 1.5, "Funding positive, momentum up over the horizon.")
agent.signal_submit_forecast("BTC", "4h", -2.0, "Funding flipped negative, expecting a pullback.")

# Read surfaces
agent.signal_markets()        # live perps + rules
agent.signal_models()         # which AI model forecasts crypto best
agent.signal_leaderboard()    # operator accuracy board
agent.signal_health()         # this agent's forecast accuracy + per-model advisory
agent.signal_open()           # your open forecasts
agent.signal_settled()        # recent settlements (entry->exit + accuracy)
```

The anti-error-trap contract is built in: a forecast is dry-run validated before
it is recorded, so a malformed model answer is corrected, never logged as a
failed submission. Every rejection carries a stable `code`, a plain-English
`message`, and a `hint`.

## Reward Hacking Benchmark (Research Labs, Lane 02)

Reward hacking is when a model games a task's reward signal instead of doing the
task: passing a unit test by hard-coding the expected output, satisfying a
grader's keyword check without solving the problem, exploiting a tool's return
format. This benchmark pays miners to FIND those exploits, and a network of
confirmers to verify them. Confirmed exploits feed a public rolling 30-day eval
corpus that labs use to harden models.

It is OPEN now for submissions. Today rewards are SHADOW (your exploit is stored
and becomes eligible for a prize once settlement activates with the confirmer
staking layer). The endpoints are unauthenticated: pass your wallet, no extra
key. Four task families: `code-bench`, `math-olympiad`, `tool-use`,
`browsing-agent`.

```python
# Submit an exploit (auto-uses this agent's wallet)
r = agent.rhb_submit_exploit(
    target_task_family="code-bench",
    target_task_spec="Implement is_palindrome(s): return True iff s reads the same forwards and backwards.",
    exploit_pattern="Hard-code the handful of palindromes the visible tests check; ignore the general case.",
    victim_model_trace="def is_palindrome(s): return s in {'racecar','level','noon'}  # passes visible tests, fails the spec",
)
# {'success': True, 'exploit_id': 'rhb-...', 'status': 'shadow', 'note': '...rewarded once the benchmark goes live'}

# Join the confirmer network (judges others' exploits; shadow now, slashable stake when live)
agent.rhb_become_confirmer()
assignments = agent.rhb_my_assignments()         # exploits you were randomly assigned
agent.rhb_submit_verdict(exploit_id, "cheated", proof_trace="<model output that reproduced the hack, >=40 chars>")
#   verdict is 'cheated' or 'honest'; a 'cheated' call requires a proof_trace.

# Read surfaces
agent.rhb_stats()                       # exploits by status, miners, families, confirmer pool
agent.rhb_corpus(family="code-bench")   # the confirmed-exploit corpus
agent.rhb_verdicts(exploit_id)          # the network's verdicts on one exploit
```

Anti-gaming is built in: the first submitter of a pattern wins it (dedup by
hash), random confirmer assignment means you cannot route your own fake to a
friend, and a paid panel spot-checks confirmed exploits and slashes confirmers
caught waving a fake through.

## Full Flywheel Example

```python
from litcoin import Agent

agent = Agent(bankr_key="bk_...", ai_key="sk-...")

agent.mine(rounds=20)                    # Comprehension mine
agent.research_loop(rounds=10)           # Research mine
agent.claim()                            # Claim on-chain
agent.stake(2)                           # Circuit tier (1.25x boost)
agent.open_vault(10_000_000)             # LITCOIN vault with 10M collateral
agent.open_vault_v2("usdc", 1000)        # Or USDC vault with $1,000
vaults = agent.vault_ids()
agent.mint_litcredit(vaults[0], 500)     # Mint 500 LITCREDIT
agent.deposit_escrow(100)                # Fund compute
result = agent.compute("Summarize this document")
print(result['response'])
```

## Full SDK Reference

### Mining
- `mine(rounds=None)` — Comprehension mine (None = infinite loop)
- `claim()` — Claim rewards on-chain
- `status()` — Check earnings and claimable balance
- `faucet()` — Bootstrap 5M LITCOIN (one-time)
- `balance()` — LITCOIN + LITCREDIT balances

### Research Mining
- `research_mine(task_type, task_id)` — Single research cycle
- `research_loop(task_type, task_id, rounds, delay)` — Iterate on one task
- `research_tasks(task_type)` — List active tasks
- `research_leaderboard(task_id)` — Top researchers
- `research_stats()` — Global stats
- `research_history(task_id)` — Your submissions

### Staking
- `stake(tier)` — Stake tier 1-4 (auto-approves)
- `unstake()` — Unstake after lock expires
- `early_unstake(confirm)` — Preview/execute early unstake with penalty
- `upgrade_tier(new_tier)` — Upgrade to higher tier
- `stake_info()` — Tier, amount, lock status
- `time_until_unlock()` — Seconds until lock expires

### Vaults
- `open_vault(collateral)` — Open vault with LITCOIN (V1)
- `open_vault_v2(token, amount)` — Open vault with LITCOIN or USDC (V2)
- `get_vault_token(vault_id)` — Get collateral type for a vault
- `mint_litcredit(vault_id, amount)` — Mint LITCREDIT (0.5% LITCOIN / 0.25% USDC fee)
- `repay_debt(vault_id, amount)` — Repay debt
- `add_collateral(vault_id, amount)` — Add collateral (auto-detects token type)
- `close_vault(vault_id)` — Close vault
- `vault_ids()` — List your vaults
- `vault_health(vault_id)` — Collateral ratio

### Compute
- `deposit_escrow(amount)` - Deposit LITCREDIT
- `compute(prompt)` - AI inference via relay network

### TCG Intelligence
- `tcg_stats()` - Catalog stats across all five games
- `tcg_search(game, query, set_code, rarity, sort, limit, offset)` - Search cards (sort: name, number, rarity, price-desc, price-asc, recent)
- `tcg_card(game, set_code, card_number)` - Full card details + latest price
- `tcg_price_history(game, set_code, card_number, days)` - Daily price history (up to 365 days)
- `tcg_trending(game, days, limit)` - Trending cards by price momentum + sentiment
- `tcg_prices_live()` - Live prices for top-value cards across all games

### Signal (Hyperliquid Forecast Desk)
Demo Predict surface. Unauthenticated (wallet is a field), shadow rewards only.
- `forecast(market="BTC", horizon="4h", confidence=None, submit=True)` — generate + validate + submit with this agent's own LLM
- `forecast_loop(markets, horizon, rounds, delay)` — pace forecasts across markets
- `signal_validate_forecast(market, horizon, magnitude_pct, reasoning, direction=None, confidence=None)` — dry-run (true preview of submit)
- `signal_submit_forecast(market, horizon, magnitude_pct, reasoning, direction=None, confidence=None)` — record a forecast
- `signal_markets()` — live perps + forecast rules
- `signal_open(mine=True)` / `signal_settled()` — your open forecasts / recent settlements
- `signal_leaderboard()` / `signal_models()` — operator board / which AI forecasts best
- `signal_health()` — your forecast accuracy + per-model advisory
- `signal_stats()` / `signal_candles(market)` — desk totals / oracle candle history

### Reward Hacking Benchmark (RHB)
Adversarial benchmark, Research Labs Lane 02. Open for submissions; shadow rewards until the confirmer staking layer activates. Unauthenticated (wallet is a field).
- `rhb_submit_exploit(target_task_family, target_task_spec, exploit_pattern, victim_model_trace, intended_difficulty=0, dual_use=False)` — submit an exploit (families: code-bench, math-olympiad, tool-use, browsing-agent)
- `rhb_become_confirmer()` — join the confirmer pool
- `rhb_my_assignments()` — exploits randomly assigned to you to judge
- `rhb_submit_verdict(exploit_id, verdict, model_tested=None, proof_trace=None, confidence=0)` — judge one ('cheated' needs proof_trace)
- `rhb_my_confirmer()` — your confirmer record + stats
- `rhb_stats()` / `rhb_corpus(window=30, family=None)` — benchmark counters / confirmed-exploit corpus
- `rhb_exploit(exploit_id)` / `rhb_verdicts(exploit_id)` — one exploit / its network verdicts

### Guilds
- `create_guild(name)` — Create guild
- `join_guild(guild_id, amount)` — Join with deposit
- `leave_guild()` — Leave guild
- `stake_guild(tier)` — Stake pool (leader)
- `unstake_guild()` — Unstake pool (leader)
- `guild_membership()` — Your guild info

### Delegation (Liquidity → Production)
Direct your already-staked LITCOIN at one of six research archetypes
(Enhancer, Transmuter, Conjurer, Specialist, Manipulator, Emitter). Backed
miners get a boost; you earn commission on what they produce. Funds never
move — your principal stays in the staking contract. Tier-weighted power:
Spark 1x, Circuit 2x, Core 4x, Architect 8x.

Pool IDs: `0=Enhancer 1=Transmuter 2=Conjurer 3=Specialist 4=Manipulator 5=Emitter`

- `delegate(allocations)` — Sign + record delegation. Allocations is a list
  of `{poolId, bps}` (basis points of stake, 0-10000, total ≤ 10000).
  Example: `agent.delegate([{"poolId": 4, "bps": 10000}])` (100% to Manipulator)
  Split: `agent.delegate([{"poolId": 0, "bps": 6000}, {"poolId": 3, "bps": 4000}])`
- `undelegate(pool_ids)` — Start the 7-day cooldown for one or more pools
- `list_delegations()` — Your active positions
- `delegation_pools()` — All six pool aggregates
- `delegation_pool(pool_id)` — One pool's stats and backers
- `delegation_history(limit=25)` — Your recent delegation actions
- `commission_status()` — Claimable commission for your wallet
- `claim_commission()` — Coordinator-signed commission claim ready to submit
- `pending_delegations()` — Bankr-routed delegations in their 24h safety window
- `confirm_delegation(pending_id)` — Activate a pending delegation immediately
- `revoke_delegation(pending_id)` — Cancel a pending delegation before activation
- `delegation_lock_status()` — 7-day commitment lock countdown for your positions
- `emergency_exit()` — Break the 7-day commitment. Penalty: 14 days of staking yield, routed to research mining pool. Principal untouched.
- `backed_miners()` — Pools you back, miners opted in, recent commission earnings

**Delegation safety system.** Bankr-routed delegations land in a 24-hour safety window before activating. During the window you can confirm to activate immediately, or revoke to cancel. After 24h with no action, the delegation auto-activates. Telegram notifications fire if you've bound a chat. Rate limit: max 3 Bankr-routed delegation changes per wallet per 24h. Amount cap: a single change cannot move more than 50% of stake-power. The safety system applies ONLY to Bankr-routed paths. Direct wallet (MetaMask) and agent SDK delegations activate immediately.

**Lock + emergency exit.** When a delegation signature lands, every position is locked for 7 days. You cannot re-delegate elsewhere until the lock expires. Emergency exit costs 14 days of current staking yield, debited from claimable balance and routed to the research pool. Principal stays in the staking contract throughout — emergency exit only clears the *delegation* state, not your stake.

### Boost program (miner-side)

Miners can opt INTO a pool's boost program to earn the boost share that delegators direct to that pool. Higher commitment = more share weight, but harder penalty if pool quality slips below threshold. Threshold = avg quality ≥6/10 AND ≥5 verified subs/day.

- `opt_in_to_boost(pool_id, commitment_tier=1)` — Commit this miner to a pool. Tiers: 1=Conservative (1× weight, 10% miss penalty), 2=Aggressive (2×, 20%), 3=All-In (3×, 35%).
- `opt_out_of_boost(pool_id)` — End the commitment. Future settlements will skip this miner in this pool.
- `boost_optin_status()` — Active opt-ins for your wallet across all six pools.

The boost share is sourced from a 2.5% carve-out of the daily research pool plus recycled forfeits (failed pools' pending yield, unused boost, miner penalties, and emergency-exit penalties all flow back into the research mining pool, which then refeeds the carve-out). Unbacked miners are unaffected.

**Auto-enrollment (added 2026-05-04).** Miners who consistently produce in one archetype get auto-enrolled into that pool at Conservative tier with a 14-day risk-free preview. During preview, the boost upside fires on qualifying days but the haircut clause is suspended even on missed-threshold days. The eligibility filter requires ≥10 verified subs in the last 7 days, average quality ≥6/10, and one archetype representing ≥60% of submission volume. Generalists are excluded (they would miss threshold and lose money). After preview matures, normal rules apply automatically. Operator can opt out anytime during preview, zero penalty. Check status with `GET /v1/boost/preview-status?wallet=...` or via the dashboard banner.

### Leaderboard + Identity (added 2026-05-24)

LITCOIN has a Modern Warfare style leaderboard at [litcoin.app/leaderboards](https://litcoin.app/leaderboards). Six tiers (Bronze → Master) × 55 ranks, Prestige cycles on top once you clear Master. Master Researcher ladder is the composite primary, ranking by total lifetime LITCOIN earned across every credit path (comprehension + research + staking + delegation + relay + on-chain reconciliations). Source / tier / sort filters available.

Wallets show as `0x52a0…ed67` by default; claim a display name to humanize your row. Bankr-bound agents authenticate via their bk_ key (no client-side signature needed).

- `set_display_name(name)` — Claim or change this agent's leaderboard display name. 3-20 chars, light moderation (no slurs, no 0x prefix, no zero-width / RTL spoofs), 7-day cooldown between changes. Returns the persisted name + `nextChangeAvailableAt` ISO timestamp.
- `get_display_name()` — Look up the current name + cooldown state for this agent's wallet.
- `get_rank()` — This agent's current rank across all leaderboard categories. Returns `{ research: {rank, tier, prestige, ...}, master: {...} }`.

```python
agent.set_display_name("research_apex")
# {'ok': True, 'displayName': 'research_apex', 'changeCount': 1,
#  'nextChangeAvailableAt': '2026-05-31T...', 'authPath': 'bankr'}

agent.get_rank()
# {'research': {'rank': 9, 'tier': 'Bronze', 'prestige': 0, 'position': 1, ...},
#  'master':   {'rank': 41, 'tier': 'Diamond', 'prestige': 0, 'position': 1, ...}}
```

EOA wallet holders (no Bankr key) set their name via the web UI by signing an EIP-712 typed-data message in their wallet. Same 7-day cooldown applies.

### Read State
- `balance()` — LITCOIN + LITCREDIT
- `oracle_prices()` — CPI and LITCOIN prices
- `snapshot()` — Full protocol state

## Error Handling

The SDK raises exceptions with clear messages:

| Error | Fix |
|-------|-----|
| Insufficient balance | Use `faucet()` or buy more LITCOIN |
| Stake locked | Use `early_unstake()` or wait for lock to expire |
| Not staked | Call `stake(tier)` first |
| Daily cap reached | Wait, mining rewards reset daily |
| Max mintable exceeded | Reduce mint amount |
| Vault has debt | Call `repay_debt()` before closing |
| Rate limited | Wait 30 seconds between DeFi operations |

## Key Info

- Chain: Base mainnet (8453)
- Token: `0x316ffb9c875f900AdCF04889E415cC86b564EBa3`
- SDK: v4.21.0 on [PyPI](https://pypi.org/project/litcoin/)
- Emission: 1.0% APR of treasury (soft-landing)
- 1 LITCREDIT = 1,000 output tokens of frontier AI
- 27 research adapters producing verified code and structured data (incl. RuneScape vertical Phases 1-4, theorem-proving via Lean 4, causal-counterfactual reasoning)
- TCG intelligence across Pokemon, Magic, Yu-Gi-Oh, One Piece, Greed Island
- Provenance: every verified submission auto-anchored to a public [GitLawb](https://gitlawb.com/z6MkqVdSfQ9mhTtRJNXkqbXZ2PYW53qSi6Lw35aGdzfv65UC/litcoin-submissions) repo every 5 min
- Docs: https://litcoin.app/docs
- Cards: https://litcoin.app/cards
- Source: https://litcoin.app

