Documentation

Docs

How Byze works, how to get paid, and what it does and does not hide.

What this is

A way to get paid on Solana without publishing the wallet you hold funds in. You share a link. Every payment to that link lands at a fresh one-time address. No observer can connect your payments to you or to each other.

Your keys are built on your device from a wallet signature and a PIN. They never leave the browser, and this service never holds your funds.

Create and inbox sit behind a wallet connection, since both start with that signature. Connecting is the whole of the sign in, and closing the tab is the whole of the sign out. There is no account, no email and no password to lose.

Get paid in three steps

  1. Create your link. Sign one message and choose a PIN. That gives you two keys on your device. A watch key recognises money sent to you, and a spend key moves it.
  2. Share it. A link carries only your public keys. It is safe to post anywhere.
  3. Get paid. A payer opens your link, and the app invents a brand new address for that payment and records it in a public note. Your inbox finds the ones your watch key can open.

To move the money, open your inbox, pick a payment and claim it. The one-time key signs the transfer and your own wallet pays the network fee. A fresh address never needs SOL first.

Paying someone

Open their link, choose SOL or USDC, enter an amount and pay. Your wallet signs one transaction that sends the money to a fresh one-time address, pays the 1% protocol fee, and records the note that lets them find it. The fee is taken in the same asset you pay with, and the program enforces it.

What stays private

  • Hidden. Which wallet received a payment, and any link between two payments.
  • Public. The amount and the time of every payment. Solana is a public ledger. Unlinkability is not confidentiality.
  • Visible to the payer. The address they sent to. Stealth addresses hide you from everyone else, not from the person who paid you.

Two domains

The app lives at https://usebyze.com and holds your inbox and link creation. Short links live at https://byze.me. A link reads as byze.me/jordan. Both are the same app. A raw link that carries the public keys in the URL works with no resolver at all.

See byze.me/example for one, filled with sample keys.

Safety

  • This is a development build on Solana devnet, and the program is deployed there. Nothing on this site touches mainnet yet.
  • Never share your seed phrase or a wallet signature over the derivation message. Anyone holding both the signature and your PIN can control the payments to that link.
  • Your PIN is the second half of the key. Choose one you do not reuse.
  • Claiming pays out to whichever wallet you are connected with. Check it before you confirm.

Resolver API

The resolver maps a handle to public keys. It never sees a private key and cannot move funds. Records carry a wallet signature that the browser checks. The server can refuse to serve a handle but cannot point one at keys its owner did not sign for.

  • GET https://stealth-pay-resolver.tata888.workers.dev/health, liveness
  • POST https://stealth-pay-resolver.tata888.workers.dev/api/links, register (handle, metaAddress, wallet, signature)
  • GET https://stealth-pay-resolver.tata888.workers.dev/api/links/:handle, resolve
  • GET https://stealth-pay-resolver.tata888.workers.dev/api/links/:handle/available, whether a handle is free

Build on it

The SDK, the on-chain program and the resolver are open source. See the repository for the TypeScript primitives, the announcement program, and how to run everything locally.