live · mainnetoc · docs
specs · api · guides
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

Six verbs of sovereign sociality: am, whisper, decide, declare, delegate, swear.

ProtocolVerbWhat it doesStatus
OC AttestamSybil resistance via proof of Bitcoin stake. Sign one message; any verifier can check that you've held N sats for N days.live
OC LockwhisperEnd-to-end encryption addressed to a Bitcoin address. Sealed envelopes that only the key-holder of a specific address can unseal.live
OC VotedecideStake-weighted sybil-resistant polls. Three canonical weight modes. Deterministic, cross-impl-testable tally.live
OC StampdeclareBitcoin-block-anchored signed statements. BIP-322 + OpenTimestamps. Immutable authorship + priority.live
OC AgentdelegateBitcoin-identity-bound delegation authority. Scoped rights, bonded to sats, revocable on-demand. Every agent action is signed.live
OC PledgeswearForward-looking commitment primitive. BIP-322-signed declarations about future-verifiable propositions, bonded to an OC Attest.live

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

How they compose

flowchart TB
    subgraph PEERS [" "]
        direction LR
        LOCK["<b>OC Lock</b><br/><i>whisper</i>"]
        STAMP["<b>OC Stamp</b><br/><i>declare</i>"]
        VOTE["<b>OC Vote</b><br/><i>decide</i>"]
        AGENT["<b>OC Agent</b><br/><i>delegate</i>"]
        PLEDGE["<b>OC Pledge</b><br/><i>swear</i>"]
    end
    ATTEST["<b>OC Attest</b><br/><i>am · base layer</i><br/>proof of bitcoin stake"]

    LOCK -->|optional gate| ATTEST
    STAMP -->|stake at signing| ATTEST
    VOTE -->|ballot weight| ATTEST
    AGENT -->|bond| ATTEST
    PLEDGE -->|bond| ATTEST
    PLEDGE -->|resolution mechanism| STAMP
    PLEDGE -.->|dispute mechanism| VOTE
    AGENT -->|every action anchored| STAMP

    classDef base fill:#0a0a0a,stroke:#f97316,stroke-width:2px,color:#fafafa;
    classDef peer fill:#18181b,stroke:#52525b,color:#fafafa;
    classDef invisible fill:transparent,stroke:transparent;
    class ATTEST base;
    class LOCK,STAMP,VOTE,AGENT,PLEDGE peer;
    class PEERS invisible;

Eight real composition arrows across six protocols: every peer can pin its artifacts to Attest stake; Pledge resolves through Stamp and disputes through Vote; every Agent action is itself a Stamp. None of these compositions is required — but each one is what turns six small protocols into a single substrate.

Commercial products on top

The protocol family is open and free to self-host. On top of it OrangeCheck ships two managed commercial products. They use the same envelopes, the same BIP-322 signing, the same anchor pipeline — they're consumers of the protocol, not extensions to it.

ProductWhat it isAudience
OC MeConsumer-side Bitcoin-backed identity. Sign in with your address; integrators pay you sats per billable event. Federation custody by default with one-click self-custody graduation.end users + sites that want sat-paying user auth
OC FleetManaged enterprise tier for OC Agent and OC Pledge. Integration adapters, webhook signing service, audit-bundle generation, compliance review. Same envelopes as the open protocol path.enterprises running AI agents under bounded authority

Both products operate under the same charter — eight commitments that bind every OrangeCheck surface (no token, custody you can graduate out of, the protocol stays open, audit verifies without us, and so on).

How these docs are organized

  • Getting started — land here first. Decision tree across the six 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, Pledge. Each follows the same shape: overview → how it works → concepts → API → guides. Pattern-match once; navigate them all.
  • OC Me · OC Fleet — the two commercial products. Each section follows: overview → quickstart → SDK reference → integrations → webhooks → API → custody/operations.
  • SDKs — every published @orangecheck/* package, mapped to which protocol or product it serves.
  • Charter — single source of truth for the eight company commitments. Every product subdomain links here.
  • 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
OC Agent specoc-agent-protocol
OC Pledge specoc-pledge-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