docs / overview

Overview

OrangeCheck is a family of Bitcoin-stake primitives for the open web. These docs cover the whole family — shared plumbing up top, then one dedicated section per protocol. Everything links back to the same canonical message format, same BIP-322 signing primitive, same Nostr kind-30078 conventions. Learn the shared layer once; each protocol adds a small sibling-specific layer on top.

The family

ProtocolWhat it doesStatus
OC AttestSybil resistance via proof of Bitcoin stake. Sign one message; any verifier can check that you've held N sats for N days.live
OC LockEnd-to-end encryption addressed to a Bitcoin address. Sealed envelopes that only the key-holder of a specific address can unseal.live
OC StampBitcoin-block-anchored signed statements. BIP-322 + OpenTimestamps. Immutable authorship + priority.preview
OC VoteStake-weighted sybil-resistant polls. Three canonical weight modes. Deterministic, cross-impl-testable tally.live
OC AgentAgent-authorization records bound to a signer's Bitcoin address.design

OC Attest is the base layer — every other sibling can optionally reference an Attest proof as a "stake at signing" signal. The other four siblings are peers: none depends on the others at the protocol level.

How these docs are organized

  • Getting started — land here first. Decision tree across the five protocols, plus a running integration in under five minutes.
  • Ecosystem — the plumbing every protocol inherits. The canonical message format, BIP-322 signing, Nostr kind-30078, conformance vectors, and the shared security model. Written once; never duplicated.
  • Per-protocol sections — one each for Attest, Lock, Stamp, Vote, Agent. Each follows the same shape: overview → how it works → concepts → API → guides. Pattern-match once; navigate them all.
  • SDKs — every published @orangecheck/* package, mapped to which protocol it serves.
  • Reference — FAQ and glossary.

Where the authoritative bits live

Repo
Canonical protocol specoc-protocol (CC-BY-4.0)
Reference implementationsoc-packages (MIT) — one monorepo for every published package
OC Lock specoc-lock-protocol
OC Stamp specoc-stamp-protocol
OC Vote specoc-vote-protocol
This siteoc-docs

Conventions

  • Short code snippets are runnable as-is. Longer ones link to a full working example in oc-packages/EXAMPLES.md.
  • "Attestation" (lowercase) refers specifically to an OC Attest signed proof. Lock envelopes, Stamp envelopes, Vote ballots, etc. are not called attestations.
  • Every protocol ships a spec repo and a reference impl. If the two disagree, the spec is authoritative and the impl is the bug.

Start somewhere