SPB Git

Repository Public

jurisdiction.ts 10.4 KB 78 lines typescript

1// Jurisdiction acknowledgement shown before live derivative trading is enabled on a venue. ONE constant, mirroring2// docs/v4/venues/jurisdiction.md (read live on 2026-11-10). The authorization the owner approves commits to the SHA-256 of the3// exact text displayed; the signer accepts only a hash of one of these texts.4//5// This is a summary of what the venue's terms and the regulator's public pages say. It is general information, not legal advice,6// and nothing here states or implies that trading on the venue is lawful or cleared for the owner.7import { sha256 } from '@noble/hashes/sha2.js';8import { hex } from './canonical.ts';910export type AckLocale = 'fr' | 'en';11export const JURISDICTION_ACK_VERSION = '2026-11-10';12export const JURISDICTION_ACK_SOURCE = 'docs/v4/venues/jurisdiction.md';1314/** v8: `gmx` added (same mechanism, its own text) */15export type AckVenue = 'hyperliquid' | 'gmx';16export const JURISDICTION_ACK: Record<AckVenue, Record<AckLocale, string>> = {17  hyperliquid: {18    en: [19      'Hyperliquid — the venue\'s terms and your jurisdiction (Québec, Canada). Read on 2026-11-10.',20      'This is general information, not legal advice. It is not a legal clearance, and SP Wallet gives none.',21      '1. Hyperliquid\'s terms of use (app.hyperliquid.xyz, last updated 2026-06-15, §1.6) exclude persons in the United States of America and in Ontario, Canada. Québec is not named. Those terms govern the website interface; §1.1 says the interface is not the exclusive means of access. No API terms and no documented API geo-blocking were found.',22      '2. §1.9 of those terms makes you solely responsible for determining whether leveraged or derivative trading is lawful where you live.',23      '3. The AMF\'s public page on buying and selling crypto says that platforms letting Québec clients trade crypto assets that are securities or derivatives must be registered with the AMF, and advises against dealing with platforms that are neither registered nor under a pre-registration undertaking. Hyperliquid is not on the AMF\'s register of crypto trading platforms (checked 2026-11-10). CSA Staff Notice 21-332 (2023) requires registered or undertaking platforms not to offer leverage to Canadian clients.',24      '4. Not verified: the AMF\'s warning list could not be searched in full; whether the venue blocks a Québec IP address in practice.',25      '5. SP Wallet does not work around any access restriction (no VPN, no proxy, no alternative path to a blocked service).',26      'By approving, you confirm that you have read this summary and that enabling live derivative trading on this venue is your own decision and your own responsibility. Your confirmation is recorded in the audit log.',27    ].join('\n'),28    fr: [29      'Hyperliquid — conditions de la plateforme et votre juridiction (Québec, Canada). Lu le 2026-11-10.',30      'Ceci est une information générale, pas un avis juridique. Ce n\'est pas une validation juridique, et SP Wallet n\'en donne aucune.',31      '1. Les conditions d\'utilisation de Hyperliquid (app.hyperliquid.xyz, mises à jour le 2026-06-15, §1.6) excluent les personnes situées aux États-Unis d\'Amérique et en Ontario (Canada). Le Québec n\'est pas nommé. Ces conditions régissent l\'interface du site web ; le §1.1 précise que l\'interface n\'est pas le seul moyen d\'accès. Aucune condition propre à l\'API ni aucun blocage géographique documenté de l\'API n\'a été trouvé.',32      '2. Le §1.9 de ces conditions vous rend seul responsable de déterminer si la négociation avec effet de levier ou de dérivés est licite là où vous résidez.',33      '3. La page publique de l\'AMF sur l\'achat et la vente de cryptoactifs indique que les plateformes qui permettent à des clients du Québec de négocier des cryptoactifs constituant des valeurs mobilières ou des dérivés doivent être inscrites auprès de l\'AMF, et déconseille de faire affaire avec des plateformes qui ne sont ni inscrites ni visées par un engagement de préinscription. Hyperliquid ne figure pas au registre de l\'AMF des plateformes de négociation de cryptoactifs (vérifié le 2026-11-10). L\'Avis 21-332 du personnel des ACVM (2023) exige des plateformes inscrites ou sous engagement qu\'elles n\'offrent pas d\'effet de levier aux clients canadiens.',34      '4. Non vérifié : la liste de mises en garde de l\'AMF n\'a pas pu être consultée en entier ; le blocage éventuel d\'une adresse IP du Québec par la plateforme en pratique.',35      '5. SP Wallet ne contourne aucune restriction d\'accès (ni VPN, ni proxy, ni chemin détourné vers un service bloqué).',36      'En approuvant, vous confirmez avoir lu ce résumé et que l\'activation de la négociation réelle de dérivés sur cette plateforme est votre propre décision et votre propre responsabilité. Votre confirmation est consignée dans le journal d\'audit.',37    ].join('\n'),38  },39  // >>> v8 GMX v2 trading (additive) — mirrors the GMX row of docs/v4/venues/jurisdiction.md40  gmx: {41    en: [42      'GMX v2 — the venue\'s terms and your jurisdiction (Québec, Canada). Read on 2026-11-10.',43      'This is general information, not legal advice. It is not a legal clearance, and SP Wallet gives none.',44      '1. The terms of gmx.io / app.gmx.io (last modified 2026-08-20) do not name Canada. They exclude U.S. persons (1.1.3) and residents of territories under U.S., U.K. or E.U. sanctions (1.1.4), and forbid using a VPN to get around a restriction (1.1.7). Those terms govern the site and the interface; the contracts on Arbitrum are permissionless and SP Wallet talks to them directly.',45      '2. Clause 1.1.8 ("Applicable Laws") makes you responsible for complying with the laws that apply to you, federal and provincial: whether leveraged derivative trading is lawful where you live is for you to determine.',46      '3. The AMF\'s public page on buying and selling crypto says that platforms letting Québec clients trade crypto assets that are securities or derivatives must be registered with the AMF, and advises against dealing with platforms that are neither registered nor under a pre-registration undertaking. GMX is not on the AMF\'s register of crypto trading platforms (checked 2026-11-10). CSA Staff Notice 21-332 (2023) requires registered or undertaking platforms not to offer leverage to Canadian clients.',47      '4. Not verified: the AMF\'s warning list could not be searched in full; whether the venue\'s interface blocks a Québec IP address in practice.',48      '5. SP Wallet does not work around any access restriction (no VPN, no proxy, no alternative path to a blocked service).',49      '6. On GMX an order is a transaction of your own wallet: your collateral leaves the wallet for GMX\'s contracts, the order is executed or cancelled later by GMX\'s keepers at GMX\'s oracle price, and a position can be liquidated. GMX\'s role holders can change market parameters and replace contracts.',50      'By approving, you confirm that you have read this summary and that enabling live derivative trading on this venue is your own decision and your own responsibility. Your confirmation is recorded in the audit log.',51    ].join('\n'),52    fr: [53      'GMX v2 — conditions de la plateforme et votre juridiction (Québec, Canada). Lu le 2026-11-10.',54      'Ceci est une information générale, pas un avis juridique. Ce n\'est pas une validation juridique, et SP Wallet n\'en donne aucune.',55      '1. Les conditions de gmx.io / app.gmx.io (modifiées le 2026-08-20) ne nomment pas le Canada. Elles excluent les personnes des États-Unis (1.1.3) et les résidents de territoires visés par des sanctions des États-Unis, du Royaume-Uni ou de l\'Union européenne (1.1.4), et interdisent l\'usage d\'un VPN pour contourner une restriction (1.1.7). Ces conditions régissent le site et l\'interface ; les contrats sur Arbitrum sont sans permission et SP Wallet s\'y adresse directement.',56      '2. La clause 1.1.8 (« Applicable Laws ») vous rend responsable du respect des lois qui s\'appliquent à vous, fédérales et provinciales : c\'est à vous de déterminer si la négociation de dérivés avec effet de levier est licite là où vous résidez.',57      '3. La page publique de l\'AMF sur l\'achat et la vente de cryptoactifs indique que les plateformes qui permettent à des clients du Québec de négocier des cryptoactifs constituant des valeurs mobilières ou des dérivés doivent être inscrites auprès de l\'AMF, et déconseille de faire affaire avec des plateformes qui ne sont ni inscrites ni visées par un engagement de préinscription. GMX ne figure pas au registre de l\'AMF des plateformes de négociation de cryptoactifs (vérifié le 2026-11-10). L\'Avis 21-332 du personnel des ACVM (2023) exige des plateformes inscrites ou sous engagement qu\'elles n\'offrent pas d\'effet de levier aux clients canadiens.',58      '4. Non vérifié : la liste de mises en garde de l\'AMF n\'a pas pu être consultée en entier ; le blocage éventuel d\'une adresse IP du Québec par l\'interface de la plateforme en pratique.',59      '5. SP Wallet ne contourne aucune restriction d\'accès (ni VPN, ni proxy, ni chemin détourné vers un service bloqué).',60      '6. Sur GMX, un ordre est une transaction de votre propre portefeuille : votre garantie quitte le portefeuille pour les contrats de GMX, l\'ordre est exécuté ou annulé plus tard par les « keepers » de GMX au prix de l\'oracle de GMX, et une position peut être liquidée. Les titulaires de rôles de GMX peuvent modifier les paramètres des marchés et remplacer des contrats.',61      'En approuvant, vous confirmez avoir lu ce résumé et que l\'activation de la négociation réelle de dérivés sur cette plateforme est votre propre décision et votre propre responsabilité. Votre confirmation est consignée dans le journal d\'audit.',62    ].join('\n'),63  },64  // <<< v8 GMX v2 trading65};6667export interface JurisdictionAck { venue: AckVenue; locale: AckLocale; text: string; sha256: string; version: string; source: string }6869export function jurisdictionAck(venue: AckVenue, locale: AckLocale): JurisdictionAck {70  const text = JURISDICTION_ACK[venue][locale];71  return { venue, locale, text, sha256: hex(sha256(new TextEncoder().encode(text))), version: JURISDICTION_ACK_VERSION, source: JURISDICTION_ACK_SOURCE };72}73/** which displayed text a hash stands for; null when it is none of them */74export function jurisdictionAckOf(venue: AckVenue, sha: string): JurisdictionAck | null {75  for (const locale of ['fr', 'en'] as const) { const a = jurisdictionAck(venue, locale); if (a.sha256 === sha) return a; }76  return null;77}78
Files main
Menu

Theme