live · mainnetme · ochk · io
federation-custodied · self-custody-ready
§ how it works

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.

[01]

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.

  1. 01 · enter email or phone
    no password, no kyc. one-time code sent for verification.
  2. 02 · federation provisions a wallet
    guardians collectively generate a fedimint-style threshold key. you get an oc identity bound to a public Bitcoin address.
  3. 03 · attest tier set to anonymous
    sites that don't require sybil-resistance accept you immediately. you can upgrade to bonded (Bitcoin stake) or kyc tiers later.
  4. 04 · first envelope written
    a signed account-creation envelope is published to the OC relay set, anchored on the next OTS calendar batch.
envelope · 01
# 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"
}
[02]

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.

  1. 01 · site asks for a scope
    identity-only, identity + attest tier, identity + payment authorization. you see what is being requested.
  2. 02 · you approve
    the request is signed by your federation-custodied key (or your self-custody wallet if you've graduated).
  3. 03 · session opens
    site's session policy kicks in (15 min for banking, 7 days for SaaS, 90 days for mobile). billable Class C event — once per session.
  4. 04 · subsequent signins inside the session are free
    navigation, refresh, intra-session re-auth — all free, all visible in developer telemetry, none billed.
  5. 05 · cashback flows
    the session payment lands as a Class C credit on your /me/earn within seconds of the OTS proof landing on a Bitcoin block.
envelope · 02
# 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"
}
[03]

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.

  1. 01 · open /me/graduate
    three 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).
  2. 02 · witness the spend
    federation guardians collectively sign the sweep transaction. you watch it confirm on a Bitcoin block.
  3. 03 · identity rebinds
    your oc identity's signing_method discriminator flips to bip-322 (or fedimint_threshold for a different federation). everything else continues — sites, history, attest tier.
  4. 04 · cashback continues, paid into your wallet
    future 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.