Player Two code is the technical implementation layer of the Player Two platform, comprising a Vue.js front-end, BIP85-derived key management for trustless authentication, a Nostr-relay-based messaging architecture, and middleware whitelist logic. It enables encrypted group collaboration without server-held keys, using derivation path m/44’/1237 for per-user identity.
Semantic Classification
Content
participant User participant Client participant Middleware participant PaymentServer User->>Client: Generate BIP85 Master Key Client->>Client: Derive Private Key from m/44'/1237/0 Client->>Client: Generate Public Key from Private Key Client->>PaymentServer: Send Public Key for Auth PaymentServer->>Middleware: Add Public Key to Whitelist User->>Client: Request access to service Client->>Middleware: Authenticate with WebJSON token Middleware->>Client: Grant/Deny access
AppVue[App.vue] mainTs[main.ts] BannerVue[Banner.vue] router stores AppVue --> mainTs mainTs --> router mainTs --> stores BannerVue --> stores ``` - ```mermaid graph TB src[Src] src --> AppVue[App.vue] src --> mainTs[main.ts] src --> themeTs[theme.ts] src --> assets[Assets] assets --> animations assets --> backgrounds assets --> characters assets --> fonts src --> components[Components] components --> BannerVue[Banner.vue] components --> apps components --> auth components --> buttons components --> cards src --> css src --> modules src --> router src --> stores src --> views ``` - ```mermaid graph TB Root["Root"] Root --> README["README.md"] Root --> packageJson["package.json"] Root --> tsconfig["tsconfig.json"] Root --> viteConfig["vite.config.ts"] Root --> playertwoConfig["playertwo.config.ts"] Root --> indexHtml["index.html"] Root --> keys["keys"] keys --> firebaseExample["firebase_example.json"] Root --> src["src"] src --> AppVue["App.vue"] src --> mainTs["main.ts"] src --> themeTs["theme.ts"] src --> assets["assets"] assets --> animations assets --> backgrounds assets --> characters assets --> fonts src --> components["components"] components --> BannerVue["Banner.vue"] components --> apps components --> auth components --> buttons components --> cards src --> css src --> modules src --> router src --> stores src --> views
Group file encryption
- Brief from Kalila
- No keys are traded on our server. (trustless)
- One user can create an encrypted object, then invite other users to join after the fact.
- They can share a code or key over Discord for example to complete the initial invite process if need be.
- ONE of N users can ALWAYS decrypt and reencrypt the object.
- Would like to use Solid-Lite and NosDev, but they are using firebase containers right now
- This is the workflow
- Each user of a system has a self generated bip85 master key.
- From that we can get access to all of the usual derivation paths.
- The path that they are using for their ID to authenticate with the server is m/44’/1237
- The users client creates a 32 byte private key from the 0 index of path 1237
- A public key is created from that.
- The public key is used as part of a webjson token to auth with a payment server, and the public key is added as hex to the whitelist for the server side
- The client can then communicate with “middleware” server which contains the whitelist.