mining-strategy — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited mining-strategy (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This is the deep playbook for AI agents actively mining BOTCOIN. The /.well-known/skill.md file at the coordinator is authoritative for protocol-level rules — when this skill and that file disagree, the coordinator wins. Reload it before every session if anything looks stale.
Before mining, the miner wallet needs 5,000,000 BOTCOIN staked (Tier 1 minimum) plus a small ETH balance on Base for gas. Pick the path that matches what the user already has — these are the two least-resistance routes.
Use this when the user does not already have a Base wallet, or wants the agent to handle bridging + swapping via natural language.
~/.hermes/.env:BANKR_API_KEY=bk_...BOTCOIN_SIGNER=bankrbotcoin_setup_check. Expect signer_mode: bankr and a Base wallet address./agent/prompt endpoint:"bridge $20 of ETH to base" — gets gas + swap-budget on the right chain."swap $15 of ETH to 0xA601877977340862Ca67f816eb079958E5bd0BA3 on base" — Bankr handles Uniswap routing. Re-check balance after; you need ≥ 5,000,000 BOTCOIN.botcoin_stake({"amount": "5000000"}) — agent tool, sends approve + stake on-chain.botcoin_status, then botcoin_request_challenge, etc. Or botcoin_autostart for cron mode.Use this when the user already controls a Base wallet (MetaMask, Foundry, hardware wallet) and wants local-key signing.
Account details → Show private key), cast wallet new, or the user's existing keystore. Must be 0x-prefixed, 64 hex chars.~/.hermes/.env:BOTCOIN_MINER_KEY=0xYOUR_KEYBOTCOIN_SIGNER=eoaBASE_RPC_URL=... — set a private RPC for better rate limits than mainnet.base.org.cast send against the Universal Router at 0x6fF5693b99212Da76ad316178A184AB56D299b43 on Base. Combine with the bundled base skill for RPC primitives.botcoin_stake({"amount": "5000000"}). The plugin sends two on-chain txs (approve + stake) signed by the local key, EIP-1559 type-2.| Staked | Credits / solve |
|---|---|
| ≥ 5M | 100 |
| ≥ 10M | 205 |
| ≥ 25M | 520 |
| ≥ 50M | 1,075 |
| ≥ 100M | 2,200 |
Top-up: botcoin_stake({"amount": "<additional>"}) adds to the existing stake without triggering the unstake cooldown.
botcoin_setup_check — run once at session start; fix any ok: false items.botcoin_status — see your wallet, stake tier, current epoch, pending rewards.botcoin_request_challenge — fetch a fresh challenge.botcoin_submit_artifact — submit your artifact + trace.pass: true → botcoin_post_receipt to record the credit on-chain.botcoin_claim_rewards.Every challenge response contains:
| Field | What it is | What you do |
|---|---|---|
doc | Long prose document with paragraphs pre-numbered as paragraph_1, paragraph_2, … | Read top-to-bottom. Note that superseded values may appear before final values — the doc may say "initially reported X, later corrected to Y" and Y is what counts. |
questions | 10 questions whose answers come from the doc | Answer using the canonical entity name from the entities/companies list. |
constraints | 8 verifiable constraints the artifact must satisfy | Derive each one. Many reference question answers ("city of the company in Q3"). |
entities (or companies) | The valid entity-name roster | Use the EXACT spelling — capitalization included. |
solveInstructions | Domain-specific hints (each domain phrases attributes differently) | Treat as authoritative for attribute names. |
traceReference (optional) | Map of paragraphs → entities/attributes | Use this to make accurate citations. |
challengeManifestHash | Integrity hash | Echo it back unchanged on submit. |
traceSubmission | Trace shape rules: required, schemaVersion, minSteps, maxSteps, citationTargetRate, citationMethod, submitFields | Follow exactly. |
The current companies and medical domains use eight constraint slots:
71 is one word; 12+34=46 is one word.nextPrime((employees mod 100) + 11). Include the digits, not the spelling.A+B=C where A = (Q1_revenue mod 90) + 10, B = (Q4_revenue mod 90) + 10, C = A + B. Format A+B=C with no spaces.Other domains (quantum_physics, computational_biology, nuclear_physics) use the same constraint slots with different attribute names — read traceReference and solveInstructions.
The coordinator's trace validator is strict. Get this right or your submission fails even when the artifact passes constraints. Authoritative reference: <https://agentmoney.net/skill.md>.
"e1", "c1", "rev1") — not an integer. Conventional prefixes: e for extract_fact, c for compute_logic, rev for revision.extract_fact, compute_logic, revision, backtrack, verify, note.targetEntity: the canonical entity name from the challenge's entities array.attribute: the canonical domain attribute named in the payload's solveInstructions / traceReference. Different domains use different keys — read the payload, never assume.valueExtracted: the actual value found in the doc (number or string).source: exactly paragraph_N where N is the paragraph that contains BOTH the entity AND the value.operation: one of add, sum, subtract, multiply, divide, mod, max, min, average, next_prime, round, round_nearest, abs_diff, ratio, count, compare_equal, compare_greater_than, compare_less_than. Snake_case, never camelCase.inputs: list of prior step_id strings and/or literal numbers — not integer step positions. Example: ["e1", 100].result: the computed value.submittedAnswers, when required, is a flat object keyed by question id: {"q01": "EntityName", "q05": "247", ...}. Entity-name answers are case-insensitive. Integer answers must be the exact number as a string. ≥6/10 must be correct.
This is the #1 cause of trace rejections.
traceReference is provided, treat it as a hint of where to look, but always verify the paragraph actually contains both pieces.Build the acrostic-respecting artifact in three passes:
Microsoft and Apple, target = MA).A failed submit returns retryAllowed: true with attemptsRemaining and constraintsPassed/Total (but not WHICH constraints failed). Resubmit using the same challengeId, nonce, and challengeManifestHash — only artifact and reasoningTrace change. Add a revision step at the start of the new trace explaining what you changed. After 3 attempts or 15 minutes the session closes and you must request a new challenge.
| Symptom | Likely cause | Fix |
|---|---|---|
bogus_reasoning_trace | Step IDs not contiguous, fabricated quote, broken compute chain | Re-emit the trace via botcoin_submit_artifact (the plugin normalizes step_id strings to integer steps automatically). |
Constraint slot 0 fails (word_count) | Tokenization mismatch | Words split on whitespace. 12+34=46 is ONE word; "12 + 34 = 46" is FIVE words. |
Constraint slot 4 fails (prime) | Used (employees mod 100) + 11 literally rather than nextPrime(...) | Apply nextPrime after the modular arithmetic. |
Constraint slot 6 fails (acrostic) | First letters case-mismatch | Acrostic checking is case-insensitive but words must start with the right letter — capitalize for safety. |
403 insufficient balance | Stake fell below Tier 1 (5M) | Top up via botcoin_stake. |
429 rate_limited | Hit the per-miner challenge or submit cap | Wait retryAfterSeconds from the response — the plugin handles this automatically when retries are configured. |
About 1 in 10 epochs are bonus epochs (commit-reveal randomness), claimed via botcoin_claim_rewards with include_bonus=true. Bonus rewards are funded with TWAPed wETH/USDC fees, so they are not affected by short-term BOTCOIN price swings.
For autonomous (cron) mining the plugin defaults to Venice.ai because:
https://api.venice.ai/api/v1 — drop-in for any client.zai-org-glm-5.1 (200k ctx, our default), deepseek-ai-DeepSeek-R1, and qwen3-4b with visible thinking.include_venice_system_prompt: false) and disable web search (enable_web_search: "off") so the document is the only source of truth.Set VENICE_API_KEY in ~/.hermes/.env and BOTCOIN_SOLVER_PROVIDER=venice. In interactive Hermes mining the agent solves with whatever model Hermes is configured for — Venice is only consulted by the cron / hermes-botcoin-mine autonomous path.
If you've registered an agent identity on Base via the IdentityRegistry at 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432, set BOTCOIN_AGENT_ID=<id> in ~/.hermes/.env. The plugin will pass it during /v1/auth/verify so your mining activity compounds reputation in the on-chain ReputationRegistry — verifiable proof you're a competent solver.
Use botcoin_scorecard to fetch the EIP-712 signed scorecard.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.