Project
Changelog
What changed, one entry per working session, newest first; each links the pull requests and issues behind it. Entries come from the project record, not from a marketing calendar. RSS feed
- APIDocs
Quotas enforced; CP4 and the Phase 3 gate under way
The tier quotas now refuse instead of only counting. A caller over its tier's rate gets a 429 with Retry-After, and the nightly harness runs as a t1 agent that stays inside them. The owner confirmed that agents issue their own keys (P70) and gave CP4 the go-ahead (P72). Signing stays off until the review's verdict.
Routes:
/v1/keys/anon - APIDocs
CP4 round 1 — the four blocking findings fixed
The first round of the custodied-signing review (CP4) found four blocking problems, and all four are fixed in production. The signer now caps key exports on its own. Its database no longer holds the encryption key in its environment. A stolen session cookie can no longer enrol the account's first second factor. Every…
Routes:
/v1/auth/totp/enrol·/v1/auth/webauthn/register/begin·/v1/auth/npub/export·/v1/auth/npub/link - APIExplorerDocs
S5.6 custodied signing keys built and deployed switched off
The custodied signer (S5.6, P56) is built end to end and deployed switched off: a separate btcsigner service with its own Postgres instance and envelope encryption, the API's npub routes (create, link an own key by proof, sign at the publish door, export at aal 2, unlink once exported), a NIP-46 bunker over the relay…
Routes:
/v1/auth/npub/custodied·/v1/auth/npub/challenge·/v1/auth/npub/link·/v1/auth/npub/{pubkey}·/v1/auth/npub/sign·/v1/auth/npub/export·/v1/auth/npub/bunker·/v1/auth/npub/clients·/v1/auth/npub/clients/{client_pubkey} - APIExplorerDocs
S5.5 phase B built and deployed behind ACCOUNTS_ENABLED=false; the GitHub Actions minutes block and its fix
Phase B of the identity plan is built: the accounts band (t4) — sign-up and sign-in by password, link and passkey, TOTP and recovery codes, the step-up, the account's own data, organisations with invitations and audit, owned API keys, transactional e-mail — is deployed in the API and switched off; the explorer's…
Routes:
/v1/ops - ExplorerDocs
Identity for humans decided (P55–P59); S5.5, S5.6 and CP4 specified; S3.6 built
The owner decided how humans get an account: t4 is the accounts band (email and password first, the email link and passkeys as equals, a second factor mandatory for organisation admins and key managers, organisations as tenants created from a work email), a custodied Nostr key lives only in btcintel's own signer with a…
- APIExplorerCommunityDocs
S6.1, S7.1 and S7.2 built; the follow-ups
STIX 2.1 bundles and TagPacks leave the API and are documented; the ops-agent runner, its playbooks and the kill switch at the key are built and not armed; the changelog and the roadmap pages are live from the codex; four follow-ups landed (the Caddy reload, the claim's canonical content, the status cache, the whole…
Routes:
/v1/export/stix·/v1/export/tagpack·/v1/claims/{claim_id}.stix·/v1/claims/{claim_id}·/v1/ops/operators/{id} - APIExplorerDocs
CP3 closed out; S9.1, S9.3 and S9.4 prepared; the web's dependency tree clean
Every CP3 should-fix is shipped and its issue closed with evidence — a failed MCP write tool is now reported without its body and the web's dependency tree audits clean — leaving only the NIP-98 phishing window for a later spec; the MCP Registry entry is served at /.well-known/mcp/server.json and launch/directories.md…
Routes:
/.well-known/mcp/server.json - APIExplorerDocs
S4.4: the legal package, drafted for sign-off
The four texts drafted in the codex with the owner's facts (Satsboard LLC, Cheyenne WY; Wyoming law; [email protected]): terms of use, relay and community policy, takedown and correction process, privacy update.
Routes:
/v1/ops/relay/policy - APIExplorerDocs
S3.5: the documentation site — reference generated from the contract, guides, llms.txt, search
web#28: scripts/gen-docs.ts reads the pinned contract (app/data/openapi.yaml, 63 operations) and writes one reference page per section (chain, transactions, addresses, mempool, intel, keys, feedback, ops, discovery — path families, since the contract carries no tags), each operation with parameters, schemas as nested…
- ExplorerDocs
CP2 closed on the owner's acknowledgement; the origin answers only Cloudflare
CP2 acknowledged and closed (#32): the owner accepted the review table and decided the open findings.
- APIExplorerCommunityDocs
Formal specifications per Phase 3 ticket
specs/: one formal specification per ticket (S0.1–S9.4, CP1–CP3, 42 files) — purpose, scope, numbered functional requirements, data model, API contract, rules and algorithms, non-functional requirements, observability, test plan mapped to the requirements, rollout and rollback, definition of done. Design tickets keep…
Routes:
/v1/taxonomy/concepts - Docs
Phase 3 plan and tickets
strategy/phase-3-plan.md: nine stages (S0 repo preparation → S8 gate), three review checkpoints (CP1 after the Curated core, CP2 after tiers and MCP, CP3 before Community writes), design-first process for the web with owner approval, dependency order.
- APIDocs
product decision session and clean vision
Point-by-point product session with the owner: 49 decisions (P1–P49) in governance/decisions/README.md, taking nothing in the repos as confirmed or discarded beforehand. Headline outcomes: the citable set with no score; Bitcoin on-chain and mempool only; three bands Chain / Curated · btcintel / Community that never…
- APISourcesCommunityDocs
intel layer: research, ADR-0004, coherence pass
Landscape research for the intel layer merged (btcintel-codex#6): sources with licence and confidence class, attribution products, standards (DW-VA, GraphSense, STIX 2.1, MISP, ATT&CK, Nostr NIPs), Phase 3 starting set — research/2026-09-21-intel-layer-landscape.md.
- APIExplorerDocs
2026-09-10 — GitHub repos renamed to btcintel-*
GitHub Settings → Rename on the three product repos (org stays satsboard-io): satintel-web → btcintel-web, satintel-api → btcintel-api, satintel-handbook → btcintel-codex.