public alpha · mainnet

spore m³ · services host

Blind-courier mailbox + anonymous relay for Spore. Your phone holds every key; this host holds TTL-bound ciphertext and nothing else. Setup is a token plus two endpoints.

Endpoints

ServiceURLWhat it is
Mailboxhttps://mail.sporem3.io/u/<user> token-gated body store: /list /get /put /prekey /prekey-batch /qr
Profile (linktree)https://mail.sporem3.io/u/<user>/ public pay-me card: QR invite, links, address, assurance rows
Relayhttps://relay.sporem3.io anonymous store-and-forward hop: POST /relay/<cid> with X-Relay-Dest — the mailbox sees the relay's IP, not yours
Nodehttps://sporem3.io DERO mainnet services page (this page), product at sporem3.com

Every route except the profile and QR is bearer-token gated (401 without the token).

Phone setup (hosted, no node on your device)

# one-time, on the phone (Termux):
spore init
spore prekeybatch gen -identity ~/.spore/identity.key -spk ~/.spore/spk.key -out batch.json
spore prekeybatch push -in batch.json -mailbox https://mail.sporem3.io/u/<you> -token <your-token>

# receive (decrypts locally — the host never sees keys; the wallet RPC
# endpoint is part of your hosted provisioning):
spore msg recv-e2 -chain dero -rpc <wallet-rpc-url> -rpc-login u:p \
  -store https://mail.sporem3.io/u/<you> -store-token <your-token> \
  -identity ~/.spore/identity.key -spk ~/.spore/spk.key -opk-pool ~/.spore/opk-pool.json \
  -state-dir ~/.spore/state -state-key ~/.spore/state.key

# send — no recipient token needed, the relay authenticates the last hop:
printf 'hi\n' | spore msg send -chain dero -rpc <wallet-rpc-url> \
  -to <friend-dero1…> -identity ~/.spore/identity.key \
  -bundle ./friend-bundle.json -pinned-sig FRIEND_SIG_HEX \
  -store https://mail.sporem3.io/u/<friend> -relay https://relay.sporem3.io \
  -state-dir ~/.spore/state -state-key ~/.spore/state.key

Pay-me QR

# your public profile page (link-in-bio card):
https://mail.sporem3.io/u/<you>/

# publish/replace your QR (token-gated upload):
spore invite issue -identity ~/.spore/identity.key -spk ~/.spore/spk.key \
  -address <your-dero-address> -name <you> -mailbox https://mail.sporem3.io/u/<you> -o /tmp/inv.txt
spore invite qr -uri "$(cat /tmp/inv.txt)" -amount 5dero \
  -put https://mail.sporem3.io/u/<you> -store-token <your-token>

What this host can and cannot see

Can: who talks to whom, when, and byte sizes. Cannot: the words (TTL-bound ciphertext, keys never on the server) or the money (payments ride the same atomic transaction, still end-to-end). The relay additionally blinds sender IPs from the mailbox log.

  • Bodies expire by design — the host does not hoard ciphertext.
  • Per-user bearer tokens gate every read/write; the QR/profile are the only public routes.
  • Need metadata privacy too? Run your own node. The software is free and self-hosts.