boha

Use boha as a Rust library for crypto puzzle and bounty data. Trigger when code imports `boha`, references Bitcoin puzzle transactions, hash collision bounties, or needs programmatic access to crypto challenge collections. Do not use for CLI usage - see boha-cli skill instead.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "boha" with this command: npx skills add oritwoen/boha/oritwoen-boha-oritwoen-boha

Rust library for crypto bounties, puzzles and challenges data. Eight collections across six blockchains (Bitcoin, Ethereum, Litecoin, Monero, Decred, Arweave). All data embedded at compile time as &'static references.

Install

[dependencies]
boha = "0.16"

# With async balance fetching (requires tokio runtime)
boha = { version = "0.16", features = ["balance"] }
tokio = { version = "1", features = ["full"] }

Puzzle ID Format

IDs follow collection/identifier pattern. Two exceptions have no slash.

CollectionID exampleNotes
b1000b1000/66Number 1-256, accepts u32/usize/&str
arweavearweave/weave1Name string
balletballet/AA007448Serial number
bitapsbitapsSingle puzzle, no slash
bitimagebitimage/kittenName string
gsmggsmgSingle puzzle, no slash
hash_collisionhash_collision/sha256sha1, sha256, ripemd160, hash160, hash256, op_abs
zdenzden/level_1snake_case level names

API

use boha::{b1000, hash_collision, zden, Status, Chain};

// Fetch by collection-specific getter
let p = b1000::get(66).unwrap();
println!("{} - {}", p.address.value, p.status);

// Fetch by universal ID
let p = boha::get("hash_collision/sha256").unwrap();

// Iterate and filter
let targets: Vec<_> = b1000::all()
    .filter(|p| p.status == Status::Unsolved)
    .filter(|p| p.pubkey.is_some())
    .collect();

// Key range (b1000 only) - puzzle N has key in [2^(N-1), 2^N-1]
let range = b1000::get(90).unwrap().key_range().unwrap();

// Big key range for bits > 128
let (lo, hi) = b1000::get(200).unwrap().key_range_big().unwrap();

// Stats
let s = boha::stats();
println!("Total: {}, Unsolved: {}", s.total, s.unsolved);

// Explorer URLs
let url = p.chain.tx_explorer_url("txid_here");
let addr_url = p.explorer_url();

Balance fetching (feature: balance)

use boha::balance;

#[tokio::main]
async fn main() {
    let bal = balance::fetch("1A1zP1...", boha::Chain::Bitcoin).await.unwrap();
    println!("{} sats confirmed, {:.8} BTC total", bal.confirmed, bal.total_btc());
}

Supports Bitcoin (mempool.space), Litecoin (litecoinspace.org) and Ethereum (Etherscan).

Key Data Types

See types.md for full struct definitions.

Core types: Puzzle, Address, Key, Chain, Status (Solved/Unsolved/Claimed/Swept), Author, Solver, Transaction.

A puzzle has: address, chain, status, optional prize, optional pubkey, optional private key (if solved), transactions history, solver info, and assets (images/hints for visual puzzles).

Collections Overview

See collections.md for detailed collection data.

Limitations

  • All data is &'static - no heap allocation, no runtime loading.
  • key_range() works for bits <= 128. Use key_range_big() for larger.
  • Balance fetching is async and requires the balance feature flag.
  • Puzzle data lives in data/*.jsonc - don't hardcode in Rust source.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Web3

Crypto charting with USD pricing (1s)

Real-time streaming crypto token feed for charting with 1-second OHLC ticks and USD pricing across Arbitrum, Base, Matic, Ethereum, Solana, Binance Smart Cha...

Registry SourceRecently Updated
Web3

Idiom Dictionary

成语词典。成语查询、典故故事、成语接龙、成语猜谜、造句示例、分类浏览。Chinese idiom dictionary with stories, chain game, quiz. 成语、典故、国学。

Registry SourceRecently Updated
Web3

Crypto Defi

DeFi收益计算器。APY计算、无常损失、流动性挖矿、质押收益、Gas费、协议对比。DeFi yield calculator with impermanent loss, staking. DeFi、加密货币、收益。

Registry SourceRecently Updated
2280Profile unavailable
Web3

Warp Oz

Dispatch coding tasks to Warp Oz cloud agents and chain them into multi-agent pipelines — all from chat. Includes a bash wrapper covering every Oz API endpoi...

Registry SourceRecently Updated
60Profile unavailable