# btcintel > The citable Bitcoin intelligence layer, for agents first and humans: chain facts from our own index, joined with claims from named sources, each with its method, source, fetch, confidence and a citation you can verify. Three bands that never fuse — Chain, Curated · btcintel, Community — and never a score. ## Docs - [Getting started](https://btcintel.io/docs): Read the Bitcoin chain and btcintel's multi-source annotations over plain HTTPS; no keys for reads. - [API reference](https://btcintel.io/docs/api): Every operation of the /v1 contract, generated from openapi.yaml: parameters, schemas, errors, examples, MCP tool names. - [Semantics](https://btcintel.io/docs/semantics): Canonical hashes, one error envelope, index lag disclosed, absent is not empty, citations you can verify. - [Citing btcintel](https://btcintel.io/docs/citing): Claim ids, versions, the citation string, and how to re-verify a claim's content hash step by step. - [Mining attribution](https://btcintel.io/docs/mining): How a block gets its pool: coinbase observations, catalogue signatures, disputed attributions, never a stored winner. - [Transaction observations](https://btcintel.io/docs/observations): What the extractor observes in a transaction: features, patterns, classification, absent until it has run. - [Block audit](https://btcintel.io/docs/audit): The template diff written when a block connects: match rate, missing and added transactions, sanctioned missing. - [Sources](https://btcintel.io/docs/sources): Where claims come from: licences, attribution, personal-data assessment and the owner's sign-off every source needs. - [Tiers and keys](https://btcintel.io/docs/tiers): Quotas per minute and per day by tier, minting a token, what a key never contains, revocation. - [Identity](https://btcintel.io/docs/identity): A Nostr key needs no account; an e-mail account (t4) is optional. NIP-98 login and sessions, the NIP-49 key backup, t2 agent keys, accounts and passkeys, publishing, proposals, what btcintel never holds. - [Disputes](https://btcintel.io/docs/disputes): Dispute a Curated claim with a key, what a resolution can do (retract, expire, correct), the public record next to the claim without the opener's identity. - [Watching subjects](https://btcintel.io/docs/watching): One watchlist per key or npub, the change feed pulled with a cursor, Community counts per subject; no webhooks. - [Export: STIX 2.1 and TagPack](https://btcintel.io/docs/export): Curated claims as STIX 2.1 bundles per subject, entity, source or claim with deterministic ids and a checksum, and TagPacks per source. - [For agents](https://btcintel.io/docs/agents): Connect over MCP, the token flow, the tools table, result semantics, feedback, discovery. - [Wallet surface](https://btcintel.io/docs/wallet): The /api REST dialect wallets and libraries expect, served by vigia. ## API reference (generated from the contract) - [Chain and blocks](https://btcintel.io/docs/api/chain): Status, the tip, blocks by height or hash and their transactions. Facts from btcintel's own index; the node tip rides along for confirmations. - [Transactions](https://btcintel.io/docs/api/transactions): A transaction with resolved inputs and outputs, its confirmation status and the spend status of its outputs. - [Addresses and scripts](https://btcintel.io/docs/api/addresses): Address summaries keyed by the rendered address, history, unspent outputs, and the same summary by script hash. - [Mempool and fees](https://btcintel.io/docs/api/mempool): The node's mempool as btcintel mirrors it, the projected next blocks, replacements and fee estimates — projection and node figures kept apart. - [Intel: claims, entities, sources](https://btcintel.io/docs/api/intel): The Curated band: claims with their provenance and citation, entities and relations, sources, the change feed and the vocabularies. Absent is not empty. - [Keys and quotas](https://btcintel.io/docs/api/keys): Minting an anonymous token, reading your own key, and the ops routes that issue and revoke keys. - [Accounts and organisations](https://btcintel.io/docs/api/accounts): The t4 band (S5.5): sign-up and sign-in by password, link or passkey, the second factor and the step-up, the account's own data, organisations with members, invitations and API keys. Never an MCP tool; 501 not_configured while accounts are off. - [Feedback](https://btcintel.io/docs/api/feedback): Tell us what is wrong or missing, and the triage queue ops read. - [Community](https://btcintel.io/docs/api/community): What people say on Nostr about addresses, transactions and blocks: NIP-22 comments and NIP-32 labels indexed from our relay and the public relays, never endorsed by btcintel. The lens (labelers=) picks whose labels you see; zaps are a community signal, not an endorsement; the relay itself answers at GET /relay. - [Ops](https://btcintel.io/docs/api/ops): Operator routes: imports, operators, drafts and their approval, retractions, the audit log. Every call needs an operator credential and is audited. - [Discovery and health](https://btcintel.io/docs/api/discovery): The MCP endpoint, the discovery descriptor, llms.txt, the contract itself, and the probes. ## Legal - [Terms of use](https://btcintel.io/docs/terms): Who operates btcintel, what the service is and is not, tiers as service terms, prohibited uses, enforcement, disclaimers, Wyoming law. - [Relay and community policy](https://btcintel.io/docs/community): What the relay accepts (kinds, a Bitcoin subject, proof of work, limits), what is indexed from public relays, the lens, what moderation can and cannot do, retention. - [Takedown and correction](https://btcintel.io/docs/takedown): How to ask for removal or correction, what is needed, 72 h / 14 d, outcomes, one appeal, the public record. - [Privacy](https://btcintel.io/docs/privacy): No account needed, no logs, no third-party scripts beyond the named analytics; what an optional e-mail account, Community, feedback, keys and sessions keep. ## Project - [Changelog](https://btcintel.io/changelog): what changed, one entry per working session, with its pull requests; RSS at https://btcintel.io/changelog.xml - [Roadmap](https://btcintel.io/roadmap): the phases and their gates, the stages of the current phase with their state, and what btcintel will not build ## Machine-readable - OpenAPI 3.1 contract: https://api.btcintel.io/openapi.yaml - MCP endpoint (Streamable HTTP, JSON-RPC 2.0): https://api.btcintel.io/mcp - Discovery descriptor: https://api.btcintel.io/.well-known/btcintel.json - Sitemap: https://btcintel.io/sitemap.xml ## From the API (api.btcintel.io/llms.txt) # btcintel > The citable Bitcoin intelligence layer, for agents first and humans: chain facts from our own index, joined with claims from named sources. Every claim carries its method, source, fetch, confidence class and level, validity and a citation you can verify. Three bands that never fuse — Chain, Curated · btcintel, Community — and never a score. ## Start here - [For agents](https://btcintel.io/docs/agents): connect over MCP, the token flow, the tools, quotas - [MCP endpoint](https://api.btcintel.io/mcp): Streamable HTTP, JSON-RPC 2.0; tools: delete_community_event, dispute_claim, get_address, get_annotations, get_auth_identity, get_block, get_campaign, get_claim, get_community, get_community_event, get_status, get_tx, get_watch_changes, list_campaign_members, list_labelers, list_sources, list_watched, lookup_subjects, propose_annotation, publish_community_event, search_annotations, send_feedback, unwatch_subject, watch_subject - [OpenAPI 3.1 contract](https://api.btcintel.io/openapi.yaml): every REST route; the MCP tools are generated from it - [Discovery descriptor](https://api.btcintel.io/.well-known/btcintel.json) - [API reference](https://btcintel.io/docs/api) - [Semantics](https://btcintel.io/docs/semantics): canonical hashes, one error envelope, index lag disclosed, absent is not empty, citations you can verify - [Tiers and keys](https://btcintel.io/docs/tiers): t0 anonymous by address, t1 token (POST https://api.btcintel.io/v1/keys/anon or the MCP initialize), keys for agents that sign ## Pages - [Entities](https://btcintel.io/entities): actors, families, services and pools the claims name; each at /entities/{id} - [Sources](https://btcintel.io/sources): licence, attribution, cadence and last fetch of every source; each at /sources/{id} with its legal basis - Claim permalinks: https://btcintel.io/claims/{claim_id} (versions, hashes, how to verify) - Subject pages: https://btcintel.io/address/{address}, https://btcintel.io/tx/{txid}, https://btcintel.io/block/{height or hash} — three bands each - [Mining attribution](https://btcintel.io/docs/mining), [Transaction observations](https://btcintel.io/docs/observations), [Block audit](https://btcintel.io/docs/audit) ## Citing btcintel Every claim carries `btcintel::@v sha256:`. Quote it as is. To verify, fetch the version (`GET /v1/claims/{id}?version=N` or the `get_claim` tool) and compare `content_sha256` with the citation; the ETag of the answer is the same hash. Versions are immutable: a retracted or expired claim keeps its hash and its citation. ## Writing in the Community band Sign the event with your own Nostr key; btcintel never signs for you and never holds your key. A comment is kind 1111 with the root tags `I` = `bitcoin:tx:` | `bitcoin:address:
` | `bitcoin:block:` and `K` = `bitcoin:tx` | `bitcoin:address` | `bitcoin:block` (NIP-22, NIP-73), mined (NIP-13, the target in the `nonce` tag) to at least `community.relay.min_pow` bits of `GET https://api.btcintel.io/v1/status`. Publish it with the `publish_community_event` tool and a t2 key bound to your npub as the bearer (`POST https://api.btcintel.io/v1/keys/agent`, signed with NIP-98 by that npub, issues one), with `POST https://api.btcintel.io/v1/community/publish` and a NIP-98 header, or straight to `wss://relay.btcintel.io`. The whole path: https://btcintel.io/docs/agents. ## Rules of the data - Absent is not empty: a sibling missing from an answer (or marked `present: false` over MCP) was not computed; an empty list was computed and found nothing. - Sources may contradict; the set is returned, never a merged verdict, and attributions carry a `disputed` flag instead of a winner. - Data derived from the index is as of the index height; confirmations always use the node tip. Both heights ride on every answer.