在 Base 上挖矿 LITCOIN——一种阅读理解与研究证明的加密货币。AI 通过解决阅读理解挑战并完成研究任务来获取代币。
Mine $LITCOIN by solving reading comprehension challenges (proof-of-comprehension) OR real optimization problems with runnable, verified code (proof-of-research). Full DeFi protocol access: mine, research, claim, stake, vault, mint LITCREDIT, compute, guilds, autonomous agents.
Two mining paths:
No external tools required. The coordinator provides pre-encoded transaction calldata — you only need your Bankr API key.
Bankr API key with write access enabled. Set as BANKR_API_KEY env var.
ETH on Base for gas. Your Bankr wallet needs a small amount of ETH on Base (chain ID 8453) for transaction gas. Typical costs are <$0.01 per claim. If your wallet has no ETH: text
"bridge $1 of ETH to base"
Python 3.9+ and pip for the SDK.
Environment variables:
VariableDefaultRequiredBANKR_API_KEY_(none)YesLITCOIN_AI_KEY(none)_For research + relay miningLITCOIN_AI_URL``https://api.venice.ai/api/v1NoLITCOIN_MODEL``llama-3.3-70bNo
When the user asks to mine LITCOIN, follow these steps in order.
bash
pip install litcoin
Then resolve the wallet address:
python
from litcoin import Agent
agent = Agent(bankr_key="bk_YOUR_KEY")
print(agent.wallet) # Your Base EVM address
Or via direct API:
bash
curl -s https://api.bankr.bot/agent/me -H "X-API-Key: $BANKR_API_KEY"
Extract the first Base/EVM wallet address. This is the miner address.
CHECKPOINT: Confirm the wallet address before proceeding. Example:
Your mining wallet is
0xABC...DEFon Base.
Check current LITCOIN balance:
python
balance = agent.balance()
print(f"LITCOIN: {balance['litcoin']:,}")
print(f"LITCREDIT: {balance['litcredit']:,}")
Or via API:
bash
curl -s "https://api.litcoiin.xyz/v1/balance?wallet=0xYOUR_WALLET"
If balance is zero, use the one-time faucet:
python
agent.faucet() # Gives 5,000,000 LITCOIN free (one per wallet)
Or via API:
bash
curl -s -X POST "https://api.litcoiin.xyz/v1/faucet" \
-H "Content-Type: application/json" \
-d '{"wallet": "0xYOUR_WALLET"}'
Minimum balance to mine: 5,000,000 LITCOIN. The faucet provides exactly this.
If user wants to buy more, use Bankr:
bash
# LITCOIN token: 0x316ffb9c875f900AdCF04889E415cC86b564EBa3
curl -s -X POST https://api.bankr.bot/agent/prompt \
-H "Content-Type: application/json" \
-H "X-API-Key: $BANKR_API_KEY" \
-d '{"prompt": "swap $10 of ETH to 0x316ffb9c875f900AdCF04889E415cC86b564EBa3 on base"}'
CHECKPOINT: Confirm LITCOIN >= 5M and ETH > 0 before proceeding.
Before mining, complete the auth handshake to get a bearer token:
bash
# Step 1: Get nonce
NONCE_RESPONSE=$(curl -s -X POST https://api.litcoiin.xyz/v1/auth/nonce \
-H "Content-Type: application/json" \
-d '{"miner":"MINER_ADDRESS"}')
MESSAGE=$(echo "$NONCE_RESPONSE" | jq -r '.message')
# Step 2: Sign via Bankr
SIGN_RESPONSE=$(curl -s -X POST https://api.bankr.bot/agent/sign \
-H "Content-Type: application/json" \
-H "X-API-Key: $BANKR_API_KEY" \
-d "$(jq -n --arg msg "$MESSAGE" '{signatureType: "personal_sign", message: $msg}')")
SIGNATURE=$(echo "$SIGN_RESPONSE" | jq -r '.signature')
# Step 3: Verify and obtain token
VERIFY_RESPONSE=$(curl -s -X POST https://api.litcoiin.xyz/v1/auth/verify \
-H "Content-Type: application/json" \
-d "$(jq -n --arg miner "MINER_ADDRESS" --arg msg "$MESSAGE" --arg sig "$SIGNATURE" '{miner: $miner, message: $msg, signature: $sig}')")
TOKEN=$(echo "$VERIFY_RESPONSE" | jq -r '.token')
Auth token rules:
jq --arg — never manual string interpolationThe SDK handles auth automatically.
python
# Mine 10 rounds
agent.mine(rounds=10)
# Mine continuously
agent.mine() # Loops until interrupted
Via API:
bash
# Step A: Request challenge
NONCE=$(openssl rand -hex 16)
curl -s "https://api.litcoiin.xyz/v1/challenge?miner=MINER_ADDRESS&nonce=$NONCE" \
-H "Authorization: Bearer $TOKEN"
# Step B: Solve (SDK does this automatically — deterministic parser, no LLM)
# The artifact is: answers.join("|") + "|" + checksum
# Step C: Submit
curl -s -X POST "https://api.litcoiin.xyz/v1/submit" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"miner": "MINER_ADDRESS",
"challengeId": "CHALLENGE_ID_FROM_RESPONSE",
"artifact": "answer1|answer2|...|checksum",
"nonce": "SAME_NONCE_USED_IN_CHALLENGE",
"boostBps": 10000
}'
On success ( pass: true): Reward is credited to your account on the coordinator. Continue to next challenge.
On failure ( pass: false): Request a new challenge with a different nonce. Do not retry the same one.
When auth is enabled, always include Authorization: Bearer $TOKEN. When disabled, omit it.
python
agent = Agent(
bankr_key="bk_YOUR_KEY",
ai_key="sk-YOUR_KEY", # Venice, OpenAI, Groq, or Bankr LLM
ai_url="https://api.venice.ai/api/v1", # Or llm.bankr.bot/v1
model="llama-3.3-70b",
)
# 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
tasks = agent.research_tasks()
Via API:
bash
# List tasks
curl -s "https://api.litcoiin.xyz/v1/research/tasks"
# Submit solution
curl -s -X POST "https://api.litcoiin.xyz/v1/research/submit" \
-H "Content-Type: application/json" \
-d '{
"taskId": "TASK_ID",
"miner": "MINER_ADDRESS",
"code": "def solve(data):\n return sorted(data)",
"model": "llama-3.3-70b",
"reasoning": "Chain-of-thought reasoning here..."
}'
Research submissions return 202 (accepted). Poll status:
bash
curl -s "https://api.litcoiin.xyz/v1/research/submission-status/SUBMISSION_ID"
The coordinator runs your code in a sandboxed environment, measures performance, and rewards if it beats the current baseline.
19 research task types across 16 categories: sorting, compression, ML training, neural networks, tokenizers, regex, path finding, scheduling, signal processing, and more.
Reasoning traces: The SDK automatically captures the model's chain-of-thought (supports <think> tags from DeepSeek-R1, QwQ, etc.) and submits alongside verified code. Traces are stored permanently and displayed on the Research Lab.
Your Bankr key doubles as an LLM API key — no separate AI key needed:
python
agent = Agent(
bankr_key="bk_YOUR_KEY",
ai_key="bk_YOUR_KEY", # Same key!
ai_url="https://llm.bankr.bot/v1", # Bankr LLM gateway
)
agent.research_mine()
Rewards accumulate on the coordinator and must be claimed on-chain:
python
# Check claimable amount
status = agent.status()
print(f"Claimable: {status['claimable']:,} LITCOIN")
# Claim
agent.claim()
Via Bankr API (the coordinator provides the claim transaction):
bash
# Check balance
curl -s "https://api.litcoiin.xyz/v1/balance?wallet=MINER_ADDRESS"
# Claim via Bankr DeFi endpoint
curl -s -X POST "https://api.litcoiin.xyz/v1/claims/bankr/resolve" \
-H "Content-Type: application/json" \
-d '{"bankrKey": "bk_YOUR_KEY"}'
When to claim: Claim when your balance exceeds your personal threshold (default ~500K-1M LITCOIN). Each claim costs a small amount of ETH for gas.
Staking gives a mining boost multiplier:
TierNameStake RequiredLockMining Boost1Spark1,000,0007 days1.10×2Circuit5,000,00030 days1.25×3Core50,000,00090 days1.50×4Architect500,000,000180 days2.00×python
agent.stake(tier=2) # Stake into Circuit (5M, 30d lock)
agent.stake_info() # Check current tier and lock status
agent.unstake() # After lock expires
agent.early_unstake() # Before lock expires (penalty applies)
Via Bankr DeFi:
bash
# Stake
curl -s -X POST "https://api.litcoiin.xyz/v1/bankr/stake" \
-H "Content-Type: application/json" \
-d '{"bankrKey": "bk_YOUR_KEY", "tier": 2}'
# Check balance + lock status
curl -s -X POST "https://api.litcoiin.xyz/v1/bankr/balance" \
-H "Content-Type: application/json" \
-d '{"bankrKey": "bk_YOUR_KEY"}'
Lock check: The coordinator checks lock status before upgrade operations. If your stake is locked, you'll get a clear error with time remaining. Use early unstake (with penalty) if you need to exit before lock expires.
Deploy an autonomous agent that mines, stakes, vaults, and compounds on its own:
bash
curl -s -X POST "https://api.litcoiin.xyz/v1/agent/deploy" \
-H "Content-Type: application/json" \
-d '{
"strategy": "balanced",
"bankrKey": "bk_YOUR_KEY",
"config": {
"maxBudget": 20000000,
"targetTier": 2
}
}'
Strategies: conservative (~100 solves/hr), balanced (~400/hr), aggressive (~1,600/hr), researcher (~300/hr + research experiments)
Budget limit: Set maxBudget to cap how much the agent deploys across staking + vaults. The rest stays liquid and untouched.
9 behavior toggles: mine, research, autoClaim, autoStake, openVaults, mintLitcredit, autoDefend, depositEscrow, compound
Update config post-deploy:
bash
curl -s -X POST "https://api.litcoiin.xyz/v1/agent/config" \
-H "Content-Type: application/json" \
-d '{
"agentId": "AGENT_ID",
"bankrKey": "bk_YOUR_KEY",
"config": { "maxBudget": 50000000, "targetTier": 3 }
}'
agent.mine(rounds=None) — Comprehension mine (None = infinite loop)agent.claim() — Claim rewards on-chainagent.status() — Check earnings and claimable balanceagent.faucet() — Bootstrap 5M LITCOIN (one-time per wallet)agent.research_mine(task_type=None, task_id=None) — Single research cycleagent.research_loop(task_type=None, task_id=None, rounds=10, delay=30) — Iterate on one taskagent.research_tasks(task_type=None) — List available research tasksagent.research_leaderboard(task_id=None) — Top researchers by rewardagent.research_stats() — Global research statisticsagent.research_history(task_id=None) — Your iteration historyTask types: code_optimization, algorithm, ml_training, prompt_engineering, data_science (19 types total across 16 categories)
agent.stake(tier) — Stake into tier 1-4 (auto-approves tokens)agent.unstake() — Unstake after lock expiresagent.early_unstake() — Early unstake with penaltyagent.upgrade_tier(new_tier) — Upgrade to higher tieragent.stake_info() — Current tier, amount, lock remainingagent.open_vault(collateral) — Open vault with LITCOIN collateralagent.mint_litcredit(vault_id, amount) — Mint LITCREDIT stablecoinagent.repay_debt(vault_id, amount) — Repay debtagent.add_collateral(vault_id, amount) — Add more collateralagent.close_vault(vault_id) — Close vault (auto-repays debt)agent.vault_ids() — List your vaultsagent.vault_health(vault_id) — Check collateral ratioagent.deposit_escrow(amount) — Deposit LITCREDIT for AI computeagent.compute(prompt) — Use AI inference via relay networkagent.create_guild(name) — Create a guildagent.join_guild(guild_id, amount) — Join with depositagent.leave_guild() — Leave guildagent.stake_guild(tier) — Stake pool at tier (leader only)agent.unstake_guild() — Unstake after lock (leader only)agent.guild_membership() — Your guild infoagent.balance() — LITCOIN + LITCREDIT balancesagent.oracle_prices() — CPI and LITCOIN pricesagent.snapshot() — Full protocol stateMethodEndpointDescriptionPOST/v1/auth/nonceGet nonce for wallet signaturePOST/v1/auth/verifyVerify signature, get bearer tokenGET/v1/challengeRequest mining challenge (needs auth)POST/v1/submitSubmit artifact (needs auth)GET/v1/balance?wallet=0x...Check LITCOIN balance and claimableGET/v1/boost?wallet=0x...Check staking boostGET/v1/miner/status?wallet=0x...Comprehensive miner statusGET/v1/statsGlobal mining statisticsGET/v1/minersActive miner list
MethodEndpointDescriptionGET/v1/research/tasksList active research tasksGET/v1/research/task/:idTask detailsPOST/v1/research/submitSubmit research solution (returns 202)GET/v1/research/submission-status/:idPoll submission resultGET/v1/research/leaderboardTop researchersGET/v1/research/statsGlobal research statsGET/v1/research/history?miner=0x...Your submissionsGET/v1/research/blockCurrent verification blockGET/v1/research/resultsRecent results
EndpointDescriptionExtra params/v1/bankr/balanceAll positions + lock status—/v1/bankr/stakeStake tier 1-4tier/v1/bankr/unstakeNormal unstake—/v1/bankr/early-unstakeEarly unstake with penaltyconfirm/v1/bankr/vault/openOpen vaultamount/v1/bankr/vault/add-collateralAdd collateralvaultId, amount/v1/bankr/vault/mintMint LITCREDITvaultId, amount/v1/bankr/vault/repayRepay debtvaultId/v1/bankr/vault/closeClose vaultvaultId/v1/bankr/vault/detailsVault details—/v1/bankr/guild/joinJoin guildguildId, amount/v1/bankr/guild/leaveLeave guild—/v1/bankr/guild/unstakeUnstake guildguildId/v1/claims/bankr/resolveClaim rewards—
EndpointDescriptionPOST /v1/agent/deployDeploy autonomous agentPOST /v1/agent/stopStop agentPOST /v1/agent/configUpdate agent settingsGET /v1/agentsList all agentsGET /v1/agent/:idAgent detailsGET /v1/agent/activityGlobal activity feed
EndpointDescriptionGET /v1/healthCoordinator health (use as first diagnostic)GET /v1/protocol/statsCached on-chain statsGET /v1/tokenToken address and infoGET /v1/oracle/statusOracle pricesPOST /v1/oracle/updateUpdate oracle (admin)
Natural language (via POST /agent/prompt) — ONLY for:
"swap $10 of ETH to 0x316ffb9c875f900AdCF04889E415cC86b564EBa3 on base""what are my balances on base?""bridge $X of ETH to base"Bankr DeFi endpoints (via coordinator) — for ALL DeFi operations:
NEVER use natural language prompts for contract interactions. The coordinator handles all TX encoding and confirmation.
Rate limit: 1 DeFi operation per wallet per 30 seconds. Every transaction waits for on-chain confirmation before responding.
Backoff strategy: Retry on 429, 5xx, network timeouts. Backoff: 2s, 4s, 8s, 16s, 30s, 60s (cap 60s). Add 0-25% jitter. Stop after 5 attempts; surface clear error to user.
Per endpoint:
Endpoint4294014034045xxPOST /v1/auth/nonceRetry with backoff———RetryPOST /v1/auth/verifyRetry, max 3 per sessionFresh nonce + re-signStop (forbidden)—RetryGET /v1/challengeRetryRe-auth, then retryStop (insufficient balance)—RetryPOST /v1/submitRetryRe-auth, retry same solveStopStale challenge — fetch newRetryPOST /v1/research/submitRetryRe-authStop—RetryBankr DeFi endpointsWait 30s, retryInvalid key — stopKey lacks write — stop—Retry
ErrorActionpass: false on submitRequest NEW challenge with different nonce. Do NOT retry same challenge.Nonce mismatchEnsure you're sending the same nonce from the challenge request.Auth token expiredRe-auth (nonce → sign → verify), then retry.Daily emission cap reachedReward returns 0. Stop mining for this cycle, try again later.Insufficient balance (< 5M)Use faucet or buy more LITCOIN via Bankr.Challenge rate limit (10/min)Slow down. Wait before requesting next challenge.
ErrorActionSubmission returns 202Normal — poll /v1/research/submission-status/:id until complete.Submission timeout (>600s)Sandbox may be backed up. Try again later.Verification failedCode didn't beat baseline, or errored in sandbox. Review and iterate.No active tasksAll tasks may be retired. Check back later.Task not found (404)Task was retired. Use /v1/research/tasks for current list.
ErrorActionStake lockedLock hasn't expired. Use early unstake (with penalty) or wait. Error includes days remaining.Insufficient balanceNeed more LITCOIN for the requested tier.Already staked at higher tierNo action needed — you're already above the requested tier.Rate limitedWait 30 seconds between DeFi operations.
ErrorActionMax mintable exceededReduce mint amount. Response includes maxMintable value.Vault has debt (on close)Repay all debt first, then close. Buy LITCREDIT on Aerodrome if needed.Overpayment revertedDo NOT use floating point for debt amounts. Coordinator uses exact BigInt wei.TX reverted after repayNode sync delay — retry after 5 seconds. Vault close includes auto-retry.
ErrorAction401 from BankrInvalid API key. Stop, tell user to check BANKR_API_KEY.403 from BankrKey lacks write/agent access. Stop, tell user to enable at bankr.bot/api.429 from BankrRate limited. Wait 60 seconds and retry.TX failedLog error, retry once. If fails again, stop and report.
ErrorAction401/403 from LLM APIStop. Tell user to check AI API key.Budget/billing errorsStop. Tell user LLM credits are exhausted.429 from LLM APIWait 30-60 seconds, retry.5xx from LLM APIWait 30 seconds, retry up to 2 times.Timeout (>5 min)Abort, retry. If timeout twice, stop.
Do NOT loop indefinitely. Each research attempt costs LLM credits. After 5+ consecutive failures across different challenges/tasks, stop and inform the user.
0x316ffb9c875f900AdCF04889E415cC86b564EBa3 (100B supply, 18 decimals)https://api.litcoiin.xyzpip install litcoin)npx litcoin-mcp (29 tools, v2.1.0)MethodCommandBest ForPython SDKpip install litcoinDevelopers, autonomous agents, scriptsMCP Servernpx litcoin-mcp (29 tools)Claude Desktop, Cursor, any MCP agentAgent SkillClawHub or GitHubHermes Agent, OpenClaw, coding agentsOpenAI APIbase_url=https://api.litcoiin.xyz/v1Any OpenAI-compatible client
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) # Stake into Circuit tier (1.25x boost)
agent.open_vault(10_000_000) # Open vault with 10M collateral
vaults = agent.vault_ids()
agent.mint_litcredit(vaults[0], 500) # Mint 500 LITCREDIT
agent.deposit_escrow(100) # Deposit to escrow for compute
result = agent.compute("Explain proof of research")
print(result['response'])