SDKs
Every published package in the OrangeCheck ecosystem, with what it does, which
protocol it serves, and a link to the full API reference. All packages are
MIT-licensed and live in the
oc-packages monorepo — the
Python SDK too, under sdk-py/.
The detailed per-export, per-type, per-signature reference under each TypeScript package is auto-generated from the source via TypeDoc on every release. TSDoc comments in the
.tssource are the source of truth; per-package READMEs are short taglines + install + a 30-second example. Hand-written narrative (quickstart, "why this protocol") lives under each protocol's section (OC Attest, OC Pledge, etc.).
Which to install
Match the job to the package; click through to the reference.
| You're building… | Install |
|---|---|
| Gate an HTTP route | @orangecheck/gate |
| Sign-in-with-Bitcoin flow | @orangecheck/sdk · issueChallenge / verifyChallenge |
| React app rendering badges | @orangecheck/react |
| Browser wallet integration | @orangecheck/wallet-adapter |
| Server-side TypeScript verifier | @orangecheck/sdk |
| Python / Django / FastAPI service | orangecheck (PyPI) |
| Scripts + one-shot checks | @orangecheck/cli |
| Nostr relay filter | @orangecheck/relay-filter |
| Airdrop list filter | @orangecheck/airdrop-gate |
| E2E-encrypted envelopes | @orangecheck/lock-core + lock-device |
| Timestamped signed statements | @orangecheck/stamp-core + stamp-ots |
| Stake-weighted poll tally | @orangecheck/vote-core |
| Scoped, bonded delegated signing | @orangecheck/agent-core |
| Bonded commitments / future claims | @orangecheck/pledge-core |
Cross-cutting
Serve every sibling protocol.
| Package | Purpose |
|---|---|
@orangecheck/sdk | Core TypeScript SDK — check(), verify(), createAttestation(), issueChallenge(), scoring. |
orangecheck (Python) | Python SDK. Same surface as @orangecheck/sdk, same conformance vectors. |
@orangecheck/cli | oc shell — check / verify / create / challenge / discover. |
@orangecheck/gate | HTTP middleware for Express / Next / Fastify / Hono / Workers. |
@orangecheck/react | <OcBadge>, <OcGate>, <OcChallengeButton>. |
@orangecheck/wallet-adapter | One getSigner(wallet, { address }) API across UniSat / Xverse / Leather / Alby / OKX / Phantom. |
@orangecheck/relay-filter | Sybil-filter policy for Nostr relays. Strfry plugin + framework-agnostic core. |
@orangecheck/airdrop-gate | Sybil-resistant allowlist filter — turn a candidate list into a filtered set. |
@orangecheck/auth-core | Ed25519 JWT verify + cookie helpers — consumer half of the ochk.io auth host. |
@orangecheck/auth-client | React provider + hooks for cross-subdomain auth via the ochk.io host. |
@orangecheck/nostr-core | Browser Nostr client (publishEvent, queryEvents, DEFAULT_RELAYS). |
@orangecheck/design | The family design system — tokens, primitives, family chrome. Storybook at design.ochk.io. |
@orangecheck/legal | Family-internal Terms / Privacy / security-disclosure documents rendered by every family site. |
@orangecheck/insights-client | Server-side event emit for oc insights, the family's first-party analytics. |
Per-protocol packages
OC Lock
| Package | Purpose |
|---|---|
@orangecheck/lock-crypto | X25519 / HKDF-SHA256 / AES-256-GCM primitives. Narrow surface, audited. |
@orangecheck/lock-core | Envelope format, RFC-8785 canonicalization, seal(), unseal(). |
@orangecheck/lock-device | Device-key generation, BIP-322-bound binding statements, Nostr directory publish. |
OC Stamp
| Package | Purpose |
|---|---|
@orangecheck/stamp-core | Canonical message, envelope format, stamp() + verify(), optional OC Attest reference. |
@orangecheck/stamp-ots | OpenTimestamps calendar client, proof upgrade, pluggable anchor verifier. |
OC Vote
| Package | Purpose |
|---|---|
@orangecheck/vote-core | Reference implementation of oc-vote-protocol — canonicalize, pollId, commit, voterWeight, deterministic tally(). |
@orangecheck/vote-react | React components for OC Vote — badge, poll, useTally. |
OC Agent
| Package | Purpose |
|---|---|
@orangecheck/agent-core | Envelope formats, scope grammar, verifyDelegation(), verifyAction(), verifyRevocation(). |
@orangecheck/agent-signer | Producer side — createDelegation(), signAsAgent(), revoke() over your wallet. |
@orangecheck/agent-mcp | Model Context Protocol bindings for agent envelopes. |
@orangecheck/agent-anthropic | Adapter for Anthropic SDK tool-use canonicalization. |
@orangecheck/agent-openai | Adapter for OpenAI SDK tool-call canonicalization. |
@orangecheck/agent-langgraph | Adapter for LangGraph tool-call canonicalization. |
@orangecheck/agent-vercel | Adapter for Vercel AI SDK tool-call canonicalization. |
OC Pledge
| Package | Purpose |
|---|---|
@orangecheck/pledge-core | Pledge / outcome / abandonment envelopes, resolution grammar, createPledge(), verifyPledge(), createOutcome(), verifyBond(), classifyState(). |
Commercial products
| Package | Purpose |
|---|---|
@orangecheck/me-client | me.ochk.io client SDK — auth, accounts, billable events. |
@orangecheck/vault-core | OC Vault crypto, entry model, ocv:// secret-reference resolver, API client. |
Command-line tools
| Package | Command | Purpose |
|---|---|---|
@orangecheck/cli | oc | OC Attest — check / verify / create / challenge / discover. |
@orangecheck/agent-cli | oc-agent | Verify, inspect and canonicalize delegation / action / revocation envelopes. |
@orangecheck/stamp-cli | stamp, git-stamp | Sign files and git tags with your Bitcoin address; anchor to Bitcoin. |
@orangecheck/vote-cli | oc-vote | Tally, verify and inspect polls. |
@orangecheck/vault-cli | oc-vault | Resolve ocv:// secret references and inject secrets into a process. |
Deprecated — do not install
Still on npm so old lockfiles resolve. Nothing new should depend on them.
| Package | Status |
|---|---|
@orangecheck/ui | Deprecated. Replaced by @orangecheck/design. |
@orangecheck/webhook-verify | Deprecated. It verified webhook deliveries from fleet.ochk.io, which is retired. No replacement. |
@orangecheck/agent-console-client | Unmaintained, not marked deprecated on npm. Its only target, console.ochk.io, is retired; the source is no longer in oc-packages. |
Semver
Everything below 1.0 is pre-stable. Minor bumps CAN change exported types; patch bumps won't. Check the per-package README before upgrading; diff the changelog if something looks ambiguous.
@orangecheck/sdk, @orangecheck/agent-core, @orangecheck/pledge-core,
@orangecheck/lock-core, @orangecheck/stamp-core, @orangecheck/vote-core
are at v1.0.0+ — wire-format-stable; type changes are semver-respecting.
Cross-implementation conformance
The TypeScript SDK and the Python SDK ship vendored copies of the same canonical test vectors from the protocol repos. CI re-runs both suites on every push and fails on drift. This means: a canonical message built in TS and a canonical message built in Python for the same inputs are byte-identical. Ditto attestation IDs, poll IDs, stamp envelope IDs, pledge IDs. If you ever observe otherwise, it's a bug — please file it.
Local generation of the auto-gen reference
Clone oc-packages and
oc-docs as siblings, then:
cd oc-packages
yarn install
yarn docs:gen <pkg> # regenerate one package
yarn docs:gen:all # regenerate every package
yarn docs:check # exit 1 if regenerated docs differ from committed oc-docs
The generator writes into ../oc-docs/src/pages/sdk/<pkg>/. CI gates
drift via Phase 3.5: release tags auto-PR the regenerated tree to oc-docs
(gated on OC_DOCS_BOT_TOKEN).