@orangecheck/legal 0.7.9 → 0.7.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -37,9 +37,9 @@ var LEGAL_SITES = {
37
37
  me: {
38
38
  slug: "me",
39
39
  profile: "me",
40
- host: "me.ochk.io",
41
- product: "me.ochk.io",
42
- productShort: "me.ochk.io",
40
+ host: "ochk.app",
41
+ product: "ochk.app",
42
+ productShort: "ochk.app",
43
43
  contact: CONTACT_GENERAL,
44
44
  securityContact: CONTACT_SECURITY,
45
45
  selfHosted: true
@@ -464,7 +464,7 @@ var privacyChanges = {
464
464
  };
465
465
 
466
466
  // src/content/protocol.ts
467
- var COMMERCIAL_SCOPE_NOTE = "These Terms govern the **non-custodial** OrangeCheck family: [ochk.io](https://ochk.io), the verb sites \u2014 OC Attest, OC Lock, OC Vote, OC Stamp, OC Agent, OC Pledge \u2014 and [docs.ochk.io](https://docs.ochk.io). The commercial products **me.ochk.io** and **vault.ochk.io** each publish their own Terms; these Terms do not govern your use of those products.";
467
+ var COMMERCIAL_SCOPE_NOTE = "These Terms govern the **non-custodial** OrangeCheck family: [ochk.io](https://ochk.io), the verb sites \u2014 OC Attest, OC Lock, OC Vote, OC Stamp, OC Agent, OC Pledge \u2014 and [docs.ochk.io](https://docs.ochk.io). The commercial products **ochk.app** and **vault.ochk.io** each publish their own Terms; these Terms do not govern your use of those products.";
468
468
  var terms = {
469
469
  kind: "terms",
470
470
  eyebrow: "terms",
@@ -473,7 +473,7 @@ var terms = {
473
473
  metaTitle: "Terms of Service \u2014 OrangeCheck",
474
474
  metaDescription: "The terms and conditions for using OrangeCheck. Non-custodial service provided as-is. You are responsible for your wallet and private keys.",
475
475
  effective: "2025-09-30",
476
- updated: "2026-10-08",
476
+ updated: "2026-10-19",
477
477
  preamble: [
478
478
  {
479
479
  kind: "callout",
@@ -601,7 +601,7 @@ var terms = {
601
601
  blocks: [
602
602
  {
603
603
  kind: "para",
604
- text: "The protocol sites and documentation are free to use. You are responsible for Bitcoin network fees on any transactions you initiate and for your own ISP and wallet-provider costs. Paid functionality, if introduced, will be announced with advance notice; the commercial products **me.ochk.io** and **vault.ochk.io** carry their own pricing and Terms."
604
+ text: "The protocol sites and documentation are free to use. You are responsible for Bitcoin network fees on any transactions you initiate and for your own ISP and wallet-provider costs. Paid functionality, if introduced, will be announced with advance notice; the commercial products **ochk.app** and **vault.ochk.io** carry their own pricing and Terms."
605
605
  }
606
606
  ]
607
607
  },
@@ -658,11 +658,11 @@ var privacy = {
658
658
  metaTitle: "Privacy Policy \u2014 OrangeCheck",
659
659
  metaDescription: "How OrangeCheck handles data and privacy. Non-custodial by design, minimal data collection, no account required, privacy-preserving analytics only.",
660
660
  effective: "2025-09-30",
661
- updated: "2026-10-09",
661
+ updated: "2026-10-19",
662
662
  preamble: [
663
663
  {
664
664
  kind: "callout",
665
- text: "This policy covers the **non-custodial** OrangeCheck family \u2014 [ochk.io](https://ochk.io), the six verb sites, and [docs.ochk.io](https://docs.ochk.io). The commercial products me.ochk.io and vault.ochk.io publish their own privacy policies covering the additional data their products handle."
665
+ text: "This policy covers the **non-custodial** OrangeCheck family \u2014 [ochk.io](https://ochk.io), the six verb sites, and [docs.ochk.io](https://docs.ochk.io). The commercial products ochk.app and vault.ochk.io publish their own privacy policies covering the additional data their products handle."
666
666
  }
667
667
  ],
668
668
  sections: [
@@ -821,7 +821,7 @@ var privacy = {
821
821
  },
822
822
  {
823
823
  k: "account, sign-in identities, passkeys and sign-in log",
824
- v: "kept until you ask us to delete them at [[PRIVACY_CONTACT]]; there is no automatic deletion yet"
824
+ v: "deleted when your account-deletion request completes; file one in your account settings, or ask at [[PRIVACY_CONTACT]]"
825
825
  },
826
826
  {
827
827
  k: "support emails",
@@ -861,21 +861,21 @@ var privacy = {
861
861
  var protocolProfile = { terms, privacy };
862
862
 
863
863
  // src/content/me.ts
864
- var COMMERCIAL_NOTE = "**me.ochk.io is a commercial product operated by OrangeCheck.** It is distinct from the non-custodial OrangeCheck protocol sites; the Terms at [ochk.io/terms](https://ochk.io/terms) do not govern me.ochk.io. These Terms do. The same Service is also served at ochk.app, in its own design, from the same accounts and records: these Terms govern it at either address, and \u201Cme.ochk.io\u201D in them means both.";
864
+ var COMMERCIAL_NOTE = "**ochk.app is a commercial product operated by OrangeCheck.** It is distinct from the non-custodial OrangeCheck protocol sites; the Terms at [ochk.io/terms](https://ochk.io/terms) do not govern ochk.app. These Terms do. Its API is served at me.ochk.io, from the same accounts and records: these Terms govern the Service at either address, and \u201Cochk.app\u201D in them means both.";
865
865
  var terms2 = {
866
866
  kind: "terms",
867
867
  eyebrow: "terms",
868
868
  title: "Terms of service",
869
- description: "The terms governing your use of me.ochk.io and ochk.app \u2014 a Bitcoin-backed identity that pays you in sats. OrangeCheck-custodied during bring-up, federation custody and self-custody graduation as the destination, no KYC.",
870
- metaTitle: "Terms of Service \u2014 me.ochk.io",
871
- metaDescription: "Terms of service for me.ochk.io: a Bitcoin-backed identity that pays users in sats. OrangeCheck custody during bring-up, federation custody and self-custody graduation as the destination, no KYC.",
869
+ description: "The terms governing your use of ochk.app and its API at me.ochk.io \u2014 a Bitcoin-backed identity that pays you in sats. OrangeCheck-custodied during bring-up, federation custody and self-custody graduation as the destination, no KYC.",
870
+ metaTitle: "Terms of Service \u2014 ochk.app",
871
+ metaDescription: "Terms of service for ochk.app: a Bitcoin-backed identity that pays users in sats. OrangeCheck custody during bring-up, federation custody and self-custody graduation as the destination, no KYC.",
872
872
  effective: "2026-05-15",
873
- updated: "2026-10-15",
873
+ updated: "2026-10-19",
874
874
  preamble: [
875
875
  {
876
876
  kind: "callout",
877
877
  emphatic: true,
878
- text: "By accessing or using me.ochk.io, you agree to be bound by these Terms. If you do not agree, do not use the Service. These Terms contain a binding-arbitration, class-action, and jury-trial waiver and important limitations on liability."
878
+ text: "By accessing or using ochk.app or its API at me.ochk.io, you agree to be bound by these Terms. If you do not agree, do not use the Service. These Terms contain a binding-arbitration, class-action, and jury-trial waiver and important limitations on liability."
879
879
  },
880
880
  { kind: "callout", text: COMMERCIAL_NOTE }
881
881
  ],
@@ -883,15 +883,15 @@ var terms2 = {
883
883
  {
884
884
  id: "overview",
885
885
  heading: "overview",
886
- hint: "what me.ochk.io is",
886
+ hint: "what ochk.app is",
887
887
  blocks: [
888
888
  {
889
889
  kind: "para",
890
- text: 'me.ochk.io is an identity you use to sign in across participating sites ("integrators"). When an integrator records a billable event for an action you authorize, a share of the fee flows back to you in sats. Your identity is anchored in Bitcoin, verifiable offline, and portable across the OrangeCheck family.'
890
+ text: 'ochk.app is an identity you use to sign in across participating sites ("integrators"). When an integrator records a billable event for an action you authorize, a share of the fee flows back to you in sats. Your identity is anchored in Bitcoin, verifiable offline, and portable across the OrangeCheck family.'
891
891
  },
892
892
  {
893
893
  kind: "para",
894
- text: "me.ochk.io is **not a bank, exchange, broker, or wallet provider.** It is an identity and reputation service with an attached cashback mechanism. **During bring-up OrangeCheck operates every role in that mechanism, including custody of the balance it pays you.** That is a stage, not the design \u2014 see the custody section below for what holds today and what replaces it."
894
+ text: "ochk.app is **not a bank, exchange, broker, or wallet provider.** It is an identity and reputation service with an attached cashback mechanism. **During bring-up OrangeCheck operates every role in that mechanism, including custody of the balance it pays you.** That is a stage, not the design \u2014 see the custody section below for what holds today and what replaces it."
895
895
  }
896
896
  ]
897
897
  },
@@ -918,7 +918,7 @@ var terms2 = {
918
918
  blocks: [
919
919
  {
920
920
  kind: "stub",
921
- text: "The economics of earning sats on me.ochk.io \u2014 how billable events generate cashback, the fee split between you, the integrating site, federation operators, and OrangeCheck, the timing of credits, and the conditions under which earnings may be withheld, delayed, clawed back, or reversed (including for suspected abuse or wash-trading) \u2014 are being finalized for publication before general availability. Until then, earning behavior is governed by the published abuse limits in the section below and the descriptions on [how it works](/how) and [the earn page](/earn). This section will be completed following review by counsel."
921
+ text: "The economics of earning sats on ochk.app \u2014 how billable events generate cashback, the fee split between you, the integrating site, federation operators, and OrangeCheck, the timing of credits, and the conditions under which earnings may be withheld, delayed, clawed back, or reversed (including for suspected abuse or wash-trading) \u2014 are being finalized for publication before general availability. Until then, earning behavior is governed by the published abuse limits in the section below and the descriptions on [how it works](/how) and [the earn page](/earn). This section will be completed following review by counsel."
922
922
  }
923
923
  ]
924
924
  },
@@ -953,7 +953,7 @@ var terms2 = {
953
953
  blocks: [
954
954
  {
955
955
  kind: "para",
956
- text: "me.ochk.io **does not perform Know-Your-Customer checks** and does not require your legal name, government ID, or physical address. Sybil resistance is achieved through protocol composition \u2014 BIP-322 sat-bond attestation, paid-action history, and integrator-defined gates \u2014 not identity verification. You must not use me.ochk.io to evade a KYC, AML, or sanctions obligation that applies to you elsewhere."
956
+ text: "ochk.app **does not perform Know-Your-Customer checks** and does not require your legal name, government ID, or physical address. Sybil resistance is achieved through protocol composition \u2014 BIP-322 sat-bond attestation, paid-action history, and integrator-defined gates \u2014 not identity verification. You must not use ochk.app to evade a KYC, AML, or sanctions obligation that applies to you elsewhere."
957
957
  }
958
958
  ]
959
959
  },
@@ -963,7 +963,7 @@ var terms2 = {
963
963
  blocks: [
964
964
  {
965
965
  kind: "para",
966
- text: "me.ochk.io publishes its abuse limits openly so legitimate users can see they are well below them. The canonical, current values are on the [security page](/security). Activity that exceeds a review threshold may be held for human review; activity assessed as sybil farming, wash-trading, or collusion between an integrator and a user may have earnings withheld or reversed and the identity suspended."
966
+ text: "ochk.app publishes its abuse limits openly so legitimate users can see they are well below them. The canonical, current values are on the [security page](/security). Activity that exceeds a review threshold may be held for human review; activity assessed as sybil farming, wash-trading, or collusion between an integrator and a user may have earnings withheld or reversed and the identity suspended."
967
967
  },
968
968
  {
969
969
  kind: "bullets",
@@ -983,7 +983,7 @@ var terms2 = {
983
983
  blocks: [
984
984
  {
985
985
  kind: "para",
986
- text: "Sites that integrate me.ochk.io receive a **per-integrator scoped identifier** for you, not your master identity \u2014 they cannot correlate you across sites unless you explicitly grant a scope. Integrators independently decide whether and how to trust your identity, including whether to admit, gate, or reject you. OrangeCheck is not a party to, and accepts no liability for, an integrator\u2019s decisions or an integrator\u2019s own terms, pricing, or conduct."
986
+ text: "Sites that integrate ochk.app through its API at me.ochk.io receive a **per-integrator scoped identifier** for you, not your master identity \u2014 they cannot correlate you across sites unless you explicitly grant a scope. Integrators independently decide whether and how to trust your identity, including whether to admit, gate, or reject you. OrangeCheck is not a party to, and accepts no liability for, an integrator\u2019s decisions or an integrator\u2019s own terms, pricing, or conduct."
987
987
  }
988
988
  ]
989
989
  },
@@ -1000,12 +1000,12 @@ var terms2 = {
1000
1000
  },
1001
1001
  {
1002
1002
  kind: "para",
1003
- text: "Nothing me.ochk.io provides is financial, investment, legal, or tax advice. me.ochk.io does not guarantee any level of earnings; cashback depends on integrator activity outside OrangeCheck\u2019s control."
1003
+ text: "Nothing ochk.app provides is financial, investment, legal, or tax advice. ochk.app does not guarantee any level of earnings; cashback depends on integrator activity outside OrangeCheck\u2019s control."
1004
1004
  },
1005
1005
  { kind: "subhead", text: "regulatory status" },
1006
1006
  {
1007
1007
  kind: "stub",
1008
- text: "me.ochk.io is designed so that cashback is custodied and disbursed by independent Fedimint federations. **Those federations do not exist yet. During bring-up OrangeCheck itself custodies and transmits the cashback it pays to every user**, because it is operating every role in the system in order to prove it works before third parties take any of them. Self-custody (BIP-322) users keep their own keys, which OrangeCheck never holds; the cashback they accrue is held by OrangeCheck until it is paid out, as it is for every user. The full regulatory analysis of both the bring-up posture and the designed end state \u2014 including OrangeCheck\u2019s position under the U.S. Bank Secrecy Act money-transmission rules, the FATF Recommendations, the EU MiCA Regulation, and applicable U.S. state money-transmitter regimes, and the corresponding licensing posture \u2014 is being prepared and will be published before general availability. This section will be completed following review by counsel."
1008
+ text: "ochk.app is designed so that cashback is custodied and disbursed by independent Fedimint federations. **Those federations do not exist yet. During bring-up OrangeCheck itself custodies and transmits the cashback it pays to every user**, because it is operating every role in the system in order to prove it works before third parties take any of them. Self-custody (BIP-322) users keep their own keys, which OrangeCheck never holds; the cashback they accrue is held by OrangeCheck until it is paid out, as it is for every user. The full regulatory analysis of both the bring-up posture and the designed end state \u2014 including OrangeCheck\u2019s position under the U.S. Bank Secrecy Act money-transmission rules, the FATF Recommendations, the EU MiCA Regulation, and applicable U.S. state money-transmitter regimes, and the corresponding licensing posture \u2014 is being prepared and will be published before general availability. This section will be completed following review by counsel."
1009
1009
  }
1010
1010
  ]
1011
1011
  },
@@ -1017,7 +1017,7 @@ var terms2 = {
1017
1017
  blocks: [
1018
1018
  {
1019
1019
  kind: "para",
1020
- text: "**Your right:** stop using me.ochk.io at any time; you may delete your identity in [your settings](/me/settings). **Our right:** suspend or terminate access with or without cause, including for abuse or legal risk. Deleting your identity does not settle a balance OrangeCheck owes you, and during bring-up there is no sweep to self-custody to run first \u2014 no federation is bound. If your balance is above zero, bind a payout destination and instruct a cash-out before you delete, or contact us. Hashes anchored to Bitcoin and commitments published to Nostr are immutable and cannot be deleted by OrangeCheck; neither names you. The disclaimer, liability, indemnification, governing-law, and dispute provisions survive."
1020
+ text: "**Your right:** stop using ochk.app at any time; you may delete your identity in [your settings](/me/settings). **Our right:** suspend or terminate access with or without cause, including for abuse or legal risk. Deleting your identity does not settle a balance OrangeCheck owes you, and during bring-up there is no sweep to self-custody to run first \u2014 no federation is bound. If your balance is above zero, bind a payout destination and instruct a cash-out before you delete, or contact us. Hashes anchored to Bitcoin and commitments published to Nostr are immutable and cannot be deleted by OrangeCheck; neither names you. The disclaimer, liability, indemnification, governing-law, and dispute provisions survive."
1021
1021
  }
1022
1022
  ]
1023
1023
  },
@@ -1031,15 +1031,15 @@ var privacy2 = {
1031
1031
  kind: "privacy",
1032
1032
  eyebrow: "privacy",
1033
1033
  title: "Privacy policy",
1034
- description: "How me.ochk.io and ochk.app handle your data: no KYC, no PII required, a per-integrator scoped identity, and a documented, falsifiable account of every record OrangeCheck stores.",
1035
- metaTitle: "Privacy Policy \u2014 me.ochk.io",
1036
- metaDescription: "me.ochk.io privacy policy. No KYC, no PII required, per-integrator scoped identity, and a full account of what OrangeCheck stores.",
1034
+ description: "How ochk.app and its API at me.ochk.io handle your data: no KYC, no PII required, a per-integrator scoped identity, and a documented, falsifiable account of every record OrangeCheck stores.",
1035
+ metaTitle: "Privacy Policy \u2014 ochk.app",
1036
+ metaDescription: "ochk.app privacy policy. No KYC, no PII required, per-integrator scoped identity, and a full account of what OrangeCheck stores.",
1037
1037
  effective: "2026-05-15",
1038
- updated: "2026-10-15",
1038
+ updated: "2026-10-19",
1039
1039
  preamble: [
1040
1040
  {
1041
1041
  kind: "callout",
1042
- text: "This policy covers the Service at both of its addresses, me.ochk.io and ochk.app: one account, one store of records, one operator; \u201Cme.ochk.io\u201D below means both. Its product is identity that pays you; its privacy posture is what makes it distinct from Sign in with Google. For a side-by-side comparison you can falsify, see [the privacy comparison](/privacy-compare)."
1042
+ text: "This policy covers the Service at both of its addresses, ochk.app and its API at me.ochk.io: one account, one store of records, one operator; \u201Cochk.app\u201D below means both. Its product is identity that pays you; its privacy posture is what makes it distinct from Sign in with Google. For a side-by-side comparison you can falsify, see [the privacy comparison](/privacy-compare)."
1043
1043
  }
1044
1044
  ],
1045
1045
  sections: [
@@ -1053,7 +1053,7 @@ var privacy2 = {
1053
1053
  items: [
1054
1054
  {
1055
1055
  k: "no kyc",
1056
- v: "me.ochk.io never collects your legal name, government ID, or physical address"
1056
+ v: "ochk.app never collects your legal name, government ID, or physical address"
1057
1057
  },
1058
1058
  {
1059
1059
  k: "little pii at signup",
@@ -1069,7 +1069,7 @@ var privacy2 = {
1069
1069
  },
1070
1070
  {
1071
1071
  k: "deletable",
1072
- v: "you can permanently revoke your identity in your settings"
1072
+ v: "you can delete your account in your settings: your data is erased and your sign-in closes"
1073
1073
  }
1074
1074
  ]
1075
1075
  }
@@ -1142,11 +1142,11 @@ var privacy2 = {
1142
1142
  blocks: [
1143
1143
  {
1144
1144
  kind: "para",
1145
- text: "On me.ochk.io, four cookies. `oc_session` \u2014 the Ed25519-signed session token issued by ochk.io (HttpOnly, Secure, SameSite=None, Domain=.ochk.io). `oc_theme`, `oc_skin` and `oc_motion` \u2014 your dark/light, appearance and reduced-motion preferences (Domain=.ochk.io), not auth-bearing. No tracking cookies, no advertising IDs, no third-party pixels. Page analytics use [Plausible](https://plausible.io/privacy) \u2014 cookie-free, no PII, aggregate only."
1145
+ text: "On ochk.app, two cookies of its own, set for ochk.app alone. `__Host-oc_session` \u2014 a sign-in token bound to ochk.app (HttpOnly, Secure, SameSite=Lax); it cannot sign you in anywhere else. `__Host-oc_oauth` \u2014 kept for at most ten minutes while you sign in with Google or GitHub, then deleted. Your light/dark choice stays in your browser\u2019s local storage, not a cookie. Page analytics use orangecheck\u2019s own counter at insights.ochk.io: no cookie; a visit is counted by a hash salted daily, the salt is deleted after 48 hours, and your IP address and browser string are never stored."
1146
1146
  },
1147
1147
  {
1148
1148
  kind: "para",
1149
- text: "On ochk.app, two cookies of its own, set for ochk.app alone. `__Host-oc_session` \u2014 a sign-in token bound to ochk.app (HttpOnly, Secure, SameSite=Lax); it cannot sign you in anywhere else. `__Host-oc_oauth` \u2014 kept for at most ten minutes while you sign in with Google or GitHub, then deleted. Your light/dark choice stays in your browser\u2019s local storage, not a cookie. Page analytics use orangecheck\u2019s own counter at insights.ochk.io: no cookie; a visit is counted by a hash salted daily, the salt is deleted after 48 hours, and your IP address and browser string are never stored."
1149
+ text: "On me.ochk.io, four cookies. `oc_session` \u2014 the Ed25519-signed session token issued by ochk.io (HttpOnly, Secure, SameSite=None, Domain=.ochk.io). `oc_theme`, `oc_skin` and `oc_motion` \u2014 your dark/light, appearance and reduced-motion preferences (Domain=.ochk.io), not auth-bearing. No tracking cookies, no advertising IDs, no third-party pixels. Page analytics use [Plausible](https://plausible.io/privacy) \u2014 cookie-free, no PII, aggregate only."
1150
1150
  }
1151
1151
  ]
1152
1152
  },
@@ -1186,7 +1186,7 @@ var privacy2 = {
1186
1186
  },
1187
1187
  {
1188
1188
  k: "account row",
1189
- v: "deleted on request via the account-deletion flow, subject to the immutability of anchored data"
1189
+ v: "deleted, with your sign-in identities, passkeys and sessions, when your account-deletion request completes; anchored and published data cannot be deleted by anyone"
1190
1190
  }
1191
1191
  ]
1192
1192
  }
@@ -1209,7 +1209,7 @@ var privacy2 = {
1209
1209
  blocks: [
1210
1210
  {
1211
1211
  kind: "para",
1212
- text: "In [your settings](/me/settings), under advanced, you can permanently revoke your OrangeCheck identity. Deleting does not pay out sats OrangeCheck owes you, and there is no sweep to self-custody to run first: no federation is bound during bring-up. Settle a non-zero balance before you delete. OrangeCheck deletes the operational records it holds about you; hashes already anchored to Bitcoin and commitments published to Nostr are immutable and cannot be deleted by anyone; neither names you."
1212
+ text: "In [your settings](/me/settings) you can delete your account. A person reviews the request within 48 hours. Completing it erases your data on ochk.io, me.ochk.io, vault, chat and cosign and closes your sign-in, so signing in again starts a new account. Payment receipts are kept for accounting under an id that no longer leads to you, and backups roll off within 30 days. Deleting does not pay out sats OrangeCheck holds for you: settle a non-zero balance first. Hashes anchored to Bitcoin and records published to Nostr cannot be deleted by anyone. me.ochk.io's own anchors name no one, but attestations, polls, pledges, stamps and a chat listing you published carry your Bitcoin address."
1213
1213
  }
1214
1214
  ]
1215
1215
  },