oc · me
§ why me.ochk.io

Add a sign-in your users earn sats from.

me.ochk.io is the consumer identity sites integrate so their users earn sats for using the product. It sits next to Google / Apple / email — with one extra property: every billable event your site fires under an OC user credits sats to that user's ledger. Bitcoin-anchored receipts, offline-verifiable sessions, no provider lock-in.

§ why bitcoin · run the substitution test

Swap bitcoin for a keypair and the product stops existing.

An identity is just a keypair — any curve does that, and it's the least interesting part here. What's load-bearing is the payout rail and the bond underneath it. Replace bitcoin with an Ed25519 keypair and a card processor, and five things you can't fake anywhere else disappear.

  • [01]

    a bearer-asset payout.

    the payout is bitcoin — an asset a user can hold outright, not a balance in an account they must KYC to open. a keypair holds no value; a card payout needs a bank.

  • [02]

    final settlement.

    Lightning settlement is irreversible. card rails reverse for months — you can't pay a stranger real value and know it's theirs.

  • [03]

    a real exit.

    a bitcoin address + BIP-322 lets a user walk away with their identity and signing key intact — OC never sees key material. moving accrued sats into those keys is the designed exit, not live yet. there is no 'export your account' from an auth provider.

  • [04]

    a bond time can't fake.

    sybil resistance is priced on UTXO value × age — a permissionless stake capital can buy but cannot back-date. a keypair is free to mint by the million.

  • [05]

    receipts that outlive us.

    every event is OpenTimestamps-anchored to a bitcoin block, so it verifies after orangecheck is gone. a bare signature proves who, not when, and needs our server alive.

Everything else — the sign-in button, the dashboard, the SDK — is convenience over that rail. The auth layer is table stakes; the reason it's built on bitcoin is that only bitcoin lets a stranger be paid final, self-custodiable value, bonded against sybils, with a receipt that survives us. see the mechanics on /how ↗

§ for integrators · the row your auth provider doesn’t fill

Your auth provider doesn’t pay your users. We’re the row that fills.

Every consumer identity provider in the market today is paid by someone other than the user — by advertisers, by license fees, by token velocity. None of them route a meaningful fraction of the fee back to the user. None of them verify offline if the provider goes dark. Row-by-row comparison your privacy reviewer and your CFO can falsify on their own infrastructure.

propertysign in with googlesign in with appleauth0 / clerk / workosworld idme.ochk.io
pays the user
sats accrue per event as signed envelopes. /custody carries the settlement state.
nononotoken grant — not satsyes — bitcoin · accruing, not settling yet
billable atom
a signin within an open session is free. sites pay for sessions and actions, never for clicks.
page-view advertisingapple developer accountmonthly active userverification + tokensession + action — not click
cross-site behavior graph
yespartialyes (per tenant)nono — sites verify locally
sybil resistance built in
nonoadd-on (paid)biometricattest tier — bonded by bitcoin stake
works without provider being online
nonononoyes — offline-verifiable envelopes
self-custody graduation path
the user's exit: accrued sats moved into keys they hold. /custody carries the live state.
designed · not live yet — no federation bound
open spec verifier teams can run
nononopartialyes — full
startup cost for an integrating site
free + ad lock-in$99/yr apple developer$240/mo + 7,000 MAUfree + token velocitypay-per-event, no minimum
§ from cold to shipped · five steps
  1. [01]

    create your account.

    sign in with email or your bitcoin wallet at me.ochk.io. one identity, every sibling site recognizes you. no separate developer signup.

  2. [02]

    verify your domain.

    add a DNS TXT record (or a meta tag on your homepage). takes ~30 seconds; gates live billing only.

  3. [03]

    drop in the snippet.

    every project page hands you copy-paste code for your stack — Next.js Pages and App, React, Vue, Svelte, Express, Fastify, Hono, plain HTML.

  4. [04]

    smoke-test the loop.

    fire a real envelope under your project_key from the console. see it land in the live event stream within seconds. test webhook delivery with one click.

  5. [05]

    flip to live.

    set per-event prices, choose how much accrues to your user vs. your rebate. OC retains a fixed 20%; the rest is yours and your users'.

Per-event price floor is 1 sats — the atomic unit, not a sybil control; integrators set their own floors. OC keeps a flat 20% of every gross_fee (funds custody, signing, OTS anchoring, abuse review, ratified per charter); the post-platform 80% splits between you (integrator rebate) and your user (cashback) however you configure it.

§ what every integration inherits

Same charter. Same chain. Same offline verifier.

What makes this safe to integrate is not a marketing claim — it’s a posture you can falsify on infrastructure you control. The three invariants below hold for every site that adds an OC sign-in button.

  • § charter

    no token, no lock-in, no protocol fork.

    The OrangeCheck charter is the binding company-level commitment that every product surface enforces. No proprietary token, no closed protocol, no lock-in. Custody is the clause that names its exception instead of promising it away — charter 02 is "no custody you didn't choose", and today OrangeCheck holds the sats your users earn here during bring-up, until federation custody and graduation to their own keys replace it. Every clause has a mechanic on /how that makes it falsifiable, not just promised — custody included.

    docs.ochk.io/charter
  • § bitcoin-anchored

    every event content-addressed + OTS-anchored.

    Every billable event, every signed envelope, every charter acceptance lands an OpenTimestamps proof on the Bitcoin chain. If OC disappears tomorrow, every envelope ever issued stays verifiable forever against the chain alone.

    /how · the mechanics
  • § offline-verifiable

    verifiers run without ever calling us.

    Sites verify Ed25519-signed sessions locally against the JWK at /.well-known/jwks.json. Activity attestations verify in five checks. The verifier runs in any browser, any edge runtime, air-gapped if you bring the JWK with you.

    /verify · run it now
§ build a site

Ship a sign-in your users earn sats for using.

~10 minutes from cold to first event. Five steps from sign-up to live billing. No env vars, no JWK ceremony, no provider lock-in.

Questions? /contact.