Three flows. The rest is the product.
Sign up, sign in, graduate to self-custody. Each flow is shown with the actual envelope shape a site would receive, the actual session-policy semantics, and the actual graduation mechanics. No marketing diagrams — this is what happens.
sign up.
email, phone, or a bitcoin wallet you already use. behind the scenes you get an oc identity, a federation-custodied lightning wallet, and an attest tier you can upgrade later.
- 01 · enter email or phoneno password, no kyc. one-time code sent for verification.
- 02 · federation provisions a walletguardians collectively generate a fedimint-style threshold key. you get an oc identity bound to a public Bitcoin address.
- 03 · attest tier set to anonymoussites that don't require sybil-resistance accept you immediately. you can upgrade to bonded (Bitcoin stake) or kyc tiers later.
- 04 · first envelope writtena signed account-creation envelope is published to the OC relay set, anchored on the next OTS calendar batch.
# the envelope written at signup
{
"v": 1,
"kind": "oc-me-event",
"class": "A",
"subtype": "account_creation",
"identity": "bc1q...e3lr",
"site": "me.ochk.io",
"attest_tier": "anonymous",
"occurred_at": "2026-04-30T16:08:42Z",
"sig": "ed25519:2b:fF9k...HpD1"
}sign into apps.
when you visit a site that integrates me·ochk·io, you click "sign in with oc" and approve. the site declares its session policy at integration time; that policy determines billing, not your click count.
- 01 · site asks for a scopeidentity-only, identity + attest tier, identity + payment authorization. you see what is being requested.
- 02 · you approvethe request is signed by your federation-custodied key (or your self-custody wallet if you've graduated).
- 03 · session openssite's session policy kicks in (15 min for banking, 7 days for SaaS, 90 days for mobile). billable Class C event — once per session.
- 04 · subsequent signins inside the session are freenavigation, refresh, intra-session re-auth — all free, all visible in developer telemetry, none billed.
- 05 · cashback flowsthe session payment lands as a Class C credit on your /me/earn within seconds of the OTS proof landing on a Bitcoin block.
# sample envelope · class C session creation
{
"v": 1,
"kind": "oc-me-event",
"class": "C",
"subtype": "session_creation",
"identity": "bc1q...e3lr",
"site": "breez.example",
"session_duration_seconds": 604800,
"session_policy_label": "7-day session",
"occurred_at": "2026-04-30T16:11:08Z",
"gross_fee_sats": 64,
"user_earned_sats": 42,
"sig": "ed25519:2b:9pK4...rT8x"
}graduate to self-custody.
when you're ready, sweep your federation balance to a wallet you own. the same oc identity stays — only the signing method changes from federation_threshold to bip-322.
- 01 · open /me/graduatethree options: stay federation-custodied (the default), graduate to a fedimint client of your choice, or graduate to fully self-custody (any BIP-322-capable wallet).
- 02 · witness the spendfederation guardians collectively sign the sweep transaction. you watch it confirm on a Bitcoin block.
- 03 · identity rebindsyour oc identity's signing_method discriminator flips to bip-322 (or fedimint_threshold for a different federation). everything else continues — sites, history, attest tier.
- 04 · cashback continues, paid into your walletfuture class A/B/C earnings stream as lightning to your self-custody wallet (or to your fedimint client). you can graduate back to me·ochk·io federation-custody anytime if convenience matters more than sovereignty.
what about the parts you don't see
Behind the three flows, the protocol layer does a lot of unglamorous work — canonicalization (RFC 8785), Ed25519 signatures, OpenTimestamps batching, Nostr relay republication, OC Stamp anchoring. Every event your /me/earn shows is the product of all of that. The protocol layer has its own home at docs.ochk.io; this page is the consumer-readable surface.
For the integrator-side mechanics (scope grammar, session policy configuration, webhook receivers, drop-in code samples), see /integrate.