Skip to content

Trust

What we hold, and what you can check without us.

And how to tell us when something is wrong.

On this page

The short version

  • YesThe six protocols never hold your coins or your keys.
  • YesAnything made with a protocol can be checked offline, without us.
  • YesThe protocol tools are free and need no account.
  • YesThe specs and the packages are open source. App code is mostly private; see Open source.
  • Not yetochk.app holds none of your money. While ochk.app is in testing, orangecheck holds what you earn there. A coin that backs your account never leaves your wallet. Who holds what (opens in a new tab)
  • In testingochk.app needs no KYC. It is the design; testing checks that it still holds once payouts run.
  • NoLightning payments. They are off across orangecheck since 2026-09-02. Payments to orangecheck are on-chain.
True today?The claim
YesThe six protocols never hold your coins or your keys.
YesAnything made with a protocol can be checked offline, without us.
YesThe protocol tools are free and need no account.
YesThe specs and the packages are open source. App code is mostly private; see Open source.
Not yetochk.app holds none of your money. While ochk.app is in testing, orangecheck holds what you earn there. A coin that backs your account never leaves your wallet. Who holds what (opens in a new tab)
In testingochk.app needs no KYC. It is the design; testing checks that it still holds once payouts run.
NoLightning payments. They are off across orangecheck since 2026-09-02. Payments to orangecheck are on-chain.

Security

Email security@ochk.io. You can also open a private security advisory on the relevant repository at github.com/orangecheck (opens in a new tab). Please don’t open a public issue for anything exploitable: until a fix ships, that puts everyone using it at risk.

What happens next

A reply
We aim to reply to every report within 30 days. We can’t promise a time to a fix yet.
Disclosure
Once the fix ships. We publish an advisory and credit you, unless you prefer not to be named.
Bounty
There is no paid bounty programme yet.

What’s in scope

  • Spec flaws in any oc-*-protocol repo: an ambiguous canonical message, a replay path, a weight mode that rewards collusion, a hole in anchor checking.
  • Bugs in our packages: any @orangecheck/* npm package, and the orangecheck Python package.
  • Bugs in our sites: anything on ochk.io or its subdomains, and on ochk.app. For example: sign-in or session flaws, cross-site scripting, request forgery, SSRF, rate-limit bypasses, leaked secrets.
  • Cryptographic bugs in the BIP-322, X25519, AES-GCM or OpenTimestamps code paths, including under unusual inputs.

Out of scope: chain analysis of proofs you chose to publish (that is the threat model, not a bug), social engineering of operators, and volume denial-of-service.

What each protocol protects against

Every spec has a SECURITY.md that says what the protocol proves, what it does not, and which attackers it is designed for. Start with the family-wide threat model in the docs, then read the one for the protocol you use:

OC Attest (opens in a new tab)OC Lock (opens in a new tab)OC Vote (opens in a new tab)OC Stamp (opens in a new tab)OC Agent (opens in a new tab)OC Pledge (opens in a new tab)

Keeping dependencies patched

Our own packages reach every site through automated update pull requests. Third-party advisories are triaged by whether the code runs in production and an attacker can reach it. The web framework, which every site uses and which faces untrusted input, is patched across all sites together, never one at a time.

Transparency

Who holds what

The protocols hold nothing. ochk.app is the one place orangecheck holds anything that can move funds, and its custody page (opens in a new tab) shows every role, who holds it today, and what replaces it, read live from the running system. Today orangecheck holds them all. No real sats move yet.

Trust anchors, by name

When you use our sites, these are the parties you rely on:

ochk.io, the sign-in host
It issues the sign-in sessions every orangecheck site accepts, signed with a key it publishes at ochk.io/.well-known/jwks.json. Whoever controls that key can mint a session. They cannot forge a signature from your Bitcoin wallet.
me.ochk.io, ochk.app’s API
It signs ochk.app’s receipts with a separate key, published at me.ochk.io/.well-known/oc-envelope-jwks.json (opens in a new tab).
Nostr relays
Artifacts are published to public relays, including relay.ochk.io (opens in a new tab), which orangecheck runs. A relay can hide something. It cannot forge it.
A source of Bitcoin data
Our verifiers read the chain from mempool.space by default. The packages let you point them at your own node.
OpenTimestamps calendars
For anchoring stamps and receipts to a block. A calendar can fail to anchor something. It cannot backdate it.

Each protocol page lists its own anchors under “What you trust”.

What we store

For the protocol tools: none of the six tool sites has a database. What you make stays in your browser until you publish it to relays or share it yourself.

For your orangecheck account, ochk.io keeps your account id, a display name, how you sign in (an email, encrypted at rest, or a Bitcoin address, which is public anyway) and a record of each session, including its device and IP address. No password, no private key, no recovery phrase. The full list, field by field, including what ochk.app keeps: ochk.app/security (opens in a new tab).

What we count

Page views on ochk.io are counted by Plausible, through our own domain, and by our own beacon at insights.ochk.io. Neither sets cookies. The IP address is hashed and discarded, never stored. No advertising trackers. Privacy policy.

How orangecheck is paid for

A grant. Open-source work on orangecheck is supported by OpenSats. The grant funds the open layer: the specs, the test vectors, the verifier and the packages. It does not fund the hosted product.

Products. ochk.app charges apps a fixed 20% platform fee on the events they pay their users for. Signing people in is free. vault.ochk.io sells cloud sync in sats.

No token, no investors. There is no token and there will not be one. About orangecheck has the rest.

Lightning

Lightning is off across orangecheck since 2026-09-02. vault.ochk.io takes payment on-chain, into a watch-only wallet, so the server that takes payment holds no key that can spend it.

Open source

Everything a third party needs to implement, verify or audit the protocols is public. Most of our web app code is private.

All of it is at github.com/orangecheck (opens in a new tab). Every change to a spec is a public commit, and each spec keeps a changelog.

Status

TermsPrivacySecurityTrademark