Skip to content
rhmask

Whitepaper · v0.2 · September 2026

Privacy for a market that forgot to have any

Tokenized equities moved the order book onto a public ledger and kept none of the discretion the old one had. This paper describes the layer that gives it back, and is honest about where that layer stops.

[Draft]Not investment advice Source and checks

Abstract

Stock tokens on Robinhood Chain settle on a public ledger. Every position, entry, exit and running balance is readable by anyone with a block explorer, permanently and without consent. That is a worse privacy posture than the market these instruments were built to mirror, where only the venue sees the tape.

RhMask is a privacy layer for those assets. It gives holders a way to receive unseen using ERC-5564 stealth addresses derived entirely in the browser, a way to pay and be paid privately through a three-scan QR flow that needs no server, and a way to be paid in stock tokens for securing the protocol. No component takes custody, and no server ever sees a private key.

The privacy claim is narrow and deliberate. RhMask unlinks identity from receiving addresses. It does not hide settlement, does not obscure amounts, and is not a mixer. Every surface in the product states which of those applies.

1. The problem

A wallet holding tokenized equity is a public portfolio. Given one address, an observer can reconstruct cost basis, size, timing and counterparties. Three consequences follow, and all three are already visible on chain.

  • Adverse selection. A visible position invites front-running and quote fading. The larger the holder, the worse the fills.
  • Coerced disclosure. Paying someone once reveals your whole balance history to them, forever, with no way to revoke it.
  • Chilled participation. Funds and treasuries cannot use an instrument that broadcasts their book, which caps the market's serious capital.

The usual answer is a pooled mixer. That is the wrong tool here: it co-mingles funds, it creates a compliance problem for regulated assets, and it does nothing about the fact that a payer learns your address. RhMask takes the opposite approach. Nothing is pooled; every payment simply arrives somewhere new.

2. Design goals

GoalConsequence
Keys never leave the deviceAll key material is generated, stored and used in the browser. No account, no email, no recovery service.
No custody, everFunds move wallet to venue or wallet to address. No contract we control holds user balances.
Honest by constructionAnything not live is labelled planned in the interface, not only in the docs.
Verifiable claimsEvery property in this paper maps to a check in the repository that anyone can run.
Usable at the leak pointPrivacy has to be available where an address is pasted, which is why a browser extension is a first-class surface.

3. Architecture

The system is three layers. Only the middle one touches a server, and only to reach third-party routers on your behalf.

┌─ Surfaces ────────────────────────────────────────────────┐
│  Web app  (Next.js)          Browser extension (MV3)      │
│  keys · QR · claim · sweep   chips · receipts · same keys  │
└──────────────┬────────────────────────────┬───────────────┘
               │  all crypto client-side    │
┌──────────────▼────────────────────────────▼───────────────┐
│  Edge routes: quote · order · tokens · vault · rpc         │
│  holds router keys, never key material, fails closed       │
└──────────────┬─────────────────────────────────────────────┘
               │
┌──────────────▼─────────────────────────────────────────────┐
│  Robinhood Chain 4663 · stock tokens · (planned) announcer, │
│  registry, MaskVault, RevenueRouter, ProofLedger            │
└────────────────────────────────────────────────────────────┘

The RPC pass-through deserves a note. Several consumer networks hijack the chain’s RPC hostname at the DNS level, which makes a healthy endpoint look dead and silently breaks balance reads. Routing browser traffic through the application’s own origin removes that failure mode without asking anyone to change their network.

4. Cryptography

Stealth addresses follow ERC-5564 on secp256k1. A recipient publishes a meta-address built from two public keys: spending and viewing. A sender derives a fresh address for every payment.

Sender                              Recipient
─────────────────────────────       ─────────────────────────────
r ← random scalar
R = r·G                        →    R arrives with the payment
S = r·K_view                        S = k_view·R          (equal)
h = keccak256(compress(S))          h = keccak256(compress(S))
tag = h[0]                          skip unless tag matches
P = K_spend + h·G                   p = k_spend + h  (mod n)
addr = keccak(P)[12:]               addr == keccak(p·G)[12:]

Only the recipient can compute p, so only the recipient can spend. The view tag is a one-byte filter that lets a scanner discard the overwhelming majority of announcements with a single comparison.

Key storage is optional and local. With a passphrase set, the key set is sealed with AES-256-GCM under a key derived by PBKDF2-SHA256 over 310,000 rounds through WebCrypto. The sealed blob format is shared byte-for-byte between the web app and the extension, so one backup restores in either.

The round-trip, the stranger-cannot-claim property, wrong-passphrase rejection and tamper rejection are all asserted by scripts in the repository and run on every push.

5. Private payments

Until an announcer contract is deployed, the sender must hand the ephemeral key to the recipient. RhMask makes that step the product rather than a footnote: it is a QR code.

ArtifactCarriesDirection
Payment requestmeta-address, optional token, amount, memorecipient → payer
One-time addressderived in the payer's browserpayer → chain
Receiptaddress, ephemeral pubkey, view tag, optional tx hashpayer → recipient

The receipt fields are exactly the fields of the ERC-5564 announcement event. When the announcer contract ships, a background scanner replaces the QR with no change to the format, and the QR remains as the offline path for payments made without publishing anything on chain.

6. The $MASK token

$MASK buys access and fee discounts. It never buys route quality; routing is identical for everyone, holder or not. Its single distinguishing property is what it pays: stakers receive a basket of stock tokens, not more $MASK.

Revenue sourcePaid inStarts
Creator share of $MASK trading feesETHAt token launch
Routing fee on private fillsInput assetWhen the router key is live
Relay fee on sponsored sweepsSwept assetRoadmap phase 3

Revenue converts to the basket on-chain and streams to stakers. The design depends on one on-chain fact: that a contract can hold and transfer the issuer’s stock tokens. That was verified against mainnet by simulating transfers of every basket token from real holders to a contract address. It holds today, and it is re-verified before each release because the tokens are upgradeable proxies controlled by their issuer.

Supply is fixed with no mint function and no admin keys. The launch is a fair launch on a public bonding curve: no presale, no team allocation, and the launch transaction hash is published.

7. Roadmap

PhaseDeliversState
0Stealth keys, QR private payments, claim and sweep, private swap quotes, extension MVP[shipped]
1Announcer and registry contracts, background scanner, live quotes[next]
2Passkey unlock, viewing-key disclosure, vault contracts and audit scope[planned]
3Sponsored sweeps, native on-chain private route, public API[planned]
4Association-set membership proofs, confidential amounts research[research]

8. Risks

Stated without softening, because a privacy product that oversells itself is worse than none.

  • Issuer control. Stock tokens are upgradeable proxies. The issuer can change behaviour under the same address, including transfer restrictions that would break the vault design.
  • Metadata leakage. Settlement is public. Timing and amount analysis can still link activity, especially for unusual sizes.
  • Out-of-band receipts. Until the announcer ships, a lost receipt means the recipient cannot locate funds that are already theirs.
  • Key loss. There is no recovery path by design. A lost spending key is a permanent loss.
  • Unaudited contracts. No contract is deployed yet. Nothing in the vault section should be treated as live until an audit is published.
  • Regulatory surface. Tokenized equities sit in a moving regulatory perimeter that varies by jurisdiction and may restrict availability.
This document describes software, not a security offering, and nothing in it is investment advice. Figures that are not yet produced by a deployed contract are labelled planned throughout.

References