A class defines a constructor plus methods stored on the prototype, shared by every instance. Private fields start with `#` and are inaccessible outside the class.
class Wallet {
#key;
constructor(key) { this.#key = key; }
get address() { return derive(this.#key); }
}`this` depends on the call site; bind methods or use arrow properties when passing them as callbacks.