Six verbs of sovereign sociality, on Bitcoin.
Identity, confidentiality, legitimacy, provenance, authority, commitment. Six composable protocols. No custody. No token. No issuer. Everything the modern web does through captured intermediaries — done with one Bitcoin address and no permission.
A small Bitcoin UTXO, left alone, is the only credible economic signal on the open internet. Every alternative way of asking “is this user real?” or “is this commitment serious?” or “is this voter weighted?” either costs trust or recreates a captured intermediary. Bitcoin opportunity cost is universally observable, unforgeable, and meaningful regardless of jurisdiction.
| approach | what it costs |
|---|---|
| proof of work | costs electricity |
| kyc | costs dignity — and creates a honeypot |
| captchas | cost attention, break constantly |
| social vouching | costs a pre-existing graph |
| oauth claims | costs a captured issuer |
| custodial escrow | costs trust in the operator |
| bonded sats | costs opportunity cost on bitcoin you already held |
Every protocol in the family is built on the same primitive: a BIP-322 signature from a Bitcoin address over a canonical human-readable message. Learn that one shape, and the rest of the family pattern-matches.
Six independent protocols. Each one ships a spec repo, reference impls in TypeScript and Python, conformance test vectors, a public documentation site, and a hosted reference application. None depends on another at the protocol level — but every one optionally composes with the others.
sybil resistance
"I have stake now." Sign one Bitcoin message; any verifier checks N sats unspent for N days. The base-layer primitive every other sibling can optionally reference as a stake-at-signing signal.
end-to-end encryption
"I can receive now." Sealed envelopes addressed to a Bitcoin address. X25519 device keys bound via BIP-322. No centralized key server, no account, no message broker.
stake-weighted polls
"I chose now." Three canonical weight modes (one_per_address / sats / sats_days). Deterministic, pure, cross-impl-testable tally. Polls and ballots are signed JSON.
block-anchored statements
"I said this now." BIP-322 authorship + OpenTimestamps Bitcoin-block priority. Replaces PGP + OTS + C2PA in one self-contained envelope. Verifies offline, forever.
scoped delegation
"I authorize now." Every agent gets a Bitcoin address. Principals grant scoped, revocable, BIP-322-bound action rights. Every agent action is signed, scoped, non-repudiable.
The family is closed at six. If a candidate seventh verb appears that meets all three Bitcoin-load-bearing tests AND the no-custody discipline, we'll re-open the count. Until then, six.
Every primitive in the family passes the same test: if it works identically on Ed25519, it doesn't belong here. Three properties make Bitcoin specifically necessary, and stripping any one degrades the protocol to a known commoditized design (PGP, x509, OAuth claims, EAS attestations, DocuSign).
universal stake oracle
sats × days is the only credibly-neutral economic signal on the open internet. ed25519 has no economic layer.
non-malleable time
bitcoin block headers are the only credibly-neutral long-horizon time primitive. l2s and altcoins reintroduce operator trust or reorg risk.
global identity namespace
bitcoin addresses are globally enumerable with no registrar. pseudonymous ed25519 keys have no economic or temporal grounding to anchor a public ledger to.
no protocol in the family ever holds sats. funds never move. bonds and stake are economic signals, not balances under contract control.
no actor — protocol, counterparty, voter, oracle — can seize bonded sats. ever. teeth come from public records, not lockup.
every protocol ships raw metrics (sats_bonded, days_unspent, kept_count, broken_count) and refuses to ship a canonical score. platforms compose policy from raw queries.
one address can be one human, ten humans, or zero. for one-human-one-vote, look at world id or brightid; this stack is a different shape.
produces evidence admissible in jurisdictions that recognize digital signatures. does not produce judgments. does not replace courts when enforcement requires state violence.
no vm, no gas, no on-chain state writes. everything is off-chain canonical envelopes plus reads of public bitcoin and nostr state.
The same shape across every protocol — sign once with your Bitcoin wallet, optionally publish, anyone verifies offline.
sign one canonical message
your wallet produces a BIP-322 signature over a deterministic, human-readable text. you read what you sign before signing — no hidden fields. byte-exact serialization across every reference impl.
publish (optional)
the signed envelope can be posted as a Nostr kind-30078 replaceable event for durable public discovery. or kept private. or attached to a URL. or printed on a QR code. envelopes are transport-agnostic.
any verifier reads it offline
given (envelope, public bitcoin chain state), any conforming impl on any machine produces the same yes/no answer. the reference verifier at ochk.io is a convenience mirror — never the authority.
The protocols are independent — none depends on another to function — but every pair composes natively. A few of the canonical patterns:
ocGate({ minSats, minDays }) drops into express, next, fastify, hono, or workers. one config block, one bot filter.
stamp envelopes optionally embed an attest attestation_id as a stake-at-signing signal. verifiers re-resolve the signer's bond against current chain state.
vote's sats_days weight mode resolves voter weight directly from on-chain UTXOs. attest can additionally gate who is allowed to cast a ballot.
a principal grants an agent a scoped delegation; the agent can then sign stamps, lock seals, vote ballots, or pledges within its scope. revocable.
pledges can resolve via stamp_published — the canonical way to swear "I will publish X by time T."
pledges can defer dispute resolution to an OC Vote with a pre-specified voter set and threshold.
counterparties to a bilateral pledge or a sensitive coordination can use Lock to seal envelopes addressed to each other before publishing anything.
Forum operators, Nostr relay operators, airdrop distributors, DAO coordinators, SLA-bound services, content auditors. Drop ocGate() in front of an HTTP route or compose pledgeHistory predicates for richer policies. One config block, one drop-in middleware line.
Wallet developers, Nostr clients, content tools, agent frameworks, governance dashboards. Five published surfaces — @orangecheck/{sdk,gate,react,cli,wallet-adapter} plus the per-protocol cores — cover the typical integrator surface.
Anyone signing into a forum, casting a vote, sealing a message, anchoring a release, delegating to an agent, or staking their word on a future commitment — without handing KYC to every platform they touch. One signature, one shareable URL, no account anywhere.
UniSat, Xverse, Leather, Alby — any BIP-322-capable extension. One click. The reference apps never touch private keys, balances, or transaction history beyond public chain data.
Sign the canonical message in Sparrow, Bitcoin Core, Electrum, or any hardware wallet via PSBT. Paste the signature back. Equally secure. No browser extension required, no account anywhere, fully air-gappable.
non-custodial
you control your keys, always. funds never move. no bond is ever locked away from the holder.
no personal data
no emails, names, phone numbers, or KYC selfies, anywhere in the family.
no telemetry
reference SDKs talk only to public Bitcoin explorers and Nostr relays you pass in.
offline-verifiable
given an envelope and public chain state, anyone on any machine — including an air-gapped one — can verify independently. ochk.io is a convenience mirror, never the authority.
public-by-design
addresses, bonds, claimed handles, and pledge outcomes are public. that is the property that makes verification trustless. use fresh, single-purpose addresses if linkability matters.
open source
every protocol spec under CC-BY-4.0; every reference impl under MIT.
// all you need is a bitcoin wallet that signs messages (BIP-322 preferred)
// Building on OrangeCheck? get in touch — happy to help integrators wire up gates, pledge predicates, or custom resolution mechanisms.