Skip to content
On this page

Overview

orangecheck is one account, with Bitcoin behind it (ochk.app (opens in a new tab)). Underneath are six open protocols.

Building an app? Sign people in with the account: it is free, and paying your users is optional. Working with the protocols? They share one canonical message format, one BIP-322 signing primitive and one set of Nostr conventions. Learn that layer once; each protocol adds a small layer on top.

The familyLink to this section

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

  • 01 identity

    attest

    Show that an address holds bitcoin, and for how long.

    Nostr kind 30078
  • 02 confidentiality

    lock

    Encrypt to a Bitcoin address, so only its holder can open it.

    Nostr kind 30078
  • 03 legitimacy

    vote

    Polls weighed in sats, that anyone can tally.

    Nostr kind 30080–30082
  • 04 provenance

    stamp

    Prove who signed something, and when.

    Nostr kind 30083
  • 05 authority

    agent

    Give software scoped, revocable permission to act for you.

    Nostr kind 30083–30086
  • 06 commitment

    pledge

    Make a promise with bitcoin behind it, on a public record.

    Nostr kind 30078

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 composeLink to this section

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.

The product and the showcase appsLink to this section

The protocols are open and free to self-host. On them orangecheck builds one product, ochk.app, and showcase apps: full, working apps whose other job is to show a protocol doing real work. They use the same envelopes, the same BIP-322 signing and the same anchor pipeline: consumers of the protocols, not extensions to them.

AppWhat it is
ochk.appOne account, with Bitcoin behind it, at ochk.app (opens in a new tab). Apps that choose to pay their users pay them in sats. orangecheck holds earned sats while payouts are in testing.
OC VaultA password manager that cannot read your data. Secrets are sealed on your device; orangecheck stores ciphertext only.
OC ChatEnd-to-end-encrypted messaging where your Bitcoin address is the inbox. No phone number, and messages open only on your devices.
OC CosignGet behind a builder: join as a co-founder, or back them with sats that settle peer-to-peer.

Each of them operates under the charter — eight commitments that bind every orangecheck surface (no token, custody you can move out of, the protocol stays open, audit verifies without us, and so on).

How these docs are organizedLink to this section

  • 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.
  • Per-app sections — one each for ochk.app, OC Vault, OC Chat and OC Cosign: what it is, how to use it, and what it trusts.
  • 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 liveLink to this section

Repo
Canonical protocol specoc-attest-protocol (opens in a new tab) (MIT)
Reference implementationsoc-packages (opens in a new tab) (MIT) — one monorepo for every published package
OC Lock specoc-lock-protocol (opens in a new tab)
OC Stamp specoc-stamp-protocol (opens in a new tab)
OC Vote specoc-vote-protocol (opens in a new tab)
OC Agent specoc-agent-protocol (opens in a new tab)
OC Pledge specoc-pledge-protocol (opens in a new tab)
This siteoc-docs

ConventionsLink to this section

  • Short code snippets are runnable as-is. Longer ones link to a full working example in oc-packages/EXAMPLES.md (opens in a new tab).
  • "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 somewhereLink to this section